29 #ifndef DOXYGEN_SHOULD_SKIP_THIS 32 # define GUM_PROJECTION_PATTERN_ALLOWED 1 39 # define GUM_MULTI_DIM_PROJECTION_NAME projectMaxMultiDimArray 40 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 41 # define GUM_MULTI_DIM_PROJECTION(x, y) \ 43 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL std::numeric_limits< GUM_SCALAR >::min() 45 # undef GUM_MULTI_DIM_PROJECTION_NAME 46 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 47 # undef GUM_MULTI_DIM_PROJECTION 48 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 50 # define GUM_MULTI_DIM_PROJECTION_IMPL2ARRAY_NAME projectMaxMultiDimArray 51 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 52 # define GUM_MULTI_DIM_PROJECTION(x, y) \ 54 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL std::numeric_limits< GUM_SCALAR >::min() 56 # undef GUM_MULTI_DIM_PROJECTION_IMPL2ARRAY_NAME 57 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 58 # undef GUM_MULTI_DIM_PROJECTION 59 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 61 # define GUM_MULTI_DIM_PROJECTION_POINTER_NAME projectMaxMultiDimArray4Pointers 62 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 63 # define GUM_MULTI_DIM_PROJECTION(x, y) \ 64 if (*(y) > *(x)) *(x) = *(y) 65 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL std::numeric_limits< GUM_SCALAR >::min() 67 # undef GUM_MULTI_DIM_PROJECTION_POINTER_NAME 68 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 69 # undef GUM_MULTI_DIM_PROJECTION 70 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 72 # define GUM_MULTI_DIM_PROJECTION_POINTER_IMPL2ARRAY_NAME \ 73 projectMaxMultiDimArray4Pointers 74 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 75 # define GUM_MULTI_DIM_PROJECTION(x, y) \ 76 if (*(y) > *(x)) *(x) = *(y) 77 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL std::numeric_limits< GUM_SCALAR >::min() 79 # undef GUM_MULTI_DIM_PROJECTION_POINTER_IMPL2ARRAY_NAME 80 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 81 # undef GUM_MULTI_DIM_PROJECTION 82 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 86 # define GUM_MULTI_DIM_PROJECTION_NAME projectMinMultiDimArray 87 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 88 # define GUM_MULTI_DIM_PROJECTION(x, y) \ 90 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL std::numeric_limits< GUM_SCALAR >::max() 92 # undef GUM_MULTI_DIM_PROJECTION_NAME 93 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 94 # undef GUM_MULTI_DIM_PROJECTION 95 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 97 # define GUM_MULTI_DIM_PROJECTION_IMPL2ARRAY_NAME projectMinMultiDimArray 98 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 99 # define GUM_MULTI_DIM_PROJECTION(x, y) \ 101 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL std::numeric_limits< GUM_SCALAR >::max() 103 # undef GUM_MULTI_DIM_PROJECTION_IMPL2ARRAY_NAME 104 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 105 # undef GUM_MULTI_DIM_PROJECTION 106 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 108 # define GUM_MULTI_DIM_PROJECTION_POINTER_NAME projectMinMultiDimArray4Pointers 109 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 110 # define GUM_MULTI_DIM_PROJECTION(x, y) \ 111 if (*(x) > *(y)) *(x) = *(y) 112 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL std::numeric_limits< GUM_SCALAR >::max() 114 # undef GUM_MULTI_DIM_PROJECTION_POINTER_NAME 115 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 116 # undef GUM_MULTI_DIM_PROJECTION 117 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 119 # define GUM_MULTI_DIM_PROJECTION_POINTER_IMPL2ARRAY_NAME \ 120 projectMinMultiDimArray4Pointers 121 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 122 # define GUM_MULTI_DIM_PROJECTION(x, y) \ 123 if (*(x) > *(y)) *(x) = *(y) 124 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL std::numeric_limits< GUM_SCALAR >::max() 126 # undef GUM_MULTI_DIM_PROJECTION_POINTER_IMPL2ARRAY_NAME 127 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 128 # undef GUM_MULTI_DIM_PROJECTION 129 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 133 # define GUM_MULTI_DIM_PROJECTION_NAME projectSumMultiDimArray 134 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 135 # define GUM_MULTI_DIM_PROJECTION(x, y) x += y 136 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL (GUM_SCALAR)0 138 # undef GUM_MULTI_DIM_PROJECTION_NAME 139 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 140 # undef GUM_MULTI_DIM_PROJECTION 141 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 143 # define GUM_MULTI_DIM_PROJECTION_IMPL2ARRAY_NAME projectSumMultiDimArray 144 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 145 # define GUM_MULTI_DIM_PROJECTION(x, y) x += y 146 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL (GUM_SCALAR)0 148 # undef GUM_MULTI_DIM_PROJECTION_IMPL2ARRAY_NAME 149 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 150 # undef GUM_MULTI_DIM_PROJECTION 151 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 153 # define GUM_MULTI_DIM_PROJECTION_POINTER_NAME projectSumMultiDimArray4Pointers 154 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 155 # define GUM_MULTI_DIM_PROJECTION(x, y) *(x) += *(y) 156 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL (GUM_SCALAR)0 158 # undef GUM_MULTI_DIM_PROJECTION_POINTER_NAME 159 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 160 # undef GUM_MULTI_DIM_PROJECTION 161 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 163 # define GUM_MULTI_DIM_PROJECTION_POINTER_IMPL2ARRAY_NAME \ 164 projectSumMultiDimArray4Pointers 165 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 166 # define GUM_MULTI_DIM_PROJECTION(x, y) *(x) += *(y) 167 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL (GUM_SCALAR)0 169 # undef GUM_MULTI_DIM_PROJECTION_POINTER_IMPL2ARRAY_NAME 170 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 171 # undef GUM_MULTI_DIM_PROJECTION 172 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 176 # define GUM_MULTI_DIM_PROJECTION_NAME projectProductMultiDimArray 177 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 178 # define GUM_MULTI_DIM_PROJECTION(x, y) (x) *= (y) 179 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL (GUM_SCALAR)1 181 # undef GUM_MULTI_DIM_PROJECTION_NAME 182 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 183 # undef GUM_MULTI_DIM_PROJECTION 184 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 186 # define GUM_MULTI_DIM_PROJECTION_IMPL2ARRAY_NAME projectProductMultiDimArray 187 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 188 # define GUM_MULTI_DIM_PROJECTION(x, y) (x) *= (y) 189 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL (GUM_SCALAR)1 191 # undef GUM_MULTI_DIM_PROJECTION_IMPL2ARRAY_NAME 192 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 193 # undef GUM_MULTI_DIM_PROJECTION 194 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 196 # define GUM_MULTI_DIM_PROJECTION_POINTER_NAME \ 197 projectProductMultiDimArray4Pointers 198 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 199 # define GUM_MULTI_DIM_PROJECTION(x, y) (*x) *= (*y) 200 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL (GUM_SCALAR)1 202 # undef GUM_MULTI_DIM_PROJECTION_POINTER_NAME 203 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 204 # undef GUM_MULTI_DIM_PROJECTION 205 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 207 # define GUM_MULTI_DIM_PROJECTION_POINTER_IMPL2ARRAY_NAME \ 208 projectProductMultiDimArray4Pointers 209 # define GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 210 # define GUM_MULTI_DIM_PROJECTION(x, y) (*x) *= (*y) 211 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL (GUM_SCALAR)1 213 # undef GUM_MULTI_DIM_PROJECTION_POINTER_IMPL2ARRAY_NAME 214 # undef GUM_MULTI_DIM_PROJECTION_EFFECTIVE_TYPE 215 # undef GUM_MULTI_DIM_PROJECTION 216 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 220 # define GUM_MULTI_DIM_PROJECTION_OPERATOR Maximizes 221 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL \ 222 (-1 * std::numeric_limits< GUM_SCALAR >::max()) 224 # define GUM_MULTI_DIM_PROJECTION_NAME projectMaxMultiDimFunctionGraph 226 # undef GUM_MULTI_DIM_PROJECTION_NAME 228 # define GUM_MULTI_DIM_PROJECTION_IMPL2DECISION_GRAPH_NAME \ 229 projectMaxMultiDimFunctionGraph 231 # undef GUM_MULTI_DIM_PROJECTION_IMPL2DECISION_GRAPH_NAME 233 # undef GUM_MULTI_DIM_PROJECTION_OPERATOR 234 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 238 # define GUM_MULTI_DIM_PROJECTION_OPERATOR Minimizes 239 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL std::numeric_limits< GUM_SCALAR >::max() 241 # define GUM_MULTI_DIM_PROJECTION_NAME projectMinMultiDimFunctionGraph 243 # undef GUM_MULTI_DIM_PROJECTION_NAME 245 # define GUM_MULTI_DIM_PROJECTION_IMPL2DECISION_GRAPH_NAME \ 246 projectMinMultiDimFunctionGraph 248 # undef GUM_MULTI_DIM_PROJECTION_IMPL2DECISION_GRAPH_NAME 250 # undef GUM_MULTI_DIM_PROJECTION_OPERATOR 251 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 255 # define GUM_MULTI_DIM_PROJECTION_OPERATOR std::plus 256 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL (GUM_SCALAR)0 258 # define GUM_MULTI_DIM_PROJECTION_NAME projectSumMultiDimFunctionGraph 260 # undef GUM_MULTI_DIM_PROJECTION_NAME 262 # define GUM_MULTI_DIM_PROJECTION_IMPL2DECISION_GRAPH_NAME \ 263 projectSumMultiDimFunctionGraph 265 # undef GUM_MULTI_DIM_PROJECTION_IMPL2DECISION_GRAPH_NAME 267 # undef GUM_MULTI_DIM_PROJECTION_OPERATOR 268 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 272 # define GUM_MULTI_DIM_PROJECTION_OPERATOR std::multiplies 273 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL (GUM_SCALAR)1 275 # define GUM_MULTI_DIM_PROJECTION_NAME projectProductMultiDimFunctionGraph 277 # undef GUM_MULTI_DIM_PROJECTION_NAME 279 # define GUM_MULTI_DIM_PROJECTION_IMPL2DECISION_GRAPH_NAME \ 280 projectProductMultiDimFunctionGraph 282 # undef GUM_MULTI_DIM_PROJECTION_IMPL2DECISION_GRAPH_NAME 284 # undef GUM_MULTI_DIM_PROJECTION_OPERATOR 285 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 302 # define GUM_MULTI_DIM_PROJECTION_NAME projectMax 303 # define GUM_MULTI_DIM_PROJECTION_FUNC_NAME "max" 304 # define GUM_MULTI_DIM_SYMMETRIC_PROJECTION 306 # undef GUM_MULTI_DIM_PROJECTION_NAME 307 # undef GUM_MULTI_DIM_PROJECTION_FUNC_NAME 308 # undef GUM_MULTI_DIM_SYMMETRIC_PROJECTION 311 # define GUM_MULTI_DIM_PROJECTION_NAME projectMin 312 # define GUM_MULTI_DIM_PROJECTION_FUNC_NAME "min" 313 # define GUM_MULTI_DIM_SYMMETRIC_PROJECTION 315 # undef GUM_MULTI_DIM_PROJECTION_NAME 316 # undef GUM_MULTI_DIM_PROJECTION_FUNC_NAME 317 # undef GUM_MULTI_DIM_SYMMETRIC_PROJECTION 320 # define GUM_MULTI_DIM_PROJECTION_NAME projectSum 321 # define GUM_MULTI_DIM_PROJECTION_FUNC_NAME "sum" 322 # define GUM_MULTI_DIM_SYMMETRIC_PROJECTION 324 # undef GUM_MULTI_DIM_PROJECTION_NAME 325 # undef GUM_MULTI_DIM_PROJECTION_FUNC_NAME 326 # undef GUM_MULTI_DIM_SYMMETRIC_PROJECTION 329 # define GUM_MULTI_DIM_PROJECTION_NAME projectProduct 330 # define GUM_MULTI_DIM_PROJECTION_FUNC_NAME "product" 331 # define GUM_MULTI_DIM_SYMMETRIC_PROJECTION 333 # undef GUM_MULTI_DIM_PROJECTION_NAME 334 # undef GUM_MULTI_DIM_PROJECTION_FUNC_NAME 335 # undef GUM_MULTI_DIM_SYMMETRIC_PROJECTION 339 # define GUM_MULTI_DIM_PROJECTION_NAME projectMaxMultiDimImplementation 340 # define GUM_MULTI_DIM_PROJECTION(x, y) ((x) > (y) ? (x) : (y)) 341 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL std::numeric_limits< GUM_SCALAR >::min() 343 # undef GUM_MULTI_DIM_PROJECTION_NAME 344 # undef GUM_MULTI_DIM_PROJECTION 345 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 347 # define GUM_MULTI_DIM_PROJECTION_NAME projectMinMultiDimImplementation 348 # define GUM_MULTI_DIM_PROJECTION(x, y) ((x) > (y) ? (y) : (x)) 349 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL std::numeric_limits< GUM_SCALAR >::max() 351 # undef GUM_MULTI_DIM_PROJECTION_NAME 352 # undef GUM_MULTI_DIM_PROJECTION 353 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 355 # define GUM_MULTI_DIM_PROJECTION_NAME projectSumMultiDimImplementation 356 # define GUM_MULTI_DIM_PROJECTION(x, y) ((x) + (y)) 357 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL (GUM_SCALAR)0 359 # undef GUM_MULTI_DIM_PROJECTION_NAME 360 # undef GUM_MULTI_DIM_PROJECTION 361 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 363 # define GUM_MULTI_DIM_PROJECTION_NAME projectProductMultiDimImplementation 364 # define GUM_MULTI_DIM_PROJECTION(x, y) ((x) * (y)) 365 # define GUM_MULTI_DIM_PROJECTION_NEUTRAL (GUM_SCALAR)1 367 # undef GUM_MULTI_DIM_PROJECTION_NAME 368 # undef GUM_MULTI_DIM_PROJECTION 369 # undef GUM_MULTI_DIM_PROJECTION_NEUTRAL 377 template <
typename GUM_SCALAR >
379 static bool first_init =
true;
384 std::string MultiDimArrayString(
"MultiDimArray");
385 std::string MultiDimFunctionGraphString(
"MultiDimFunctionGraph");
386 std::string BaseNameString(
"MultiDimImplementation");
389 registerProjection< GUM_SCALAR >(
391 registerProjection< GUM_SCALAR >(
393 registerProjection< GUM_SCALAR >(
395 registerProjection< GUM_SCALAR >(
399 registerProjection< GUM_SCALAR >(
401 registerProjection< GUM_SCALAR >(
403 registerProjection< GUM_SCALAR >(
405 registerProjection< GUM_SCALAR >(
"product",
406 MultiDimFunctionGraphString,
410 registerProjection< GUM_SCALAR >(
411 "max", BaseNameString, &projectMaxMultiDimImplementation);
412 registerProjection< GUM_SCALAR >(
413 "min", BaseNameString, &projectMinMultiDimImplementation);
414 registerProjection< GUM_SCALAR >(
415 "sum", BaseNameString, &projectSumMultiDimImplementation);
416 registerProjection< GUM_SCALAR >(
417 "product", BaseNameString, &projectProductMultiDimImplementation);
422 template <
typename GUM_SCALAR >
424 static bool first_init =
true;
429 std::string MultiDimArrayString(
"MultiDimArray");
430 std::string BaseNameString(
"MultiDimImplementation");
433 registerProjection< GUM_SCALAR* >(
435 registerProjection< GUM_SCALAR* >(
437 registerProjection< GUM_SCALAR* >(
439 registerProjection< GUM_SCALAR* >(
447 # undef GUM_PROJECTION_PATTERN_ALLOWED GUM_SCALAR * projectMinMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Min operator.
MultiDimFunctionGraph< GUM_SCALAR > * projectMinMultiDimFunctionGraph(const MultiDimFunctionGraph< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimFunctionGraph using a Min operator ...
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
GUM_SCALAR projectMinMultiDimArray(const MultiDimArray< GUM_SCALAR > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Min operator.
GUM_SCALAR projectMaxMultiDimArray(const MultiDimArray< GUM_SCALAR > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Max operator.
MultiDimFunctionGraph< GUM_SCALAR > * projectSumMultiDimFunctionGraph(const MultiDimFunctionGraph< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimFunctionGraph using a summation
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
GUM_SCALAR * projectMaxMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
A specialized function for projecting a multiDimArray using a Max operator.
void projections4MultiDimInit()
the function used to register all the projection operators on multidimImplementations over non-pointe...
MultiDimFunctionGraph< GUM_SCALAR > * projectProductMultiDimFunctionGraph(const MultiDimFunctionGraph< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimFunctionGraph using products
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
GUM_SCALAR projectProductMultiDimArray(const MultiDimArray< GUM_SCALAR > *table, Instantiation *instantiation=0)
a function for projecting a multiDimArray using a Product operatorThe function projects a table over ...
MultiDimFunctionGraph< GUM_SCALAR > * projectMaxMultiDimFunctionGraph(const MultiDimFunctionGraph< GUM_SCALAR > *table, const Set< const DiscreteVariable * > &del_vars)
a specialized function for projecting a multiDimFunctionGraph using a Max operator ...
GUM_SCALAR projectSumMultiDimArray(const MultiDimArray< GUM_SCALAR > *table, Instantiation *instantiation=0)
a specialized function for projecting a multiDimArray using a Sum operatorThe function projects a tab...
GUM_SCALAR * projectProductMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
a function for projecting a multiDimArray using a Product operatorThe function projects a table over ...
GUM_SCALAR * projectSumMultiDimArray4Pointers(const MultiDimArray< GUM_SCALAR * > *table, Instantiation *instantiation=0)
a specialized function for projecting a multiDimArray using a Sum operatorThe function projects a tab...
void pointerProjections4MultiDimInit()
the function used to register all the projections on multidimImplementations over pointers types...