KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > math > analysis > UnivariateRealSolverFactoryImpl


1 /*
2  * Copyright 2003-2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.commons.math.analysis;
17
18 /**
19  * A concrete {@link UnivariateRealSolverFactory}. This is the default solver factory
20  * used by commons-math.
21  * <p>
22  * The default solver returned by this factory is a {@link BrentSolver}.
23  *
24  * @version $Revision$ $Date: 2005-02-26 05:11:52 -0800 (Sat, 26 Feb 2005) $
25  */

26 public class UnivariateRealSolverFactoryImpl extends UnivariateRealSolverFactory {
27         
28     /**
29      * Default constructor.
30      */

31     public UnivariateRealSolverFactoryImpl() {
32     }
33
34     /**
35      * Create a new {@link UnivariateRealSolver} for the given function. The
36      * actual solver returned is determined by the underlying factory.
37      *
38      * This factory returns a {@link BrentSolver} instance.
39      *
40      * @param f the function.
41      * @return the new solver.
42      */

43     public UnivariateRealSolver newDefaultSolver(UnivariateRealFunction f) {
44         return newBrentSolver(f);
45     }
46     
47     /**
48      * Create a new {@link UnivariateRealSolver} for the given function. The
49      * solver is an implementation of the bisection method.
50      * @param f the function.
51      * @return the new solver.
52      */

53     public UnivariateRealSolver newBisectionSolver(UnivariateRealFunction f) {
54         return new BisectionSolver(f);
55     }
56
57     /**
58      * Create a new {@link UnivariateRealSolver} for the given function. The
59      * solver is an implementation of the Brent method.
60      * @param f the function.
61      * @return the new solver.
62      */

63     public UnivariateRealSolver newBrentSolver(UnivariateRealFunction f) {
64         return new BrentSolver(f);
65     }
66     
67     /**
68      * Create a new {@link UnivariateRealSolver} for the given function. The
69      * solver is an implementation of Newton's Method.
70      * @param f the function.
71      * @return the new solver.
72      */

73     public UnivariateRealSolver newNewtonSolver(
74         DifferentiableUnivariateRealFunction f) {
75         
76         return new NewtonSolver(f);
77     }
78     
79     /**
80      * Create a new {@link UnivariateRealSolver} for the given function. The
81      * solver is an implementation of the secant method.
82      * @param f the function.
83      * @return the new solver.
84      */

85     public UnivariateRealSolver newSecantSolver(UnivariateRealFunction f) {
86         return new SecantSolver(f);
87     }
88 }
89
Popular Tags