From 7bfbe7725e340eb46cd1fa916bc84045a6fb24aa Mon Sep 17 00:00:00 2001 From: Solomon Foster Date: Fri, 2 Oct 2009 20:50:20 -0400 Subject: [PATCH] Full support for Complex cosech and acosech. --- src/setting/Any-num.pm | 12 ++++++++++-- src/setting/Complex.pm | 8 ++++++++ src/setting/Num.pm | 4 ++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/setting/Any-num.pm b/src/setting/Any-num.pm index 5af7a574415..4151e84da4b 100644 --- a/src/setting/Any-num.pm +++ b/src/setting/Any-num.pm @@ -130,7 +130,7 @@ class Any is also { self.Num.sech($base); } - our Num multi method cosech($base = 'radians') is export { + our Num multi method cosech($base = 'radians') { self.Num.cosech($base); } @@ -182,7 +182,7 @@ class Any is also { self.Num.asech($base); } - our Num multi method acosech($base = 'radians') is export { + our Num multi method acosech($base = 'radians') { self.Num.acosech($base); } @@ -276,6 +276,14 @@ multi sub asech($x, $base = 'radians') { $x.asech($base) } +multi sub cosech($x, $base = 'radians') { + $x.cosech($base) +} + +multi sub acosech($x, $base = 'radians') { + $x.acosech($base) +} + our Num sub rand (*@args) { die "too many arguments passed - 0 params expected" if @args; 1.rand diff --git a/src/setting/Complex.pm b/src/setting/Complex.pm index 8e04c6fbcec..9868ef3d187 100644 --- a/src/setting/Complex.pm +++ b/src/setting/Complex.pm @@ -104,6 +104,14 @@ class Complex { (1 / self).acosh($base); } + multi method cosech($base = 'radians') { + 1 / self.sinh($base); + } + + multi method acosech($base = 'radians') { + (1 / self).asinh($base); + } + multi method log() { Q:PIR { $P0 = get_root_namespace ['parrot'; 'Complex' ] diff --git a/src/setting/Num.pm b/src/setting/Num.pm index 29db37e1bd6..b9c6a5b0411 100644 --- a/src/setting/Num.pm +++ b/src/setting/Num.pm @@ -57,7 +57,7 @@ class Num is also { $r!from-radians($base) } - our Num multi method acosech($base = 'radians') is export { + our Num multi method acosech($base = 'radians') { # MUST: This is certainly wrong -- if nothing else, # asinh also calls from-radians on its result. # (Except it seems to be passing tests?) @@ -197,7 +197,7 @@ class Num is also { }; } - our Num multi method cosech($base = 'radians') is export { + our Num multi method cosech($base = 'radians') { my $x = self!to-radians($base); Q:PIR { $P0 = find_lex "$x"