diff --git a/src/setting/Any-num.pm b/src/setting/Any-num.pm index 98fbc8c0303..d1b5822303d 100644 --- a/src/setting/Any-num.pm +++ b/src/setting/Any-num.pm @@ -64,6 +64,16 @@ class Any is also { default { die "Unable to convert to base: $base" } } } + + our Num multi method sin($base = 'radians') is export { + self.Num!to-radians($base).sin; # seems awkward, but the obvious way of doing + # this is tripping up on some wierd Rakudo-bug + } + + our Num multi method cos($base = 'radians') is export { + self.Num!to-radians($base).cos; # seems awkward, but the obvious way of doing + # this is tripping up on some wierd Rakudo-bug + } } our Num sub rand (*@args) { diff --git a/src/setting/Complex.pm b/src/setting/Complex.pm index 395a8305cc5..208bf370c49 100644 --- a/src/setting/Complex.pm +++ b/src/setting/Complex.pm @@ -103,12 +103,12 @@ multi sub infix:<**>($a, Complex $b) { } class Complex is also { - method sin($base = 'radians') { - $.re.sin($base) * $.im.cosh($base) + 1i * $.re.cos($base) * $.im.sinh($base); + multi method sin($base = 'radians') { + $.re.sin($base) * $.im.cosh($base) + ($.re.cos($base) * $.im.sinh($base))i; } - method cos($base = 'radians') { - $.re.cos($base) * $.im.cosh($base) - 1i * $.re.sin($base) * $.im.sinh($base); + multi method cos($base = 'radians') { + $.re.cos($base) * $.im.cosh($base) - ($.re.sin($base) * $.im.sinh($base))i; } }