This PR relaxes the assumption on the type of the object that goes into the dual argument slot of BaseFormOperators. Base form operators (e.g. ExternalOperator or Interpolate) of the form B: V -> V, or B: V x V* -> R, have an argument slot to represent their dual argument (the one in V). Strictly speaking, whatever is in V should be allowed to go in there. At the moment, the code assumes that only a Cofunction or a Form can be held in this slot. This PR extends that assumption to other cases such as Action or even BaseFormOperator.
This PR relaxes the assumption on the type of the object that goes into the dual argument slot of
BaseFormOperator
s. Base form operators (e.g.ExternalOperator
orInterpolate
) of the formB: V -> V
, orB: V x V* -> R
, have an argument slot to represent their dual argument (the one in V). Strictly speaking, whatever is in V should be allowed to go in there. At the moment, the code assumes that only aCofunction
or aForm
can be held in this slot. This PR extends that assumption to other cases such asAction
or evenBaseFormOperator
.