summaryrefslogtreecommitdiff
path: root/CSMath/src/bisection/Dual.java
blob: de5b004d858001863267a6791f36a48bf63945d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package bisection;

/**
 * Represents a 'dual' number.
 *
 * Think imaginary numbers, where instead of i, we add a value d such that d^2 =
 * 0.
 */
public class Dual {
	/**
	 * The real part of the dual number.
	 */
	public double real;
	/**
	 * The dual part of the dual number.
	 */
	public double dual;

	/**
	 * Create a new dual with both parts zero.
	 */
	public Dual() {
		real = 0;
		dual = 0;
	}

	/**
	 * Create a new dual number with a zero dual part.
	 *
	 * @param real
	 *                The real part of the number.
	 */
	public Dual(double real) {
		this.real = real;
		this.dual = 0;
	}

	/**
	 * Create a new dual number with a specified dual part.
	 *
	 * @param real
	 *                The real part of the number.
	 * @param dual
	 *                The dual part of the number.
	 */
	public Dual(double real, double dual) {
		this.real = real;
		this.dual = dual;
	}

	@Override
	public String toString() {
		return String.format("<%f, %f>", real, dual);
	}
}