Sha256: 795635faac3cb43a76d4598d1ae576c5df2138c831a0af89f9d035824cfaa75e

Contents?: true

Size: 1.37 KB

Versions: 188

Compression:

Stored size: 1.37 KB

Contents

final class ComplexNumber {

    private final double real;

    private final double imag;

    ComplexNumber(double real, double imag) {
        this.real = real;
        this.imag = imag;
    }

    double getReal() {
        return real;
    }

    double getImag() {
        return imag;
    }

    ComplexNumber times(ComplexNumber other) {
        return new ComplexNumber(
                real * other.real - imag * other.imag,
                real * other.imag + imag * other.real);
    }

    ComplexNumber add(ComplexNumber other) {
        return new ComplexNumber(real + other.real, imag + other.imag);
    }

    ComplexNumber minus(ComplexNumber other) {
        return new ComplexNumber(real - other.real, imag - other.imag);
    }

    ComplexNumber div(ComplexNumber other) {
        return this.times(other.conjugate()).div(Math.pow(other.abs(), 2));
    }

    double abs() {
        return Math.hypot(real, imag);
    }

    ComplexNumber conjugate() {
        return new ComplexNumber(real, -imag);
    }

    ComplexNumber exponentialOf() {
        return new ComplexNumber(Math.cos(imag), Math.sin(imag)).times(Math.exp(real));
    }

    private ComplexNumber div(double factor) {
        return new ComplexNumber(real / factor, imag / factor);
    }

    private ComplexNumber times(double factor) {
        return new ComplexNumber(factor * real, factor * imag);
    }
}

Version data entries

188 entries across 188 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.179 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.178 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.177 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.176 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.175 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.174 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.173 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.172 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.171 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.170 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.169 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.167 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.166 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.165 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.164 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.163 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.162 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.161 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java
trackler-2.2.1.160 tracks/java/exercises/complex-numbers/.meta/src/reference/java/ComplexNumber.java