sub _parserAltSecant_init {} package parser::AltSecant; our @ISA = ('Parser::Function::trig'); sub Enable { my $context = shift || main::Context(); $context->functions->set(asec => {class => 'parser::AltSecant'}); return $context; } sub asec { my $self = shift; my $a = $self->SUPER::asec(@_); $a = -$a if $a > $Value::Complex::pi/2; return $a; } sub D_asec { my $self = shift; my $x = shift; my $equation = $self->{equation}; my $BOP = $self->Item("BOP"); my $NUM = $self->Item("Number"); my $FN = $self->Item("Function"); return $BOP->new($equation,'/', $NUM->new($equation,1), $BOP->new($equation,'*', $x->copy, $FN->new($equation,'sqrt',[ $BOP->new($equation,'-', $BOP->new($equation,'^',$x,$NUM->new($equation,2)), $NUM->new($equation,1) )] ) ) ); } 1;