Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Let's get Real about this (fix Bridging to Complex). lizmat++
alternatively: "Not Cool, Mouq"
  • Loading branch information
Mouq committed Mar 22, 2015
1 parent 5778e86 commit 31d6106
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions src/core/Complex.pm
Expand Up @@ -198,7 +198,7 @@ my class Complex is Cool does Numeric {
multi method round(Complex:D:) {
Complex.new( self.re.round, self.im.round );
}
multi method round(Complex:D: Real(Cool) $scale) {
multi method round(Complex:D: Real(Real) $scale) {
Complex.new( self.re.round($scale), self.im.round($scale) );
}

Expand Down Expand Up @@ -251,7 +251,7 @@ multi sub infix:<+>(Complex:D \a, Complex:D \b) returns Complex:D {
$new;
}

multi sub infix:<+>(Complex:D \a, Num(Cool) \b) returns Complex:D {
multi sub infix:<+>(Complex:D \a, Num(Real) \b) returns Complex:D {
my $new := nqp::create(Complex);
nqp::bindattr_n( $new, Complex, '$!re',
nqp::add_n(
Expand All @@ -265,7 +265,7 @@ multi sub infix:<+>(Complex:D \a, Num(Cool) \b) returns Complex:D {
$new
}

multi sub infix:<+>(Num(Cool) \a, Complex:D \b) returns Complex:D {
multi sub infix:<+>(Num(Real) \a, Complex:D \b) returns Complex:D {
my $new := nqp::create(Complex);
nqp::bindattr_n($new, Complex, '$!re',
nqp::add_n(
Expand Down Expand Up @@ -296,7 +296,7 @@ multi sub infix:<->(Complex:D \a, Complex:D \b) returns Complex:D {
$new
}

multi sub infix:<->(Complex:D \a, Num(Cool) \b) returns Complex:D {
multi sub infix:<->(Complex:D \a, Num(Real) \b) returns Complex:D {
my $new := nqp::create(Complex);
nqp::bindattr_n( $new, Complex, '$!re',
nqp::sub_n(
Expand All @@ -310,7 +310,7 @@ multi sub infix:<->(Complex:D \a, Num(Cool) \b) returns Complex:D {
$new
}

multi sub infix:<->(Num(Cool) \a, Complex:D \b) returns Complex:D {
multi sub infix:<->(Num(Real) \a, Complex:D \b) returns Complex:D {
my $new := nqp::create(Complex);
nqp::bindattr_n( $new, Complex, '$!re',
nqp::sub_n(
Expand Down Expand Up @@ -341,7 +341,7 @@ multi sub infix:<*>(Complex:D \a, Complex:D \b) returns Complex:D {
$new;
}

multi sub infix:<*>(Complex:D \a, Num(Cool) \b) returns Complex:D {
multi sub infix:<*>(Complex:D \a, Num(Real) \b) returns Complex:D {
my $new := nqp::create(Complex);
my num $b_num = b;
nqp::bindattr_n($new, Complex, '$!re',
Expand All @@ -359,7 +359,7 @@ multi sub infix:<*>(Complex:D \a, Num(Cool) \b) returns Complex:D {
$new
}

multi sub infix:<*>(Num(Cool) \a, Complex:D \b) returns Complex:D {
multi sub infix:<*>(Num(Real) \a, Complex:D \b) returns Complex:D {
my $new := nqp::create(Complex);
my num $a_num = a;
nqp::bindattr_n($new, Complex, '$!re',
Expand Down Expand Up @@ -410,16 +410,16 @@ multi sub infix:</>(Real \a, Complex:D \b) returns Complex:D {
multi sub infix:<**>(Complex:D \a, Complex:D \b) returns Complex:D {
(a.re == 0e0 && a.im == 0e0) ?? Complex.new(0e0, 0e0) !! (b * a.log).exp
}
multi sub infix:<**>(Num(Cool) \a, Complex:D \b) returns Complex:D {
multi sub infix:<**>(Num(Real) \a, Complex:D \b) returns Complex:D {
a == 0e0 ?? Complex.new(0e0, 0e0) !! (b * a.log).exp
}
multi sub infix:<**>(Complex:D \a, Num(Cool) \b) returns Complex:D {
multi sub infix:<**>(Complex:D \a, Num(Real) \b) returns Complex:D {
(b * a.log).exp
}

multi sub infix:<==>(Complex:D \a, Complex:D \b) returns Bool:D { a.re == b.re && a.im == b.im }
multi sub infix:<==>(Complex:D \a, Num(Cool) \b) returns Bool:D { a.re == b && a.im == 0e0 }
multi sub infix:<==>(Num(Cool) \a, Complex:D \b) returns Bool:D { a == b.re && 0e0 == b.im }
multi sub infix:<==>(Complex:D \a, Num(Real) \b) returns Bool:D { a.re == b && a.im == 0e0 }
multi sub infix:<==>(Num(Real) \a, Complex:D \b) returns Bool:D { a == b.re && 0e0 == b.im }

proto sub postfix:<i>(|) returns Complex:D is pure { * }
multi sub postfix:<i>(Real \a) returns Complex:D { Complex.new(0e0, a); }
Expand Down

0 comments on commit 31d6106

Please sign in to comment.