1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

cgen: operator overloading

This commit is contained in:
Alexander Medvednikov
2020-04-08 22:12:42 +02:00
parent 3521b7ff89
commit a08e64f37f
6 changed files with 85 additions and 45 deletions

View File

@ -366,7 +366,7 @@ pub fn (c Complex) asinh() Complex {
// Based on
// http://www.suitcaseofdreams.net/Inverse__Hyperbolic_Functions.htm
pub fn (c Complex) acosh() Complex {
if(c.re > 1) {
if c.re > 1 {
return c.add(
c.pow(2)
.subtract(complex(1,0))
@ -391,7 +391,7 @@ pub fn (c Complex) acosh() Complex {
// http://www.suitcaseofdreams.net/Inverse__Hyperbolic_Functions.htm
pub fn (c Complex) atanh() Complex {
one := complex(1,0)
if(c.re < 1) {
if c.re < 1 {
return complex(1.0/2,0).multiply(
one
.add(c)
@ -421,7 +421,7 @@ pub fn (c Complex) atanh() Complex {
// http://www.suitcaseofdreams.net/Inverse__Hyperbolic_Functions.htm
pub fn (c Complex) acoth() Complex {
one := complex(1,0)
if(c.re < 0 || c.re > 1) {
if c.re < 0 || c.re > 1 {
return complex(1.0/2,0).multiply(
c
.add(one)
@ -479,7 +479,7 @@ pub fn (c Complex) acoth() Complex {
// http://www.suitcaseofdreams.net/Inverse__Hyperbolic_Functions.htm
pub fn (c Complex) acsch() Complex {
one := complex(1,0)
if(c.re < 0) {
if c.re < 0 {
return one.subtract(
one.add(
c.pow(2)

View File

@ -168,6 +168,8 @@ fn test_complex_mulinv() {
mut c2 := cmplx.complex(0.067568,-0.094595)
mut result := c1.mulinv()
// Some issue with precision comparison in f64 using == operator hence serializing to string
println(c2.str())
println(result.str())
assert result.str().eq(c2.str())
c1 = cmplx.complex(-3,4)
c2 = cmplx.complex(-0.12,-0.16)