/** * Description not yet available. * \param */ init_df1_two_variable::init_df1_two_variable(const prevariable& _v) { if (num_ind_var > 1) { cerr << "can only have 2 independent_variables in df1_two_variable" " function" << endl; ad_exit(1); } else { ADUNCONST(prevariable,v) ind_var[num_ind_var++]=&v; *get_u() = value(v); switch(num_ind_var) { case 1: *get_u_x() = 1.0; *get_u_y() = 0.0; break; case 2: *get_u_x() = 0.0; *get_u_y() = 1.0; break; default: cerr << "illegal num_ind_var value of " << num_ind_var << " in df1_two_variable function" << endl; ad_exit(1); } } }
df1_two_variable& df1_two_variable::operator *= (double v) { /* df1_three_variable x=*this * v; *this=x; return *this; */ *get_u()*=v; *get_u_x() = *get_u_x()*v; *get_u_y() = *get_u_y()*v; return *this; }
/** * Description not yet available. * \param */ df1_two_variable& df1_two_variable::operator /= (const df1_two_variable& y) { /* df1_three_variable x=*this * inv(y); *this=x; return *this; */ // properly optimized code double tmp=1.0/value(y); *get_u()*=tmp; *get_u_x() = *get_u_x()*tmp- *get_u()*tmp* *y.get_u_x(); *get_u_y() = *get_u_y()*tmp- *get_u()*tmp* *y.get_u_y(); return *this; }
df1_one_variable& df1_one_variable::operator+=(const df1_one_variable& _v) { *get_u() += *_v.get_u(); *get_u_x() += *_v.get_u_x(); return *this; }
/** * Description not yet available. * \param */ df1_two_variable& df1_two_variable::operator = (double x) { *get_u() = x; *get_u_x() =0.0; *get_u_y() =0.0; return *this; }
/** * Description not yet available. * \param */ df1_two_variable& df1_two_variable::operator = (const df1_two_variable& x) { *get_u() = *x.get_u(); *get_u_x() = *x.get_u_x(); *get_u_y() = *x.get_u_y(); return *this; }
/** * Description not yet available. * \param */ df1_two_variable& df1_two_variable::operator += (const df1_two_variable& v) { *get_u() += *v.get_u(); *get_u_x() += *v.get_u_x(); *get_u_y() += *v.get_u_y(); return *this; }
/** * Description not yet available. * \param */ init_df1_two_variable::init_df1_two_variable(double v) { *get_u() = v; *get_u_x() = 0.0; *get_u_y() = 0.0; }