This is an automated email from the ASF dual-hosted git repository. desruisseaux pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/sis.git
from 459597c6a6 Merge branch 'geoapi-3.1' add 72ccbe4a19 Make `DoubleDouble` a value class (i.e. immutable and without identity) in anticipation for value objects to be provided in future Java version. It forces us to modify all usages of `DoubleDouble`, but the result is much more readable than previously. add d208d976b7 Reduce the use of double-double arithmetic where we do not expect significant improvement. Make explicit whether or not the numbers where intended to be exact in base 10. add 008eb40d12 Replace double-double arithmetic in matrices by more straightforward usage of `Number`. This change affects all implementations of `ExtendedPrecisionMatrix` internal interfaces. Classes using the extended precision are also impacted, in particular `MatrixSIS`, `GeneralMatrix` and `Solver`. add 01c6baf548 Add tests about internal consistency of the `Number[]` array returned by `getElementAsNumbers()`. Fix a bug in the interaction between `GridGeometry` et `ProjectiveTransform` constructors and a NullPointerException. add 906f9ce512 Represent matrix elements as fractions when possible. This enhancement avoids rounding errors with, for example, unit conversions involving a division by 1000. It applies to creations, concatenations and inversions of `MathTransform` where performance is not the primary concern. It does not apply to the coordinate transformations executed by `MathTransform.transform(…)`, where performance matter. add faa3997687 Verify in a test that extended precision is propagated through MathTransform inversion and concatenation. add f76afb0622 Merge branch 'geoapi-4.0' into geoapi-3.1 new 835b893740 Merge branch 'geoapi-3.1'. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../org/apache/sis/coverage/grid/GridExtent.java | 27 +- .../org/apache/sis/coverage/grid/GridGeometry.java | 17 +- .../sis/coverage/grid/ResampledGridCoverage.java | 25 +- .../org/apache/sis/filter/ArithmeticFunction.java | 6 +- .../sis/internal/coverage/CoverageCombiner.java | 4 +- .../apache/sis/coverage/grid/GridGeometryTest.java | 34 +- .../main/java/org/apache/sis/portrayal/Canvas.java | 18 +- .../org/apache/sis/portrayal/package-info.java | 2 +- .../sis/internal/referencing/Arithmetic.java | 291 ++++++ .../referencing/ExtendedPrecisionMatrix.java | 92 +- .../sis/internal/referencing/j2d/AffineMatrix.java | 224 ++--- .../referencing/j2d/AffineTransform2D.java | 59 +- .../referencing/provider/Equirectangular.java | 8 +- .../sis/referencing/crs/DefaultTemporalCRS.java | 2 +- .../sis/referencing/cs/CoordinateSystems.java | 15 +- .../apache/sis/referencing/cs/package-info.java | 2 +- .../sis/referencing/datum/BursaWolfParameters.java | 82 +- .../sis/referencing/datum/DatumShiftGrid.java | 6 +- .../sis/referencing/datum/DefaultEllipsoid.java | 41 +- .../sis/referencing/datum/TimeDependentBWP.java | 34 +- .../apache/sis/referencing/datum/package-info.java | 2 +- .../operation/CoordinateOperationFinder.java | 11 +- .../operation/builder/LinearTransformBuilder.java | 2 +- .../operation/matrix/GeneralMatrix.java | 490 +++-------- .../sis/referencing/operation/matrix/Matrices.java | 199 +++-- .../sis/referencing/operation/matrix/Matrix1.java | 15 +- .../sis/referencing/operation/matrix/Matrix2.java | 19 +- .../sis/referencing/operation/matrix/Matrix3.java | 21 +- .../sis/referencing/operation/matrix/Matrix4.java | 23 +- .../referencing/operation/matrix/MatrixSIS.java | 293 +++--- .../operation/matrix/NonSquareMatrix.java | 83 +- .../sis/referencing/operation/matrix/Solver.java | 176 ++-- .../operation/matrix/UnmodifiableMatrix.java | 36 +- .../referencing/operation/matrix/package-info.java | 14 +- .../operation/projection/AlbersEqualArea.java | 32 +- .../operation/projection/CylindricalEqualArea.java | 35 +- .../operation/projection/Initializer.java | 197 ++--- .../projection/LambertConicConformal.java | 38 +- .../operation/projection/LongitudeWraparound.java | 6 +- .../referencing/operation/projection/Mercator.java | 15 +- .../operation/projection/MeridianArcBased.java | 9 +- .../projection/ModifiedAzimuthalEquidistant.java | 10 +- .../operation/projection/ObliqueStereographic.java | 4 +- .../operation/projection/Orthographic.java | 6 +- .../operation/projection/PolarStereographic.java | 20 +- .../operation/projection/TransverseMercator.java | 26 +- .../transform/AbstractLinearTransform.java | 17 + .../operation/transform/CartesianToPolar.java | 4 +- .../operation/transform/ConstantTransform1D.java | 11 +- .../operation/transform/ContextualParameters.java | 16 +- .../transform/EllipsoidToCentricTransform.java | 7 +- .../transform/ExponentialTransform1D.java | 4 +- .../operation/transform/IdentityTransform1D.java | 2 +- .../operation/transform/LinearTransform1D.java | 139 ++- .../operation/transform/MathTransforms.java | 16 +- .../operation/transform/PolarToCartesian.java | 4 +- .../operation/transform/ProjectiveTransform.java | 79 +- .../operation/transform/ScaleTransform.java | 118 ++- .../operation/transform/TransferFunction.java | 2 +- .../operation/transform/TranslationTransform.java | 114 +-- .../referencing/datum/DefaultEllipsoidTest.java | 22 +- .../operation/matrix/GeneralMatrixTest.java | 91 +- .../referencing/operation/matrix/MatricesTest.java | 44 +- .../referencing/operation/matrix/Matrix1Test.java | 8 +- .../referencing/operation/matrix/Matrix2Test.java | 28 +- .../referencing/operation/matrix/Matrix3Test.java | 20 +- .../referencing/operation/matrix/Matrix4Test.java | 28 +- .../operation/matrix/MatrixTestCase.java | 61 +- .../operation/matrix/NonSquareMatrixTest.java | 14 +- .../referencing/operation/matrix/SolverTest.java | 12 +- .../projection/ConformalProjectionTest.java | 5 +- .../operation/projection/InitializerTest.java | 4 +- .../projection/LambertConicConformalTest.java | 8 +- .../operation/transform/MathTransformTestCase.java | 2 + .../transform/ProjectiveTransformTest.java | 85 +- .../operation/transform/ScaleTransformTest.java | 35 +- .../transform/TransformResultComparator.java | 46 +- .../transform/TranslationTransformTest.java | 65 +- .../org/apache/sis/internal/util/DoubleDouble.java | 977 ++++++++------------- .../org/apache/sis/internal/util/Numerics.java | 29 +- .../main/java/org/apache/sis/math/Fraction.java | 97 +- .../src/main/java/org/apache/sis/math/Line.java | 66 +- .../java/org/apache/sis/math/MathFunctions.java | 17 +- .../src/main/java/org/apache/sis/math/Plane.java | 95 +- .../main/java/org/apache/sis/math/Statistics.java | 16 +- .../org/apache/sis/measure/LinearConverter.java | 7 +- .../src/main/java/org/apache/sis/util/Numbers.java | 90 +- .../apache/sis/internal/util/DoubleDoubleTest.java | 143 +-- .../test/java/org/apache/sis/util/NumbersTest.java | 16 +- .../sis/storage/geotiff/GridGeometryBuilder.java | 11 +- .../apache/sis/storage/aggregate/GridSlice.java | 5 +- 91 files changed, 2579 insertions(+), 2872 deletions(-) create mode 100644 core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/Arithmetic.java