14 double compose(
const Eigen::VectorXd &inputs)
const override;
15 Eigen::VectorXd
compose_grad(
const Eigen::VectorXd &inputs)
const override;
25 double compose(
const Eigen::VectorXd &inputs)
const override { assert(inputs.size() == 1);
return -inputs(0); }
26 Eigen::VectorXd
compose_grad(
const Eigen::VectorXd &inputs)
const override { assert(inputs.size() == 1);
return Eigen::VectorXd::Constant(1, 1, -1.); }
38 double compose(
const Eigen::VectorXd &inputs)
const override { assert(inputs.size() == 1);
return alpha_ + inputs(0); }
39 Eigen::VectorXd
compose_grad(
const Eigen::VectorXd &inputs)
const override { assert(inputs.size() == 1);
return Eigen::VectorXd::Constant(1, 1, 1.); }
45 InequalityConstraintForm(
const std::vector<std::shared_ptr<AdjointForm>> &forms,
const Eigen::Vector2d &bounds,
const double power = 2);
49 double compose(
const Eigen::VectorXd &inputs)
const override;
50 Eigen::VectorXd
compose_grad(
const Eigen::VectorXd &inputs)
const override;
63 double compose(
const Eigen::VectorXd &inputs)
const override {
return pow(inputs(0),
power_); }
64 Eigen::VectorXd
compose_grad(
const Eigen::VectorXd &inputs)
const override { Eigen::VectorXd
x(1);
x(0) =
power_ * pow(inputs(0),
power_ - 1);
return x; }
76 double compose(
const Eigen::VectorXd &inputs)
const override {
return inputs(0) / inputs(1); }
77 Eigen::VectorXd
compose_grad(
const Eigen::VectorXd &inputs)
const override { Eigen::VectorXd
x(2);
x << 1. / inputs(1), -inputs(0) / pow(inputs(1), 2);
return x; }