MyraMath
generators.h
Go to the documentation of this file.
1 // This file is part of MyraMath, copyright (c) 2014-2019 by Ryan A Chilton //
2 // and distributed by MyraCore, LLC. See LICENSE.txt for license terms. //
3 // ========================================================================= //
4 
5 #ifndef MYRAMATH_EXPRESSION_GENERATORS_H
6 #define MYRAMATH_EXPRESSION_GENERATORS_H
7 
13 #include <myramath/MYRAMATH_EXPORT.h>
15 
16 namespace myra {
17 
18 // Forward declarations.
19 template<int Arity, class Number> class Expression;
20 
22 MYRAMATH_EXPORT Expression<1,NumberS> make_ConstantExpression(int I, NumberS c);
24 MYRAMATH_EXPORT Expression<1,NumberD> make_ConstantExpression(int I, NumberD c);
25 MYRAMATH_EXPORT Expression<1,NumberC> make_ConstantExpression(int I, NumberC c);
26 MYRAMATH_EXPORT Expression<1,NumberZ> make_ConstantExpression(int I, NumberZ c);
28 
30 MYRAMATH_EXPORT Expression<2,NumberS> make_ConstantExpression(int I, int J, NumberS c);
32 MYRAMATH_EXPORT Expression<2,NumberD> make_ConstantExpression(int I, int J, NumberD c);
33 MYRAMATH_EXPORT Expression<2,NumberC> make_ConstantExpression(int I, int J, NumberC c);
34 MYRAMATH_EXPORT Expression<2,NumberZ> make_ConstantExpression(int I, int J, NumberZ c);
36 
38 template<class Number> Expression<1,Number> make_RandomExpression(int I);
40 template<> MYRAMATH_EXPORT Expression<1,NumberS> make_RandomExpression(int I);
41 template<> MYRAMATH_EXPORT Expression<1,NumberD> make_RandomExpression(int I);
42 template<> MYRAMATH_EXPORT Expression<1,NumberC> make_RandomExpression(int I);
43 template<> MYRAMATH_EXPORT Expression<1,NumberZ> make_RandomExpression(int I);
45 
47 template<class Number> Expression<2,Number> make_RandomExpression(int I, int J);
49 template<> MYRAMATH_EXPORT Expression<2,NumberS> make_RandomExpression(int I, int J);
50 template<> MYRAMATH_EXPORT Expression<2,NumberD> make_RandomExpression(int I, int J);
51 template<> MYRAMATH_EXPORT Expression<2,NumberC> make_RandomExpression(int I, int J);
52 template<> MYRAMATH_EXPORT Expression<2,NumberZ> make_RandomExpression(int I, int J);
54 
56 template<class Number> Expression<2,Number> make_IdentityExpression(int N);
58 template<> MYRAMATH_EXPORT Expression<2,NumberS> make_IdentityExpression(int N);
59 template<> MYRAMATH_EXPORT Expression<2,NumberD> make_IdentityExpression(int N);
60 template<> MYRAMATH_EXPORT Expression<2,NumberC> make_IdentityExpression(int N);
61 template<> MYRAMATH_EXPORT Expression<2,NumberZ> make_IdentityExpression(int N);
63 
65 MYRAMATH_EXPORT Expression<1,NumberS> make_LinspaceExpression (NumberS x0, NumberS x1, int N);
67 MYRAMATH_EXPORT Expression<1,NumberD> make_LinspaceExpression (NumberD x0, NumberD x1, int N);
68 MYRAMATH_EXPORT Expression<1,NumberC> make_LinspaceExpression (NumberC x0, NumberC x1, int N);
69 MYRAMATH_EXPORT Expression<1,NumberZ> make_LinspaceExpression (NumberZ x0, NumberZ x1, int N);
71 
73 MYRAMATH_EXPORT Expression<1,NumberS> make_LogspaceExpression (NumberS x0, NumberS x1, int N);
75 MYRAMATH_EXPORT Expression<1,NumberD> make_LogspaceExpression (NumberD x0, NumberD x1, int N);
77 
78 } // namespace myra
79 
80 #endif
Definition: syntax.dox:1
Various utility functions/classes related to scalar Number types.