21 static std::string str(
const X1& x1)
23 return "atan(" + x1->str() +
")";
27 static std::pair<Index,Index> output_shape([[maybe_unused]]
const X1& s1)
32 static Interval fwd(
const Interval& x1);
33 static ScalarType fwd_natural(
const ScalarType& x1);
34 static ScalarType fwd_centered(
const ScalarType& x1);
35 static void bwd(
const Interval& y, Interval& x1);
42 atan(
const ScalarExpr& x1)
44 return { std::make_shared<AnalyticOperationExpr<AtanOp,ScalarType,ScalarType>>(x1) };
54 inline ScalarType AtanOp::fwd_natural(
const ScalarType& x1)
62 inline ScalarType AtanOp::fwd_centered(
const ScalarType& x1)
64 if(centered_form_not_available_for_args(x1))
65 return fwd_natural(x1);
67 IntervalMatrix d(1,x1.da.size());
68 for(Index i = 0 ; i < d.size() ; i++)
69 d(0,i) = x1.da(0,i)/(1.+
sqr(x1.a));
118 x1 &= Interval(
tan(Interval(z.lb())).
lb(),oo);
130 else if(z.lb() < -pi2l)
132 x1 &= Interval(-oo,
tan(Interval(z.ub())).
ub());
135 x1 &= Interval(
tan(Interval(z.lb())).
lb(),
tan(Interval(z.ub())).
ub());
Interval class, for representing closed and connected subsets of .
Definition codac2_Interval.h:62
double ub() const
Returns the upper bound of this.
Definition codac2_Interval_impl.h:107
static Interval pi()
Provides an interval for .
Definition codac2_Interval_impl.h:555
double lb() const
Returns the lower bound of this.
Definition codac2_Interval_impl.h:102
Interval atan(const Interval &x)
Returns .
Definition codac2_Interval_operations_impl.h:133
Interval sqr(const Interval &x)
Returns .
Definition codac2_Interval_operations_impl.h:21
Interval tan(const Interval &x)
Returns .
Definition codac2_Interval_operations_impl.h:112