inline void bi::exp_rows(M2 X, const V2& is) { BOOST_AUTO(iter, is.begin()); BOOST_AUTO(end, is.end()); for (; iter != end; ++iter) { BOOST_AUTO(row1, row(X, *iter)); exp_elements(row1, row1); } }
inline void bi::exp_columns(M2 X, const V2& is) { BOOST_AUTO(iter, is.begin()); BOOST_AUTO(end, is.end()); for (; iter != end; ++iter) { BOOST_AUTO(col, column(X, *iter)); exp_elements(col, col); } }
void bi::det_rows(const M2 X, const V2& is, V3 det) { BOOST_AUTO(iter, is.begin()); BOOST_AUTO(end, is.end()); set_elements(det, 1.0); for (; iter != end; ++iter) { mul_elements(det, column(X, *iter), det); } }
real bi::det_vector(const V2 x, const V3& is) { BOOST_AUTO(iter, is.begin()); BOOST_AUTO(end, is.end()); real det = 1.0; for (; iter != end; ++iter) { det *= *(x.begin() + *iter); } return det; }