1 /* TA-LIB Copyright (c) 1999-2007, Mario Fortier
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or
5  * without modification, are permitted provided that the following
6  * conditions are met:
7  *
8  * - Redistributions of source code must retain the above copyright
9  *   notice, this list of conditions and the following disclaimer.
10  *
11  * - Redistributions in binary form must reproduce the above copyright
12  *   notice, this list of conditions and the following disclaimer in
13  *   the documentation and/or other materials provided with the
14  *   distribution.
15  *
16  * - Neither name of author nor the names of its contributors
17  *   may be used to endorse or promote products derived from this
18  *   software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24  * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
30  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
31  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 
34 /* List of contributors:
35  *
36  *  Initial  Name/description
37  *  -------------------------------------------------------------------
38  *  MF       Mario Fortier
39  *
40  *
41  * Change history:
42  *
43  *  MMDDYY BY   Description
44  *  -------------------------------------------------------------------
45  *  112400 MF   Template creation.
46  *  022203 MF   Add MAMA
47  *  040503 MF   Add T3
48  *  052603 MF   Adapt code to compile with .NET Managed C++
49  *  111603 MF   Allow period of 1. Just copy input into output.
50  *  060907 MF   Use TA_SMA/TA_EMA instead of internal implementation.
51  */
52 
53 /**** START GENCODE SECTION 1 - DO NOT DELETE THIS LINE ****/
54 /* All code within this section is automatically
55  * generated by gen_code. Any modification will be lost
56  * next time gen_code is run.
57  */
58 /* Generated */
59 /* Generated */ #if defined( _MANAGED )
60 /* Generated */    #include "TA-Lib-Core.h"
61 /* Generated */    #define TA_INTERNAL_ERROR(Id) (RetCode::InternalError)
62 /* Generated */    namespace TicTacTec { namespace TA { namespace Library {
63 /* Generated */ #elif defined( _JAVA )
64 /* Generated */    #include "ta_defs.h"
65 /* Generated */    #include "ta_java_defs.h"
66 /* Generated */    #define TA_INTERNAL_ERROR(Id) (RetCode.InternalError)
67 /* Generated */ #else
68 /* Generated */    #include <string.h>
69 /* Generated */    #include <math.h>
70 /* Generated */    #include "ta_func.h"
71 /* Generated */ #endif
72 /* Generated */
73 /* Generated */ #ifndef TA_UTILITY_H
74 /* Generated */    #include "ta_utility.h"
75 /* Generated */ #endif
76 /* Generated */
77 /* Generated */ #ifndef TA_MEMORY_H
78 /* Generated */    #include "ta_memory.h"
79 /* Generated */ #endif
80 /* Generated */
81 /* Generated */ #define TA_PREFIX(x) TA_##x
82 /* Generated */ #define INPUT_TYPE   double
83 /* Generated */
84 /* Generated */ #if defined( _MANAGED )
MovingAverageLookback(int optInTimePeriod,MAType optInMAType)85 /* Generated */ int Core::MovingAverageLookback( int           optInTimePeriod, /* From 1 to 100000 */
86 /* Generated */                                MAType        optInMAType ) /* Generated */
87 /* Generated */ #elif defined( _JAVA )
88 /* Generated */ public int movingAverageLookback( int           optInTimePeriod, /* From 1 to 100000 */
89 /* Generated */                                 MAType        optInMAType ) /* Generated */
90 /* Generated */ #else
91 /* Generated */ int TA_MA_Lookback( int           optInTimePeriod, /* From 1 to 100000 */
92 /* Generated */                   TA_MAType     optInMAType ) /* Generated */
93 /* Generated */ #endif
94 /**** END GENCODE SECTION 1 - DO NOT DELETE THIS LINE ****/
95 {
96    /* insert local variable here */
97    int retValue;
98 
99 /**** START GENCODE SECTION 2 - DO NOT DELETE THIS LINE ****/
100 /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK
101 /* Generated */    /* min/max are checked for optInTimePeriod. */
102 /* Generated */    if( (int)optInTimePeriod == TA_INTEGER_DEFAULT )
103 /* Generated */       optInTimePeriod = 30;
104 /* Generated */    else if( ((int)optInTimePeriod < 1) || ((int)optInTimePeriod > 100000) )
105 /* Generated */       return -1;
106 /* Generated */
107 /* Generated */    #if !defined(_MANAGED) && !defined(_JAVA)
108 /* Generated */    if( (int)optInMAType == TA_INTEGER_DEFAULT )
109 /* Generated */       optInMAType = (TA_MAType)0;
110 /* Generated */    else if( ((int)optInMAType < 0) || ((int)optInMAType > 8) )
111 /* Generated */       return -1;
112 /* Generated */
113 /* Generated */    #endif /* !defined(_MANAGED) && !defined(_JAVA)*/
114 /* Generated */ #endif /* TA_FUNC_NO_RANGE_CHECK */
115 /**** END GENCODE SECTION 2 - DO NOT DELETE THIS LINE ****/
116 
117    /* insert lookback code here. */
118 
119    if( optInTimePeriod <= 1 )
120       return 0;
121 
122    switch( optInMAType )
123    {
124    case ENUM_CASE(MAType, TA_MAType_SMA, Sma ):
125       retValue = LOOKBACK_CALL(SMA)( optInTimePeriod );
126       break;
127 
128    case ENUM_CASE(MAType, TA_MAType_EMA, Ema):
129       retValue = LOOKBACK_CALL(EMA)( optInTimePeriod );
130       break;
131 
132    case ENUM_CASE(MAType, TA_MAType_WMA, Wma):
133       retValue = LOOKBACK_CALL(WMA)( optInTimePeriod );
134       break;
135 
136    case ENUM_CASE(MAType, TA_MAType_DEMA, Dema):
137       retValue = LOOKBACK_CALL(DEMA)( optInTimePeriod );
138       break;
139 
140    case ENUM_CASE(MAType, TA_MAType_TEMA, Tema ):
141       retValue = LOOKBACK_CALL(TEMA)( optInTimePeriod );
142       break;
143 
144    case ENUM_CASE(MAType, TA_MAType_TRIMA, Trima ):
145       retValue = LOOKBACK_CALL(TRIMA)( optInTimePeriod );
146       break;
147 
148    case ENUM_CASE(MAType, TA_MAType_KAMA, Kama ):
149       retValue = LOOKBACK_CALL(KAMA)( optInTimePeriod );
150       break;
151 
152    case ENUM_CASE(MAType, TA_MAType_MAMA, Mama ):
153       retValue = LOOKBACK_CALL(MAMA)( 0.5, 0.05 );
154       break;
155 
156    case ENUM_CASE(MAType, TA_MAType_T3, T3):
157       retValue = LOOKBACK_CALL(T3)( optInTimePeriod, 0.7 );
158       break;
159 
160    default:
161       retValue = 0;
162    }
163 
164    return retValue;
165 }
166 
167 /**** START GENCODE SECTION 3 - DO NOT DELETE THIS LINE ****/
168 /*
169  * TA_MA - Moving average
170  *
171  * Input  = double
172  * Output = double
173  *
174  * Optional Parameters
175  * -------------------
176  * optInTimePeriod:(From 1 to 100000)
177  *    Number of period
178  *
179  * optInMAType:
180  *    Type of Moving Average
181  *
182  *
183  */
184 /* Generated */
185 /* Generated */ #if defined( _MANAGED ) && defined( USE_SUBARRAY )
186 /* Generated */ enum class Core::RetCode Core::MovingAverage( int    startIdx,
187 /* Generated */                                               int    endIdx,
188 /* Generated */                                               SubArray^    inReal,
189 /* Generated */                                               int           optInTimePeriod, /* From 1 to 100000 */
190 /* Generated */                                               MAType        optInMAType,
191 /* Generated */                                               [Out]int%    outBegIdx,
192 /* Generated */                                               [Out]int%    outNBElement,
193 /* Generated */                                               cli::array<double>^  outReal )
194 /* Generated */ #elif defined( _MANAGED )
195 /* Generated */ enum class Core::RetCode Core::MovingAverage( int    startIdx,
196 /* Generated */                                               int    endIdx,
197 /* Generated */                                               cli::array<double>^ inReal,
198 /* Generated */                                               int           optInTimePeriod, /* From 1 to 100000 */
199 /* Generated */                                               MAType        optInMAType,
200 /* Generated */                                               [Out]int%    outBegIdx,
201 /* Generated */                                               [Out]int%    outNBElement,
202 /* Generated */                                               cli::array<double>^  outReal )
203 /* Generated */ #elif defined( _JAVA )
204 /* Generated */ public RetCode movingAverage( int    startIdx,
205 /* Generated */                               int    endIdx,
206 /* Generated */                               double       inReal[],
207 /* Generated */                               int           optInTimePeriod, /* From 1 to 100000 */
208 /* Generated */                               MAType        optInMAType,
209 /* Generated */                               MInteger     outBegIdx,
210 /* Generated */                               MInteger     outNBElement,
211 /* Generated */                               double        outReal[] )
212 /* Generated */ #else
213 /* Generated */ TA_RetCode TA_MA( int    startIdx,
214 /* Generated */                   int    endIdx,
215 /* Generated */                   const double inReal[],
216 /* Generated */                   int           optInTimePeriod, /* From 1 to 100000 */
217 /* Generated */                   TA_MAType     optInMAType,
218 /* Generated */                   int          *outBegIdx,
219 /* Generated */                   int          *outNBElement,
220 /* Generated */                   double        outReal[] )
221 /* Generated */ #endif
222 /**** END GENCODE SECTION 3 - DO NOT DELETE THIS LINE ****/
223 {
224    /* Insert local variables here. */
225    ARRAY_REF(dummyBuffer);
226    ENUM_DECLARATION(RetCode) retCode;
227 
228    int nbElement;
229    int outIdx, todayIdx;
230 
231 /**** START GENCODE SECTION 4 - DO NOT DELETE THIS LINE ****/
232 /* Generated */
233 /* Generated */ #ifndef TA_FUNC_NO_RANGE_CHECK
234 /* Generated */
235 /* Generated */    /* Validate the requested output range. */
236 /* Generated */    if( startIdx < 0 )
237 /* Generated */       return ENUM_VALUE(RetCode,TA_OUT_OF_RANGE_START_INDEX,OutOfRangeStartIndex);
238 /* Generated */    if( (endIdx < 0) || (endIdx < startIdx))
239 /* Generated */       return ENUM_VALUE(RetCode,TA_OUT_OF_RANGE_END_INDEX,OutOfRangeEndIndex);
240 /* Generated */
241 /* Generated */    #if !defined(_JAVA)
242 /* Generated */    if( !inReal ) return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);
243 /* Generated */    #endif /* !defined(_JAVA)*/
244 /* Generated */    /* min/max are checked for optInTimePeriod. */
245 /* Generated */    if( (int)optInTimePeriod == TA_INTEGER_DEFAULT )
246 /* Generated */       optInTimePeriod = 30;
247 /* Generated */    else if( ((int)optInTimePeriod < 1) || ((int)optInTimePeriod > 100000) )
248 /* Generated */       return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);
249 /* Generated */
250 /* Generated */    #if !defined(_MANAGED) && !defined(_JAVA)
251 /* Generated */    if( (int)optInMAType == TA_INTEGER_DEFAULT )
252 /* Generated */       optInMAType = (TA_MAType)0;
253 /* Generated */    else if( ((int)optInMAType < 0) || ((int)optInMAType > 8) )
254 /* Generated */       return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);
255 /* Generated */
256 /* Generated */    #endif /* !defined(_MANAGED) && !defined(_JAVA)*/
257 /* Generated */    #if !defined(_JAVA)
258 /* Generated */    if( !outReal )
259 /* Generated */       return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);
260 /* Generated */
261 /* Generated */    #endif /* !defined(_JAVA) */
262 /* Generated */ #endif /* TA_FUNC_NO_RANGE_CHECK */
263 /* Generated */
264 /**** END GENCODE SECTION 4 - DO NOT DELETE THIS LINE ****/
265 
266    if( optInTimePeriod == 1 )
267    {
268       nbElement = endIdx-startIdx+1;
269       VALUE_HANDLE_DEREF(outNBElement) = nbElement;
270       for( todayIdx=startIdx, outIdx=0; outIdx < nbElement; outIdx++, todayIdx++ )
271          outReal[outIdx] = inReal[todayIdx];
272       VALUE_HANDLE_DEREF(outBegIdx)    = startIdx;
273       return ENUM_VALUE(RetCode,TA_SUCCESS,Success);
274    }
275    /* Simply forward the job to the corresponding TA function. */
276    switch( optInMAType )
277    {
278    case ENUM_CASE(MAType, TA_MAType_SMA, Sma):
279       retCode = FUNCTION_CALL(SMA)( startIdx, endIdx, inReal, optInTimePeriod,
280                                     outBegIdx, outNBElement, outReal );
281       break;
282 
283    case ENUM_CASE(MAType, TA_MAType_EMA, Ema):
284       retCode = FUNCTION_CALL(EMA)( startIdx, endIdx, inReal, optInTimePeriod,
285                                     outBegIdx, outNBElement, outReal );
286       break;
287 
288    case ENUM_CASE(MAType, TA_MAType_WMA, Wma):
289       retCode = FUNCTION_CALL(WMA)( startIdx, endIdx, inReal, optInTimePeriod,
290                                     outBegIdx, outNBElement, outReal );
291       break;
292 
293    case ENUM_CASE(MAType, TA_MAType_DEMA, Dema):
294       retCode = FUNCTION_CALL(DEMA)( startIdx, endIdx, inReal, optInTimePeriod,
295                                      outBegIdx, outNBElement, outReal );
296       break;
297 
298    case ENUM_CASE(MAType, TA_MAType_TEMA, Tema):
299       retCode = FUNCTION_CALL(TEMA)( startIdx, endIdx, inReal, optInTimePeriod,
300                                      outBegIdx, outNBElement, outReal );
301       break;
302 
303    case ENUM_CASE(MAType, TA_MAType_TRIMA, Trima):
304       retCode = FUNCTION_CALL(TRIMA)( startIdx, endIdx, inReal, optInTimePeriod,
305                                       outBegIdx, outNBElement, outReal );
306       break;
307 
308    case ENUM_CASE(MAType, TA_MAType_KAMA, Kama):
309       retCode = FUNCTION_CALL(KAMA)( startIdx, endIdx, inReal, optInTimePeriod,
310                                      outBegIdx, outNBElement, outReal );
311       break;
312 
313    case ENUM_CASE(MAType, TA_MAType_MAMA, Mama):
314       /* The optInTimePeriod is ignored and the FAMA output of the MAMA
315        * is ignored.
316        */
317       ARRAY_ALLOC(dummyBuffer, (endIdx-startIdx+1) );
318 
319       #if !defined( _JAVA )
320          if( !dummyBuffer )
321             return ENUM_VALUE(RetCode,TA_ALLOC_ERR,AllocErr);
322       #endif
323 
324       retCode = FUNCTION_CALL(MAMA)( startIdx, endIdx, inReal, 0.5, 0.05,
325                                      outBegIdx, outNBElement,
326                                      outReal, dummyBuffer );
327 
328       ARRAY_FREE( dummyBuffer );
329       break;
330 
331    case ENUM_CASE(MAType, TA_MAType_T3, T3 ):
332       retCode = FUNCTION_CALL(T3)( startIdx, endIdx, inReal,
333                                    optInTimePeriod, 0.7,
334                                    outBegIdx, outNBElement, outReal );
335       break;
336 
337    default:
338       retCode = ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);
339       break;
340    }
341 
342    return retCode;
343 }
344 
345 /**** START GENCODE SECTION 5 - DO NOT DELETE THIS LINE ****/
346 /* Generated */
347 /* Generated */ #define  USE_SINGLE_PRECISION_INPUT
348 /* Generated */ #if !defined( _MANAGED ) && !defined( _JAVA )
349 /* Generated */    #undef   TA_PREFIX
350 /* Generated */    #define  TA_PREFIX(x) TA_S_##x
351 /* Generated */ #endif
352 /* Generated */ #undef   INPUT_TYPE
353 /* Generated */ #define  INPUT_TYPE float
354 /* Generated */ #if defined( _MANAGED )
355 /* Generated */ enum class Core::RetCode Core::MovingAverage( int    startIdx,
356 /* Generated */                                               int    endIdx,
357 /* Generated */                                               cli::array<float>^ inReal,
358 /* Generated */                                               int           optInTimePeriod, /* From 1 to 100000 */
359 /* Generated */                                               MAType        optInMAType,
360 /* Generated */                                               [Out]int%    outBegIdx,
361 /* Generated */                                               [Out]int%    outNBElement,
362 /* Generated */                                               cli::array<double>^  outReal )
363 /* Generated */ #elif defined( _JAVA )
364 /* Generated */ public RetCode movingAverage( int    startIdx,
365 /* Generated */                               int    endIdx,
366 /* Generated */                               float        inReal[],
367 /* Generated */                               int           optInTimePeriod, /* From 1 to 100000 */
368 /* Generated */                               MAType        optInMAType,
369 /* Generated */                               MInteger     outBegIdx,
370 /* Generated */                               MInteger     outNBElement,
371 /* Generated */                               double        outReal[] )
372 /* Generated */ #else
373 /* Generated */ TA_RetCode TA_S_MA( int    startIdx,
374 /* Generated */                     int    endIdx,
375 /* Generated */                     const float  inReal[],
376 /* Generated */                     int           optInTimePeriod, /* From 1 to 100000 */
377 /* Generated */                     TA_MAType     optInMAType,
378 /* Generated */                     int          *outBegIdx,
379 /* Generated */                     int          *outNBElement,
380 /* Generated */                     double        outReal[] )
381 /* Generated */ #endif
382 /* Generated */ {
383 /* Generated */    ARRAY_REF(dummyBuffer);
384 /* Generated */    ENUM_DECLARATION(RetCode) retCode;
385 /* Generated */    int nbElement;
386 /* Generated */    int outIdx, todayIdx;
387 /* Generated */  #ifndef TA_FUNC_NO_RANGE_CHECK
388 /* Generated */     if( startIdx < 0 )
389 /* Generated */        return ENUM_VALUE(RetCode,TA_OUT_OF_RANGE_START_INDEX,OutOfRangeStartIndex);
390 /* Generated */     if( (endIdx < 0) || (endIdx < startIdx))
391 /* Generated */        return ENUM_VALUE(RetCode,TA_OUT_OF_RANGE_END_INDEX,OutOfRangeEndIndex);
392 /* Generated */     #if !defined(_JAVA)
393 /* Generated */     if( !inReal ) return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);
394 /* Generated */     #endif
395 /* Generated */     if( (int)optInTimePeriod == TA_INTEGER_DEFAULT )
396 /* Generated */        optInTimePeriod = 30;
397 /* Generated */     else if( ((int)optInTimePeriod < 1) || ((int)optInTimePeriod > 100000) )
398 /* Generated */        return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);
399 /* Generated */     #if !defined(_MANAGED) && !defined(_JAVA)
400 /* Generated */     if( (int)optInMAType == TA_INTEGER_DEFAULT )
401 /* Generated */        optInMAType = (TA_MAType)0;
402 /* Generated */     else if( ((int)optInMAType < 0) || ((int)optInMAType > 8) )
403 /* Generated */        return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);
404 /* Generated */     #endif
405 /* Generated */     #if !defined(_JAVA)
406 /* Generated */     if( !outReal )
407 /* Generated */        return ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);
408 /* Generated */     #endif
409 /* Generated */  #endif
410 /* Generated */    if( optInTimePeriod == 1 )
411 /* Generated */    {
412 /* Generated */       nbElement = endIdx-startIdx+1;
413 /* Generated */       VALUE_HANDLE_DEREF(outNBElement) = nbElement;
414 /* Generated */       for( todayIdx=startIdx, outIdx=0; outIdx < nbElement; outIdx++, todayIdx++ )
415 /* Generated */          outReal[outIdx] = inReal[todayIdx];
416 /* Generated */       VALUE_HANDLE_DEREF(outBegIdx)    = startIdx;
417 /* Generated */       return ENUM_VALUE(RetCode,TA_SUCCESS,Success);
418 /* Generated */    }
419 /* Generated */    switch( optInMAType )
420 /* Generated */    {
421 /* Generated */    case ENUM_CASE(MAType, TA_MAType_SMA, Sma):
422 /* Generated */       retCode = FUNCTION_CALL(SMA)( startIdx, endIdx, inReal, optInTimePeriod,
423 /* Generated */                                     outBegIdx, outNBElement, outReal );
424 /* Generated */       break;
425 /* Generated */    case ENUM_CASE(MAType, TA_MAType_EMA, Ema):
426 /* Generated */       retCode = FUNCTION_CALL(EMA)( startIdx, endIdx, inReal, optInTimePeriod,
427 /* Generated */                                     outBegIdx, outNBElement, outReal );
428 /* Generated */       break;
429 /* Generated */    case ENUM_CASE(MAType, TA_MAType_WMA, Wma):
430 /* Generated */       retCode = FUNCTION_CALL(WMA)( startIdx, endIdx, inReal, optInTimePeriod,
431 /* Generated */                                     outBegIdx, outNBElement, outReal );
432 /* Generated */       break;
433 /* Generated */    case ENUM_CASE(MAType, TA_MAType_DEMA, Dema):
434 /* Generated */       retCode = FUNCTION_CALL(DEMA)( startIdx, endIdx, inReal, optInTimePeriod,
435 /* Generated */                                      outBegIdx, outNBElement, outReal );
436 /* Generated */       break;
437 /* Generated */    case ENUM_CASE(MAType, TA_MAType_TEMA, Tema):
438 /* Generated */       retCode = FUNCTION_CALL(TEMA)( startIdx, endIdx, inReal, optInTimePeriod,
439 /* Generated */                                      outBegIdx, outNBElement, outReal );
440 /* Generated */       break;
441 /* Generated */    case ENUM_CASE(MAType, TA_MAType_TRIMA, Trima):
442 /* Generated */       retCode = FUNCTION_CALL(TRIMA)( startIdx, endIdx, inReal, optInTimePeriod,
443 /* Generated */                                       outBegIdx, outNBElement, outReal );
444 /* Generated */       break;
445 /* Generated */    case ENUM_CASE(MAType, TA_MAType_KAMA, Kama):
446 /* Generated */       retCode = FUNCTION_CALL(KAMA)( startIdx, endIdx, inReal, optInTimePeriod,
447 /* Generated */                                      outBegIdx, outNBElement, outReal );
448 /* Generated */       break;
449 /* Generated */    case ENUM_CASE(MAType, TA_MAType_MAMA, Mama):
450 /* Generated */       ARRAY_ALLOC(dummyBuffer, (endIdx-startIdx+1) );
451 /* Generated */       #if !defined( _JAVA )
452 /* Generated */          if( !dummyBuffer )
453 /* Generated */             return ENUM_VALUE(RetCode,TA_ALLOC_ERR,AllocErr);
454 /* Generated */       #endif
455 /* Generated */       retCode = FUNCTION_CALL(MAMA)( startIdx, endIdx, inReal, 0.5, 0.05,
456 /* Generated */                                      outBegIdx, outNBElement,
457 /* Generated */                                      outReal, dummyBuffer );
458 /* Generated */       ARRAY_FREE( dummyBuffer );
459 /* Generated */       break;
460 /* Generated */    case ENUM_CASE(MAType, TA_MAType_T3, T3 ):
461 /* Generated */       retCode = FUNCTION_CALL(T3)( startIdx, endIdx, inReal,
462 /* Generated */                                    optInTimePeriod, 0.7,
463 /* Generated */                                    outBegIdx, outNBElement, outReal );
464 /* Generated */       break;
465 /* Generated */    default:
466 /* Generated */       retCode = ENUM_VALUE(RetCode,TA_BAD_PARAM,BadParam);
467 /* Generated */       break;
468 /* Generated */    }
469 /* Generated */    return retCode;
470 /* Generated */ }
471 /* Generated */
472 /* Generated */ #if defined( _MANAGED )
473 /* Generated */ }}} // Close namespace TicTacTec.TA.Lib
474 /* Generated */ #endif
475 /**** END GENCODE SECTION 5 - DO NOT DELETE THIS LINE ****/
476 
477