KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > jga > fn > arithmetic > DoubleMath


1 // ============================================================================
2
// $Id: DoubleMath.java,v 1.5 2005/08/02 23:45:06 davidahall Exp $
3
// Copyright (c) 2003-2005 David A. Hall
4
// ============================================================================
5
// The contents of this file are subject to the Common Development and
6
// Distribution License (CDDL), Version 1.0 (the License); you may not use this
7
// file except in compliance with the License. You should have received a copy
8
// of the the License along with this file: if not, a copy of the License is
9
// available from Sun Microsystems, Inc.
10
//
11
// http://www.sun.com/cddl/cddl.html
12
//
13
// From time to time, the license steward (initially Sun Microsystems, Inc.) may
14
// publish revised and/or new versions of the License. You may not use,
15
// distribute, or otherwise make this file available under subsequent versions
16
// of the License.
17
//
18
// Alternatively, the contents of this file may be used under the terms of the
19
// GNU Lesser General Public License Version 2.1 or later (the "LGPL"), in which
20
// case the provisions of the LGPL are applicable instead of those above. If you
21
// wish to allow use of your version of this file only under the terms of the
22
// LGPL, and not to allow others to use your version of this file under the
23
// terms of the CDDL, indicate your decision by deleting the provisions above
24
// and replace them with the notice and other provisions required by the LGPL.
25
// If you do not delete the provisions above, a recipient may use your version
26
// of this file under the terms of either the CDDL or the LGPL.
27
//
28
// This library is distributed in the hope that it will be useful,
29
// but WITHOUT ANY WARRANTY; without even the implied warranty of
30
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
31
// ============================================================================
32
/**
33  * Provides Arithmetic implementation for Doubles
34  * <p>
35  * Copyright &copy; 2003-2005 David A. Hall
36  *
37  * @author <a HREF="mailto:dave@dolphin.hallsquared.org">David A. Hall</a>
38  */

39
40 package net.sf.jga.fn.arithmetic;
41
42 class DoubleMath implements Arithmetic<Double JavaDoc> {
43      
44     static final long serialVersionUID = 8842457834391281612L;
45
46     static private final Double JavaDoc ZERO = new Double JavaDoc(0.0d);
47     static private final Double JavaDoc ONE = new Double JavaDoc(1.0d);
48     
49     /**
50      * Returns the given value in the appropriate type
51      * @throws IllegalArgumentException if the value cannot be converted
52      */

53
54     public Double JavaDoc valueOf(Number JavaDoc value) throws IllegalArgumentException JavaDoc {
55         return new Double JavaDoc(value.doubleValue());
56     }
57
58     /**
59      * Returns the value 0 of the appropriate type
60      */

61
62     public Double JavaDoc zero() {
63         return ZERO;
64     }
65
66     /**
67      * Returns the value 1 of the appropriate type
68      */

69
70     public Double JavaDoc one() {
71         return ONE;
72     }
73
74    /**
75     * For numeric arguments x and y, returns x + y
76     * @return the sum of the two arguments
77     */

78
79     public Double JavaDoc plus (Double JavaDoc x, Double JavaDoc y) {
80         return new Double JavaDoc(x.doubleValue() + y.doubleValue());
81     }
82
83    /**
84     * For numeric arguments x and y, returns x - y
85     * @return the difference of the two arguments
86     */

87      
88     public Double JavaDoc minus (Double JavaDoc x, Double JavaDoc y) {
89         return new Double JavaDoc(x.doubleValue() - y.doubleValue());
90     }
91      
92    /**
93     * For numeric arguments x and y, returns x * y
94     * @return the product of the two arguments
95     */

96      
97
98     public Double JavaDoc multiplies (Double JavaDoc x, Double JavaDoc y){
99         return new Double JavaDoc(x.doubleValue() * y.doubleValue());
100     }
101          
102
103     /**
104      * for numeric argument x, returns -x
105      * @return the negative of its argument
106      */

107
108     public Double JavaDoc negate (Double JavaDoc x) {
109         return new Double JavaDoc(-x.doubleValue());
110     }
111     
112     /**
113      * For numeric arguments x and y, returns x / y
114      * @return the quotient of the two arguments
115      */

116
117     public Double JavaDoc divides (Double JavaDoc x, Double JavaDoc y) {
118         return new Double JavaDoc(x.doubleValue() / y.doubleValue());
119     }
120 }
121
Popular Tags