evalf_func(step_evalf).
series_func(step_series).
conjugate_func(step_conjugate).
- real_part_func(step_real_part).
- imag_part_func(step_imag_part));
+ real_part_func(step_real_part).
+ imag_part_func(step_imag_part));
//////////
// Complex sign
throw do_taylor(); // caught by function::series()
}
+static ex Li2_conjugate(const ex & x)
+{
+ // conjugate(Li2(x))==Li2(conjugate(x)) unless on the branch cuts which
+ // run along the positive real axis beginning at 1.
+ if (x.info(info_flags::negative)) {
+ return Li2(x);
+ }
+ if (is_exactly_a<numeric>(x) &&
+ (!x.imag_part().is_zero() || x < *_num1_p)) {
+ return Li2(x.conjugate());
+ }
+ return conjugate_function(Li2(x)).hold();
+}
+
REGISTER_FUNCTION(Li2, eval_func(Li2_eval).
evalf_func(Li2_evalf).
derivative_func(Li2_deriv).
series_func(Li2_series).
+ conjugate_func(Li2_conjugate).
latex_name("\\mathrm{Li}_2"));
//////////