72 T outputG[this->getTargetDim()];
74 if ( this->_fIsBlock && this->_gIsBlock ) {
75 this->_f(outputF, input);
76 this->_g(outputG, input);
79 const int superInput[3] = { this->_glob, input[0], input[1] };
81 if ( this->_fIsBlock ) {
82 this->_f(outputF, input);
83 this->_g(outputG, superInput);
86 this->_f(outputF, superInput);
87 this->_g(outputG, input);
91 if ( _f.getTargetDim() == 1 || _g.getTargetDim() == 1 ) {
93 if ( _f.getTargetDim() == 1 ) {
95 for (
int i = 1; i < this->getTargetDim(); i++) {
96 outputF[i] = outputF[0];
99 else if ( _g.getTargetDim() == 1 ) {
101 for (
int i = 1; i < this->getTargetDim(); i++) {
102 outputG[i] = outputG[0];
107 for (
int i = 0; i < this->getTargetDim(); i++) {
108 output[i] = F<T>()(outputF[i], outputG[i]);