void Stokhos::PseudoSpectralOrthogPolyExpansion<ordinal_type, value_type, point_compare_type, node_type>:: divide(Stokhos::OrthogPolyApprox<ordinal_type, value_type, node_type>& c, const Stokhos::OrthogPolyApprox<ordinal_type, value_type, node_type>& a, const Stokhos::OrthogPolyApprox<ordinal_type, value_type, node_type>& b) { #ifdef STOKHOS_TEUCHOS_TIME_MONITOR TEUCHOS_FUNC_TIME_MONITOR("Stokhos::OrthogPolyExpansionBase::divide(OPA,OPA)"); #endif if (b.size() == 1) { ordinal_type pc = a.size(); if (c.size() != pc) c.resize(pc); const value_type* ca = a.coeff(); const value_type* cb = b.coeff(); value_type* cc = c.coeff(); for (ordinal_type i=0; i<pc; i++) cc[i] = ca[i]/cb[0]; } else { if (use_quad_for_division) binary_op(div_quad_func(), c, a, b); else OrthogPolyExpansionBase<ordinal_type, value_type, node_type>::divide(c, a, b); } }
void Stokhos::QuadOrthogPolyExpansion<ordinal_type, value_type>:: divide(Stokhos::OrthogPolyApprox<ordinal_type, value_type>& c, const value_type& a, const Stokhos::OrthogPolyApprox<ordinal_type, value_type>& b) { binary_op(div_quad_func(), c, a, b); }
void Stokhos::PseudoSpectralOrthogPolyExpansion<ordinal_type, value_type, point_compare_type, node_type>:: divide(Stokhos::OrthogPolyApprox<ordinal_type, value_type, node_type>& c, const value_type& a, const Stokhos::OrthogPolyApprox<ordinal_type, value_type, node_type>& b) { if (use_quad_for_division) binary_op(div_quad_func(), c, a, b); else OrthogPolyExpansionBase<ordinal_type, value_type, node_type>::divide(c, a, b); }
void Stokhos::QuadOrthogPolyExpansion<ordinal_type, value_type>:: divideEqual(Stokhos::OrthogPolyApprox<ordinal_type, value_type>& c, const Stokhos::OrthogPolyApprox<ordinal_type, value_type >& x) { if (x.size() == 1) { ordinal_type p = c.size(); value_type* cc = c.coeff(); const value_type* xc = x.coeff(); for (ordinal_type i=0; i<p; i++) cc[i] /= xc[0]; } else binary_op(div_quad_func(), c, c, x); }
void Stokhos::QuadOrthogPolyExpansion<ordinal_type, value_type>:: divide(Stokhos::OrthogPolyApprox<ordinal_type, value_type>& c, const Stokhos::OrthogPolyApprox<ordinal_type, value_type>& a, const Stokhos::OrthogPolyApprox<ordinal_type, value_type>& b) { if (b.size() == 1) { ordinal_type pc = a.size(); if (c.size() != pc) c.resize(pc); const value_type* ca = a.coeff(); const value_type* cb = b.coeff(); value_type* cc = c.coeff(); for (ordinal_type i=0; i<pc; i++) cc[i] = ca[i]/cb[0]; } else binary_op(div_quad_func(), c, a, b); }
void Stokhos::PseudoSpectralOrthogPolyExpansion<ordinal_type, value_type, point_compare_type, node_type>:: divideEqual( Stokhos::OrthogPolyApprox<ordinal_type, value_type, node_type>& c, const Stokhos::OrthogPolyApprox<ordinal_type, value_type, node_type>& x) { #ifdef STOKHOS_TEUCHOS_TIME_MONITOR TEUCHOS_FUNC_TIME_MONITOR("Stokhos::OrthogPolyExpansionBase::divideEqual(OPA)"); #endif if (x.size() == 1) { ordinal_type p = c.size(); value_type* cc = c.coeff(); const value_type* xc = x.coeff(); for (ordinal_type i=0; i<p; i++) cc[i] /= xc[0]; } else { if (use_quad_for_division) binary_op(div_quad_func(), c, c, x); else OrthogPolyExpansionBase<ordinal_type, value_type, node_type>::divideEqual(c, x); } }