24 #include <deps/builders/eq_graph_builder.hpp>
34 template <
typename GraphBuilder,
typename MatrixBuilder,
typename Config,
typename T,
typename N>
39 template <
typename GraphBuilder,
typename MatrixBuilder,
typename Config,
typename T,
typename N>
40 void ModelMatrix<GraphBuilder, MatrixBuilder, Config, T, N>::build(Config config)
42 EquationTable algebraics = ModelConfig::instance().algebraics();
43 VarSymbolTable symbols = ModelConfig::instance().symbols();
44 MatrixBuilder model_matrix;
45 IndexShiftBuilder index_shifts(algebraics);
46 T nodes = config.selector.getNodes();
47 GraphBuilder SBGraph(nodes, algebraics, config.search);
48 model_matrix.setup(config);
49 model_matrix.compute(SBGraph.build(), index_shifts.build());
50 _model_matrix_def = model_matrix.def();
51 _access[0] = model_matrix.config().access[0];
52 _access[1] = model_matrix.config().access[1];
56 append(user_def.def());
59 template <
typename GraphBuilder,
typename MatrixBuilder,
typename Config,
typename T,
typename N>
62 return _model_matrix_def.
alloc[_mode];
65 template <
typename GraphBuilder,
typename MatrixBuilder,
typename Config,
typename T,
typename N>
68 return _model_matrix_def.
init[_mode];
71 template <
typename GraphBuilder,
typename MatrixBuilder,
typename Config,
typename T,
typename N>
72 string ModelMatrix<GraphBuilder, MatrixBuilder, Config, T, N>::accessVector()
const
74 return _access[_mode];
77 template <
typename GraphBuilder,
typename MatrixBuilder,
typename Config,
typename T,
typename N>
83 template <
typename GraphBuilder,
typename MatrixBuilder,
typename Config,
typename T,
typename N>
89 template <
typename GraphBuilder,
typename MatrixBuilder,
typename Config,
typename T,
typename N>
92 return _model_matrix_def;
95 template <
typename GraphBuilder,
typename MatrixBuilder,
typename Config,
typename T,
typename N>