1#ifndef _FMATVEC_SYMBOLIC_FUNCTION_H_
2#define _FMATVEC_SYMBOLIC_FUNCTION_H_
11 template<
class ATIndep>
13 static void initIndep(ATIndep &x,
int size) { x=ATIndep(); }
14 static int size1(
const ATIndep &x) {
return 1; }
15 static int size2(
const ATIndep &x) {
return 1; }
18 template<
class Shape,
class ATIndep>
19 struct Helper<Vector<Shape, ATIndep>> {
20 static void initIndep(Vector<Shape, ATIndep> &x,
int size) { x <<= Vector<Shape, ATIndep>(size, NONINIT); }
21 static int size1(
const Vector<Shape, ATIndep> &x) {
return x.size(); }
22 static int size2(
const Vector<Shape, ATIndep> &x) {
return 1; }
25 template<
class Type,
class RowShape,
class ColShape,
class ATIndep>
26 struct Helper<Matrix<Type, RowShape, ColShape, ATIndep>> {
27 static int size1(
const Matrix<Type, RowShape, ColShape, ATIndep> &x) {
return x.rows(); }
28 static int size2(
const Matrix<Type, RowShape, ColShape, ATIndep> &x) {
return x.cols(); }
37#define TEMPLATE typename Ret, typename ATArg
40#include "symbolic_function1_temp.h"
48#define ARG Vector<ArgShape, ATArg>
49#define TEMPLATE typename Ret, typename ArgShape, typename ATArg
52#include "symbolic_function1_temp.h"
59#define RET RowVector<RetShape, ATRet>
60#define ARG Vector<ArgShape, ATArg>
61#define TEMPLATE typename RetShape, typename ATRet, typename ArgShape, typename ATArg
64#include "symbolic_function1_temp.h"
71#define RET Matrix<Type, ColShape, RowShape, ATRet>
72#define ARG Vector<ArgShape, ATArg>
73#define TEMPLATE typename Type, typename ColShape, typename RowShape, typename ATRet, typename ArgShape, typename ATArg
76#include "symbolic_function1_temp.h"
83#define RET Matrix<Rotation, Fixed<3>, Fixed<3>, ATRet>
84#define ARG Vector<ArgShape, ATArg>
85#define TEMPLATE typename ATRet, typename ArgShape, typename ATArg
88#include "symbolic_function1_temp.h"
100#define TEMPLATE typename Ret, typename ATArg1, typename ATArg2
103#define PARDER1PARDER1
104#define PARDER2PARDER2
105#define PARDER1PARDER2
106#include "symbolic_function2_temp.h"
118#define ARG1 Vector<Shape, ATArg>
120#define TEMPLATE typename Ret, typename Shape, typename ATArg
124#define PARDER2PARDER2
125#define PARDER1PARDER2
126#include "symbolic_function2_temp.h"
137#define RET Matrix<Rotation, Fixed<3>, Fixed<3>, ATRet>
138#define ARG1 Vector<Shape, ATArg>
140#define TEMPLATE typename ATRet, typename Shape, typename ATArg
144#define PARDER2PARDER2
145#define PARDER1PARDER2
146#include "symbolic_function2_temp.h"
159#define ARG2 Vector<Shape, ATArg>
160#define TEMPLATE typename Ret, typename Shape, typename ATArg
163#define PARDER1PARDER1
165#define PARDER1PARDER2
166#include "symbolic_function2_temp.h"
177#define RET Matrix<Rotation, Fixed<3>, Fixed<3>, ATRet>
179#define ARG2 Vector<Shape, ATArg>
180#define TEMPLATE typename ATRet, typename Shape, typename ATArg
183#define PARDER1PARDER1
185#define PARDER1PARDER2
186#include "symbolic_function2_temp.h"
198#define ARG1 Vector<Shape1, ATArg>
199#define ARG2 Vector<Shape2, ATArg>
200#define TEMPLATE typename Ret, typename Shape1, typename Shape2, typename ATArg
206#include "symbolic_function2_temp.h"
217#define RET Matrix<Rotation, Fixed<3>, Fixed<3>, ATRet>
218#define ARG1 Vector<Shape1, ATArg>
219#define ARG2 Vector<Shape2, ATArg>
220#define TEMPLATE typename ATRet, typename Shape1, typename Shape2, typename ATArg
226#include "symbolic_function2_temp.h"
237#define RET RowVector<RetShape, ATRet>
238#define ARG1 Vector<Shape, ATArg>
240#define TEMPLATE typename RetShape, typename ATRet, typename Shape, typename ATArg
244#define PARDER2PARDER2
246#include "symbolic_function2_temp.h"
257#define RET Matrix<Type, RowShape, ColShape, ATRet>
258#define ARG1 Vector<Shape, ATArg>
260#define TEMPLATE typename Type, typename RowShape, typename ColShape, typename ATRet, typename Shape, typename ATArg
264#define PARDER2PARDER2
266#include "symbolic_function2_temp.h"
277#define RET RowVector<RetShape, ATRet>
279#define ARG2 Vector<Shape, ATArg>
280#define TEMPLATE typename RetShape, typename ATRet, typename Shape, typename ATArg
283#define PARDER1PARDER1
286#include "symbolic_function2_temp.h"
297#define RET Matrix<Type, RowShape, ColShape, ATRet>
299#define ARG2 Vector<Shape, ATArg>
300#define TEMPLATE typename Type, typename RowShape, typename ColShape, typename ATRet, typename Shape, typename ATArg
303#define PARDER1PARDER1
306#include "symbolic_function2_temp.h"
317#define RET RowVector<RetShape, ATRet>
318#define ARG1 Vector<Shape1, ATArg>
319#define ARG2 Vector<Shape2, ATArg>
320#define TEMPLATE typename RetShape, typename ATRet, typename Shape1, typename ATArg, typename Shape2
326#include "symbolic_function2_temp.h"
337#define RET Matrix<Type, RowShape, ColShape, ATRet>
338#define ARG1 Vector<Shape1, ATArg>
339#define ARG2 Vector<Shape2, ATArg>
340#define TEMPLATE typename Type, typename RowShape, typename ColShape, typename ATRet, typename Shape1, typename ATArg, typename Shape2
346#include "symbolic_function2_temp.h"
Definition: symbolic_function.h:33
Namespace fmatvec.
Definition: _memory.cc:28