| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package io.v.v23.vdl; |
| |
| /** |
| * VdlComplex128 is a representation of a VDL complex128. |
| */ |
| public class VdlComplex128 extends VdlValue { |
| private static final long serialVersionUID = 1L; |
| |
| private final double real; |
| private final double imag; |
| |
| public VdlComplex128(VdlType type, double real, double imag) { |
| super(type); |
| assertKind(Kind.COMPLEX128); |
| this.real = real; |
| this.imag = imag; |
| } |
| |
| public VdlComplex128(double real, double imag) { |
| this(Types.COMPLEX128, real, imag); |
| } |
| |
| public VdlComplex128(double real) { |
| this(real, 0); |
| } |
| |
| public VdlComplex128() { |
| this(0, 0); |
| } |
| |
| public double getReal() { |
| return real; |
| } |
| |
| public double getImag() { |
| return imag; |
| } |
| |
| @Override |
| public boolean equals(Object obj) { |
| if (this == obj) return true; |
| if (!(obj instanceof VdlComplex128)) return false; |
| VdlComplex128 other = (VdlComplex128) obj; |
| return real == other.real && imag == other.imag; |
| } |
| |
| @Override |
| public int hashCode() { |
| return Double.valueOf(real).hashCode() ^ Double.valueOf(imag).hashCode(); |
| } |
| |
| @Override |
| public String toString() { |
| return "{real=" + Double.toString(real) + ", imag=" + Double.toString(imag) + "}"; |
| } |
| } |