Removed the log10 declaration in RealFieldElement interface.
This method introduced a binary incompatibility as one implementing class (Dfp) did not have the proper return type and had to be changed. The method will be added back in the interface for 4.0, when it will be allowed to change the return type for Dfp. git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1455053 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
9d5715114c
commit
3ad5595706
|
@ -205,10 +205,12 @@ public interface RealFieldElement<T> extends FieldElement<T> {
|
|||
*/
|
||||
T log1p();
|
||||
|
||||
/** Base 10 logarithm.
|
||||
* @return base 10 logarithm of the instance
|
||||
*/
|
||||
T log10();
|
||||
// TODO: add this method in 4.0, as it is not possible to do it in 3.2
|
||||
// due to incompatibility of the return type in the Dfp class
|
||||
// /** Base 10 logarithm.
|
||||
// * @return base 10 logarithm of the instance
|
||||
// */
|
||||
// T log10();
|
||||
|
||||
/** Cosine operation.
|
||||
* @return cos(this)
|
||||
|
|
|
@ -621,7 +621,9 @@ public class DerivativeStructure implements RealFieldElement<DerivativeStructure
|
|||
return result;
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
/** Base 10 logarithm.
|
||||
* @return base 10 logarithm of the instance
|
||||
*/
|
||||
public DerivativeStructure log10() {
|
||||
final DerivativeStructure result = new DerivativeStructure(compiler);
|
||||
compiler.log10(data, 0, result.data, 0);
|
||||
|
|
|
@ -2665,13 +2665,25 @@ public class Dfp implements RealFieldElement<Dfp> {
|
|||
return DfpMath.log(this.add(getOne()));
|
||||
}
|
||||
|
||||
/** {@inheritDoc}
|
||||
* @since 3.2
|
||||
// TODO: deactivate this implementation (and return type) in 4.0
|
||||
/** Get the exponent of the greatest power of 10 that is less than or equal to abs(this).
|
||||
* @return integer base 10 logarithm
|
||||
* @deprecated as of 3.2, replaced by {@link #intLog10()}, in 4.0 the return type
|
||||
* will be changed to Dfp
|
||||
*/
|
||||
public Dfp log10() {
|
||||
return DfpMath.log(this).divide(DfpMath.log(newInstance(10)));
|
||||
@Deprecated
|
||||
public int log10() {
|
||||
return intLog10();
|
||||
}
|
||||
|
||||
// TODO: activate this implementation (and return type) in 4.0
|
||||
// /** {@inheritDoc}
|
||||
// * @since 3.2
|
||||
// */
|
||||
// public Dfp log10() {
|
||||
// return DfpMath.log(this).divide(DfpMath.log(newInstance(10)));
|
||||
// }
|
||||
|
||||
/** {@inheritDoc}
|
||||
* @since 3.2
|
||||
*/
|
||||
|
|
|
@ -442,7 +442,9 @@ public class Decimal64 extends Number
|
|||
return new Decimal64(FastMath.log1p(value));
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
/** Base 10 logarithm.
|
||||
* @return base 10 logarithm of the instance
|
||||
*/
|
||||
public Decimal64 log10() {
|
||||
return new Decimal64(FastMath.log10(value));
|
||||
}
|
||||
|
|
|
@ -312,12 +312,14 @@ public abstract class ExtendedFieldElementAbstractTest<T extends RealFieldElemen
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLog10() {
|
||||
for (double x = -0.9; x < 0.9; x += 0.05) {
|
||||
checkRelative(FastMath.log10(x), build(x).log10());
|
||||
}
|
||||
}
|
||||
// TODO: add this test in 4.0, as it is not possible to do it in 3.2
|
||||
// due to incompatibility of the return type in the Dfp class
|
||||
// @Test
|
||||
// public void testLog10() {
|
||||
// for (double x = -0.9; x < 0.9; x += 0.05) {
|
||||
// checkRelative(FastMath.log10(x), build(x).log10());
|
||||
// }
|
||||
// }
|
||||
|
||||
@Test
|
||||
public void testAbs() {
|
||||
|
|
Loading…
Reference in New Issue