update Apache commons math to version 4.0-SNAPSHOT from 3.6.1

This commit is contained in:
wyq 2022-08-02 11:57:01 +08:00
parent 09ac878bcc
commit c3a1719730
74 changed files with 4548 additions and 393 deletions

View File

@ -1,16 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="sonatype-nexus-snapshots" />
<option name="name" value="Sonatype Nexus Snapshots" />
<option name="url" value="https://oss.sonatype.org/content/repositories/snapshots" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="apache.snapshots" />
<option name="name" value="Apache Development Snapshot Repository" />
<option name="url" value="https://repository.apache.org/content/repositories/snapshots/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central" />
<option name="url" value="https://repo1.maven.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="apache.snapshots" />
<option name="name" value="Apache Development Snapshot Repository" />
<option name="url" value="https://repository.apache.org" />
</remote-repository>
<remote-repository>
<option name="id" value="boundless" />
<option name="name" value="boundlessgeo" />
<option name="url" value="http://repo.boundlessgeo.com/main/" />
</remote-repository>
<remote-repository>
<option name="id" value="sonatype-nexus-snapshots" />
<option name="name" value="Sonatype Nexus Snapshots" />
<option name="url" value="https://oss.sonatype.org/content/repositories/snapshots" />
</remote-repository>
<remote-repository>
<option name="id" value="freehep" />
<option name="name" value="freehep" />
@ -26,16 +51,6 @@
<option name="name" value="ebiRepo" />
<option name="url" value="http://www.ebi.ac.uk/intact/maven/nexus/content/repositories/ebi-repo/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central" />
<option name="url" value="https://repo1.maven.org/maven2/" />
</remote-repository>
<remote-repository>
<option name="id" value="jzy3d-snapshots" />
<option name="name" value="Jzy3d Snapshots" />
@ -47,9 +62,9 @@
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="boundless" />
<option name="name" value="boundlessgeo" />
<option name="url" value="http://repo.boundlessgeo.com/main/" />
<option name="id" value="apache" />
<option name="name" value="apache_snapshots" />
<option name="url" value="http://repository.apache.org/snapshots" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math4-core/4.0-SNAPSHOT/commons-math4-core-4.0-20220708.161800-308.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math4-core/4.0-SNAPSHOT/commons-math4-core-4.0-20220708.161800-308-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math4-core/4.0-SNAPSHOT/commons-math4-core-4.0-20220708.161800-308-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math4-legacy/4.0-SNAPSHOT/commons-math4-legacy-4.0-20220708.161800-426.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math4-legacy/4.0-SNAPSHOT/commons-math4-legacy-4.0-20220708.161800-426-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math4-legacy/4.0-SNAPSHOT/commons-math4-legacy-4.0-20220708.161800-426-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math4-legacy-core/4.0-SNAPSHOT/commons-math4-legacy-core-4.0-20220708.161800-434.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math4-legacy-core/4.0-SNAPSHOT/commons-math4-legacy-core-4.0-20220708.161800-434-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math4-legacy-core/4.0-SNAPSHOT/commons-math4-legacy-core-4.0-20220708.161800-434-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math4-legacy-exception/4.0-SNAPSHOT/commons-math4-legacy-exception-4.0-20220708.161800-444.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math4-legacy-exception/4.0-SNAPSHOT/commons-math4-legacy-exception-4.0-20220708.161800-444-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math4-legacy-exception/4.0-SNAPSHOT/commons-math4-legacy-exception-4.0-20220708.161800-444-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-angle/1.1-SNAPSHOT/commons-numbers-angle-1.1-20220708.154347-90.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-angle/1.1-SNAPSHOT/commons-numbers-angle-1.1-20220708.154347-90-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-angle/1.1-SNAPSHOT/commons-numbers-angle-1.1-20220708.154347-90-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-arrays/1.1-SNAPSHOT/commons-numbers-arrays-1.1-20220708.154347-90.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-arrays/1.1-SNAPSHOT/commons-numbers-arrays-1.1-20220708.154347-90-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-arrays/1.1-SNAPSHOT/commons-numbers-arrays-1.1-20220708.154347-90-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-combinatorics/1.1-SNAPSHOT/commons-numbers-combinatorics-1.1-20220708.154347-90.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-combinatorics/1.1-SNAPSHOT/commons-numbers-combinatorics-1.1-20220708.154347-90-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-combinatorics/1.1-SNAPSHOT/commons-numbers-combinatorics-1.1-20220708.154347-90-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-complex/1.1-SNAPSHOT/commons-numbers-complex-1.1-20220708.154347-90.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-complex/1.1-SNAPSHOT/commons-numbers-complex-1.1-20220708.154347-90-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-complex/1.1-SNAPSHOT/commons-numbers-complex-1.1-20220708.154347-90-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-core/1.1-SNAPSHOT/commons-numbers-core-1.1-20220708.154347-90.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-core/1.1-SNAPSHOT/commons-numbers-core-1.1-20220708.154347-90-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-core/1.1-SNAPSHOT/commons-numbers-core-1.1-20220708.154347-90-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-field/1.1-SNAPSHOT/commons-numbers-field-1.1-20220708.154347-89.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-field/1.1-SNAPSHOT/commons-numbers-field-1.1-20220708.154347-89-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-field/1.1-SNAPSHOT/commons-numbers-field-1.1-20220708.154347-89-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-fraction/1.1-SNAPSHOT/commons-numbers-fraction-1.1-20220708.154347-90.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-fraction/1.1-SNAPSHOT/commons-numbers-fraction-1.1-20220708.154347-90-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-fraction/1.1-SNAPSHOT/commons-numbers-fraction-1.1-20220708.154347-90-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-gamma/1.1-SNAPSHOT/commons-numbers-gamma-1.1-20220708.154347-90.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-gamma/1.1-SNAPSHOT/commons-numbers-gamma-1.1-20220708.154347-90-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-gamma/1.1-SNAPSHOT/commons-numbers-gamma-1.1-20220708.154347-90-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-quaternion/1.1-SNAPSHOT/commons-numbers-quaternion-1.1-20220708.154347-90.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-quaternion/1.1-SNAPSHOT/commons-numbers-quaternion-1.1-20220708.154347-90-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-quaternion/1.1-SNAPSHOT/commons-numbers-quaternion-1.1-20220708.154347-90-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-rootfinder/1.1-SNAPSHOT/commons-numbers-rootfinder-1.1-20220708.154347-89.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-rootfinder/1.1-SNAPSHOT/commons-numbers-rootfinder-1.1-20220708.154347-89-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-numbers-rootfinder/1.1-SNAPSHOT/commons-numbers-rootfinder-1.1-20220708.154347-89-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-rng-client-api:1.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-rng-client-api/1.4/commons-rng-client-api-1.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-rng-client-api/1.4/commons-rng-client-api-1.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-rng-client-api/1.4/commons-rng-client-api-1.4-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -1,13 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-math3:3.6.1">
<library name="Maven: org.apache.commons:commons-rng-core:1.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-rng-core/1.4/commons-rng-core-1.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-rng-core/1.4/commons-rng-core-1.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-rng-core/1.4/commons-rng-core-1.4-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-rng-sampling:1.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-rng-sampling/1.4/commons-rng-sampling-1.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-rng-sampling/1.4/commons-rng-sampling-1.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-rng-sampling/1.4/commons-rng-sampling-1.4-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-rng-simple:1.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-rng-simple/1.4/commons-rng-simple-1.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-rng-simple/1.4/commons-rng-simple-1.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-rng-simple/1.4/commons-rng-simple-1.4-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-statistics-distribution/1.0-SNAPSHOT/commons-statistics-distribution-1.0-20220708.160051-246.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-statistics-distribution/1.0-SNAPSHOT/commons-statistics-distribution-1.0-20220708.160051-246-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-statistics-distribution/1.0-SNAPSHOT/commons-statistics-distribution-1.0-20220708.160051-246-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -15,7 +15,25 @@
<orderEntry type="module" module-name="meteoinfo-geo" />
<orderEntry type="module" module-name="meteoinfo-math" />
<orderEntry type="module" module-name="meteoinfo-ndarray" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
<orderEntry type="library" name="Maven: org.ejml:ejml-experimental:0.40" level="project" />
<orderEntry type="library" name="Maven: org.ejml:ejml-core:0.40" level="project" />

View File

@ -79,7 +79,7 @@ public class GraphicFactory {
while (xIter.hasNext()) {
x = xIter.getDoubleNext();
y = yIter.getDoubleNext();
if (Double.isNaN(y) || Double.isNaN(x)) {
if (Double.isNaN(y) || Double.isNaN(x) || Double.isInfinite(y) || Double.isInfinite(x)) {
if (points.isEmpty()) {
continue;
}
@ -126,7 +126,7 @@ public class GraphicFactory {
while (xIter.hasNext()) {
x = xIter.getDoubleNext();
y = yIter.getDoubleNext();
if (Double.isNaN(y) || Double.isNaN(x)) {
if (Double.isNaN(y) || Double.isNaN(x) || Double.isInfinite(y) || Double.isInfinite(x)) {
if (points.isEmpty()) {
continue;
}

View File

@ -23,7 +23,25 @@
<orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.8.0" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.5.1" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
</component>
</module>

View File

@ -21,7 +21,25 @@
<orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.8.0" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.5.1" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
<orderEntry type="module" module-name="meteoinfo-projection" />
<orderEntry type="module" module-name="meteoinfo-geometry" />

View File

@ -20,7 +20,25 @@
<orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.8.0" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.5.1" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
<orderEntry type="library" name="Maven: com.github.albfernandez:juniversalchardet:2.4.0" level="project" />
</component>

View File

@ -17,10 +17,10 @@
*/
package org.meteoinfo.dataframe.impl;
import org.apache.commons.math3.stat.descriptive.StatisticalSummary;
import org.apache.commons.math3.stat.descriptive.StorelessUnivariateStatistic;
import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
import org.apache.commons.math3.stat.descriptive.UnivariateStatistic;
import org.apache.commons.math4.legacy.stat.descriptive.StatisticalSummary;
import org.apache.commons.math4.legacy.stat.descriptive.StorelessUnivariateStatistic;
import org.apache.commons.math4.legacy.stat.descriptive.SummaryStatistics;
import org.apache.commons.math4.legacy.stat.descriptive.UnivariateStatistic;
import org.meteoinfo.dataframe.Column;
import org.meteoinfo.dataframe.DataFrame;
import org.meteoinfo.ndarray.DataType;
@ -131,7 +131,7 @@ public class Aggregation {
extends AbstractStorelessStatistic<V> {
public Sum() {
super(new org.apache.commons.math3.stat.descriptive.summary.Sum());
super(new org.apache.commons.math4.legacy.stat.descriptive.summary.Sum());
}
}
@ -139,7 +139,7 @@ public class Aggregation {
extends AbstractStorelessStatistic<V> {
public Product() {
super(new org.apache.commons.math3.stat.descriptive.summary.Product());
super(new org.apache.commons.math4.legacy.stat.descriptive.summary.Product());
}
}
@ -147,7 +147,7 @@ public class Aggregation {
extends AbstractStorelessStatistic<V> {
public Mean() {
super(new org.apache.commons.math3.stat.descriptive.moment.Mean());
super(new org.apache.commons.math4.legacy.stat.descriptive.moment.Mean());
}
}
@ -155,7 +155,7 @@ public class Aggregation {
extends AbstractStorelessStatistic<V> {
public StdDev() {
super(new org.apache.commons.math3.stat.descriptive.moment.StandardDeviation());
super(new org.apache.commons.math4.legacy.stat.descriptive.moment.StandardDeviation());
}
}
@ -163,7 +163,7 @@ public class Aggregation {
extends AbstractStorelessStatistic<V> {
public Variance() {
super(new org.apache.commons.math3.stat.descriptive.moment.Variance());
super(new org.apache.commons.math4.legacy.stat.descriptive.moment.Variance());
}
}
@ -171,7 +171,7 @@ public class Aggregation {
extends AbstractStorelessStatistic<V> {
public Skew() {
super(new org.apache.commons.math3.stat.descriptive.moment.Skewness());
super(new org.apache.commons.math4.legacy.stat.descriptive.moment.Skewness());
}
}
@ -179,7 +179,7 @@ public class Aggregation {
extends AbstractStorelessStatistic<V> {
public Kurtosis() {
super(new org.apache.commons.math3.stat.descriptive.moment.Kurtosis());
super(new org.apache.commons.math4.legacy.stat.descriptive.moment.Kurtosis());
}
}
@ -187,7 +187,7 @@ public class Aggregation {
extends AbstractStorelessStatistic<V> {
public Min() {
super(new org.apache.commons.math3.stat.descriptive.rank.Min());
super(new org.apache.commons.math4.legacy.stat.descriptive.rank.Min());
}
}
@ -195,7 +195,7 @@ public class Aggregation {
extends AbstractStorelessStatistic<V> {
public Max() {
super(new org.apache.commons.math3.stat.descriptive.rank.Max());
super(new org.apache.commons.math4.legacy.stat.descriptive.rank.Max());
}
}
@ -226,7 +226,7 @@ public class Aggregation {
extends AbstractStatistic<V> {
public Median() {
super(new org.apache.commons.math3.stat.descriptive.rank.Median());
super(new org.apache.commons.math4.legacy.stat.descriptive.rank.Median());
}
}
@ -234,7 +234,7 @@ public class Aggregation {
extends AbstractStatistic<V> {
public Percentile(final double quantile) {
super(new org.apache.commons.math3.stat.descriptive.rank.Percentile(quantile));
super(new org.apache.commons.math4.legacy.stat.descriptive.rank.Percentile(quantile));
}
}

View File

@ -18,7 +18,7 @@
package org.meteoinfo.dataframe.impl;
import org.apache.commons.math3.stat.descriptive.StorelessUnivariateStatistic;
import org.apache.commons.math4.legacy.stat.descriptive.StorelessUnivariateStatistic;
public class Transforms {
public interface CumulativeFunction<I, O>
@ -53,28 +53,28 @@ public class Transforms {
public static class CumulativeSum<V>
extends AbstractCumulativeFunction<V> {
public CumulativeSum() {
super(new org.apache.commons.math3.stat.descriptive.summary.Sum(), 0);
super(new org.apache.commons.math4.legacy.stat.descriptive.summary.Sum(), 0);
}
}
public static class CumulativeProduct<V>
extends AbstractCumulativeFunction<V> {
public CumulativeProduct() {
super(new org.apache.commons.math3.stat.descriptive.summary.Product(), 1);
super(new org.apache.commons.math4.legacy.stat.descriptive.summary.Product(), 1);
}
}
public static class CumulativeMin<V>
extends AbstractCumulativeFunction<V> {
public CumulativeMin() {
super(new org.apache.commons.math3.stat.descriptive.rank.Min(), Double.MAX_VALUE);
super(new org.apache.commons.math4.legacy.stat.descriptive.rank.Min(), Double.MAX_VALUE);
}
}
public static class CumulativeMax<V>
extends AbstractCumulativeFunction<V> {
public CumulativeMax() {
super(new org.apache.commons.math3.stat.descriptive.rank.Max(), Double.MIN_VALUE);
super(new org.apache.commons.math4.legacy.stat.descriptive.rank.Max(), Double.MIN_VALUE);
}
}
}

View File

@ -13,7 +13,25 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="meteoinfo-math" />
<orderEntry type="module" module-name="meteoinfo-ndarray" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
<orderEntry type="module" module-name="meteoinfo-common" />
<orderEntry type="library" name="Maven: com.google.guava:guava:30.1.1-jre" level="project" />

View File

@ -20,7 +20,25 @@
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.5.1" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="module" module-name="meteoinfo-ndarray" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
<orderEntry type="module" module-name="meteoinfo-ui" />
<orderEntry type="library" name="Maven: com.toedter:jcalendar:1.4" level="project" />

View File

@ -13,7 +13,25 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="meteoinfo-math" />
<orderEntry type="module" module-name="meteoinfo-ndarray" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
<orderEntry type="module" module-name="meteoinfo-common" />
<orderEntry type="library" name="Maven: com.google.guava:guava:30.1.1-jre" level="project" />

View File

@ -135,7 +135,25 @@
<orderEntry type="library" name="Maven: com.fifesoft:rsyntaxtextarea:3.2.0" level="project" />
<orderEntry type="library" name="Maven: com.fifesoft:autocomplete:3.2.0" level="project" />
<orderEntry type="module" module-name="meteoinfo-ndarray" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
<orderEntry type="library" name="Maven: de.sciss:docking-frames-common:2.0.0" level="project" />
<orderEntry type="library" name="Maven: de.sciss:docking-frames-core:2.0.0" level="project" />

View File

@ -1,34 +1,32 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<MeteoInfo File="milconfig.xml" Type="configurefile">
<Path OpenPath="D:\Working\MIScript\Jython\mis\plot_types\contour">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\plot"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\no_opengl"/>
<RecentFolder Folder="D:\Temp\HYSPLIT"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\gui"/>
<RecentFolder Folder="D:\MyProgram\java\MeteoInfoDev\toolbox\meteoview3d"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\fitting"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\optimize"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\particles"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\surf"/>
<Path OpenPath="D:\Working\MIScript\Jython\mis\meteo">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\contour"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\fitting"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\interpolate"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\linalg"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\random"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\signal"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\spatial"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\special"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\stats"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\optimize"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\meteo"/>
</Path>
<File>
<OpenedFiles>
<OpenedFile File="D:\Working\MIScript\Jython\mis\LaSW\typhoon_map_slice.py"/>
<OpenedFile File="D:\MyProgram\java\MeteoInfoDev\toolbox\meteoview3d\mainGUI.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\common_math\optimize\curve_fit_2.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\contour\conout_negtive_value.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\common_math\optimize\curve_fit_1.py"/>
</OpenedFiles>
<RecentFiles>
<RecentFile File="D:\Working\MIScript\Jython\mis\LaSW\typhoon_map_slice.py"/>
<RecentFile File="D:\MyProgram\java\MeteoInfoDev\toolbox\meteoview3d\mainGUI.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\common_math\optimize\curve_fit_2.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\contour\conout_negtive_value.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\common_math\optimize\curve_fit_1.py"/>
</RecentFiles>
</File>
<Font>
@ -36,5 +34,5 @@
</Font>
<LookFeel DockWindowDecorated="true" LafDecorated="true" Name="FlatDarkLaf"/>
<Figure DoubleBuffering="true"/>
<Startup MainFormLocation="-7,-7" MainFormSize="1293,685"/>
<Startup MainFormLocation="-7,0" MainFormSize="1434,795"/>
</MeteoInfo>

View File

@ -1,9 +1,10 @@
from org.apache.commons.math3.analysis import UnivariateFunction
from org.apache.commons.math4.legacy.analysis import UnivariateFunction
from org.apache.commons.math4.legacy.fitting.leastsquares import LeastSquaresBuilder, LevenbergMarquardtOptimizer
from org.meteoinfo.math.optimize import OptimizeUtil
from org.apache.commons.math3.fitting.leastsquares import LeastSquaresBuilder, LevenbergMarquardtOptimizer
#import mipylib.numeric as np
# import mipylib.numeric as np
from ...core import numeric as np
from .common import in_bounds
def prepare_bounds(bounds, n):
lb, ub = [np.asarray(b, dtype='float') for b in bounds]

View File

@ -1,10 +1,7 @@
#from org.apache.commons.math3.analysis import UnivariateFunction
from org.meteoinfo.math.optimize import OptimizeUtil, ParamUnivariateFunction
from org.apache.commons.math3.fitting.leastsquares import LeastSquaresBuilder, LevenbergMarquardtOptimizer
import warnings
from ..core import numeric as np
from ._lsq.least_squares import prepare_bounds
from ..linalg import cholesky, solve_triangular, svd
from ..lib._util import _lazywhere

View File

@ -8,16 +8,16 @@
from org.meteoinfo.math.random import RandomUtil
from org.meteoinfo.math.distribution import DistributionUtil
from org.apache.commons.math3.distribution import NormalDistribution, BetaDistribution, \
from org.apache.commons.statistics.distribution import NormalDistribution, BetaDistribution, \
BinomialDistribution, ChiSquaredDistribution, ExponentialDistribution, FDistribution, \
GammaDistribution, GumbelDistribution, LaplaceDistribution, LogisticDistribution, \
LogNormalDistribution, ParetoDistribution, TDistribution, TriangularDistribution, \
UniformRealDistribution, WeibullDistribution
UniformContinuousDistribution, WeibullDistribution
from ..core import NDArray
__all__ = [
'beta','binomial','chisquare','exponential','f','gamma','gumbel','laplace','logistic',
'chisquare','exponential','f','gamma','gumbel','laplace','logistic',
'lognormal','normal','rand','randn','randint','random','pareto','poisson','seed','standard_t',
'triangular','uniform','weibull'
]
@ -144,7 +144,7 @@ def normal(loc=0.0, scale=1.0, size=None):
:param size: (*int*) Output shape. If size is None (default), a single value is returned.
"""
dist = NormalDistribution(loc, scale)
dist = NormalDistribution.of(loc, scale)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -159,7 +159,7 @@ def chisquare(df, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized chisquare distribution.
"""
dist = ChiSquaredDistribution(df)
dist = ChiSquaredDistribution.of(df)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -174,7 +174,7 @@ def exponential(scale=1.0, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized exponential distribution.
"""
dist = ExponentialDistribution(scale)
dist = ExponentialDistribution.of(scale)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -190,7 +190,7 @@ def f(dfnum, dfden, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized Fisher distribution.
"""
dist = FDistribution(dfnum, dfden)
dist = FDistribution.of(dfnum, dfden)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -206,7 +206,7 @@ def gamma(shape, scale=1.0, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized Gamma distribution.
"""
dist = GammaDistribution(shape, scale)
dist = GammaDistribution.of(shape, scale)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -222,7 +222,7 @@ def gumbel(loc=0.0, scale=1.0, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized Gumbel distribution.
"""
dist = GumbelDistribution(loc, scale)
dist = GumbelDistribution.of(loc, scale)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -238,7 +238,7 @@ def laplace(loc=0.0, scale=1.0, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized Laplace distribution.
"""
dist = LaplaceDistribution(loc, scale)
dist = LaplaceDistribution.of(loc, scale)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -254,7 +254,7 @@ def logistic(loc=0.0, scale=1.0, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized Logistic distribution.
"""
dist = LogisticDistribution(loc, scale)
dist = LogisticDistribution.of(loc, scale)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -270,7 +270,7 @@ def lognormal(mean=0.0, sigma=1.0, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized log-normal distribution.
"""
dist = LogNormalDistribution(loc, scale)
dist = LogNormalDistribution.of(loc, scale)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -285,7 +285,7 @@ def pareto(a, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized Pareto distribution.
"""
dist = ParetoDistribution(1, a)
dist = ParetoDistribution.of(1, a)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -300,7 +300,7 @@ def standard_t(df, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized Students t distribution.
"""
dist = TDistribution(df)
dist = TDistribution.of(df)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -318,7 +318,7 @@ def triangular(left, mode, right, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized triangular distribution.
"""
dist = TriangularDistribution(left, mode, right)
dist = TriangularDistribution.of(left, mode, right)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -336,7 +336,7 @@ def uniform(low=0.0, high=1.0, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized uniform distribution.
"""
dist = UniformRealDistribution(low, high)
dist = UniformContinuousDistribution.of(low, high)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)
@ -351,7 +351,7 @@ def weibull(a, size=None):
:returns: (*ndarray or scalar*) Drawn samples from the parameterized Weibull distribution.
"""
dist = WeibullDistribution(a, 1)
dist = WeibullDistribution.of(a, 1)
if size is None:
size = 1
r = DistributionUtil.rvs(dist, size)

View File

@ -1,6 +1,6 @@
from .. import core as np
from ..lib import expand_dims, r_
from ..lib import expand_dims, r_, unique
from ..lib._util import prod as _prod
from ..linalg import lstsq
@ -52,7 +52,7 @@ def detrend(data, axis=-1, type='linear', bp=0, overwrite_data=False):
else:
dshape = data.shape
N = dshape[axis]
bp = np.sort(np.unique(r_[0, bp, N]))
bp = np.sort(unique(r_[0, bp, N]))
if np.any(bp > N):
raise ValueError("Breakpoints must be less than length "
"of data along given axis.")

View File

@ -7,10 +7,10 @@
#-----------------------------------------------------
from org.meteoinfo.math.distribution import DistributionUtil
from org.apache.commons.math3.distribution import RealDistribution
from ..core import numeric as np
from ..core import NDArray
from ..core import numeric as np
class rv_continuous(object):
"""

View File

@ -6,10 +6,10 @@
# Note: Jython
#-----------------------------------------------------
from org.apache.commons.math3.distribution import NormalDistribution, BetaDistribution, CauchyDistribution, \
from org.apache.commons.statistics.distribution import NormalDistribution, BetaDistribution, CauchyDistribution, \
ChiSquaredDistribution, ExponentialDistribution, FDistribution, GammaDistribution, GumbelDistribution, \
LaplaceDistribution, LevyDistribution, LogisticDistribution, LogNormalDistribution, NakagamiDistribution, \
ParetoDistribution, TDistribution, TriangularDistribution, UniformRealDistribution, WeibullDistribution
ParetoDistribution, TDistribution, TriangularDistribution, UniformContinuousDistribution, WeibullDistribution
from _distn_infrastructure import rv_continuous
@ -30,14 +30,14 @@ class norm_gen(rv_continuous):
:param std: (*float*) Standard deviation of the distribution.
"""
self.name = "norm"
self._dist = NormalDistribution(mean, std)
self._dist = NormalDistribution.of(mean, std)
def _create_distribution(self, *args):
"""
Create a normal distribution object.
"""
loc, scale = self._parse_args(*args)
dist = NormalDistribution(loc, scale)
dist = NormalDistribution.of(loc, scale)
return dist
norm = norm_gen()
@ -47,21 +47,21 @@ class beta_gen(rv_continuous):
A beta continuous random variable.
"""
def __init__(self, alpha=0, beta=1):
def __init__(self, alpha=0.1, beta=1):
"""
Initialize.
:param alpha: (*float*) First shape parameter (must be positive).
:param beta: (*float*) Second shape parameter (must be positive).
"""
self.name = "beta"
self._dist = BetaDistribution(alpha, beta)
self._dist = BetaDistribution.of(alpha, beta)
def _create_distribution(self, *args):
"""
Create a normal distribution object.
"""
loc, scale = self._parse_args(*args)
dist = BetaDistribution(loc, scale)
dist = BetaDistribution.of(loc, scale)
return dist
beta = beta_gen()
@ -78,14 +78,14 @@ class cauchy_gen(rv_continuous):
:param scale: (*float*) Scale parameter of the distribution.
"""
self.name = "cauchy"
self._dist = CauchyDistribution(median, scale)
self._dist = CauchyDistribution.of(median, scale)
def _create_distribution(self, *args):
"""
Create a cauchy distribution object.
"""
loc, scale = self._parse_args(*args)
dist = CauchyDistribution(loc, scale)
dist = CauchyDistribution.of(loc, scale)
return dist
cauchy = cauchy_gen()
@ -101,14 +101,14 @@ class chi2_gen(rv_continuous):
:param dof: (*float*) Degree of freedom.
"""
self.name = "chi2"
self._dist = ChiSquaredDistribution(dof)
self._dist = ChiSquaredDistribution.of(dof)
def _create_distribution(self, *args):
"""
Create a chi squared distribution object.
"""
dof = self._parse_args(*args)[0]
dist = ChiSquaredDistribution(dof)
dist = ChiSquaredDistribution.of(dof)
return dist
chi2 = chi2_gen()
@ -124,14 +124,14 @@ class expon_gen(rv_continuous):
:param mean: (*float*) Mean of the distribution.
"""
self.name = "expon"
self._dist = ExponentialDistribution(mean)
self._dist = ExponentialDistribution.of(mean)
def _create_distribution(self, *args):
"""
Create a exponential distribution object.
"""
mean = self._parse_args(*args)[0]
dist = ExponentialDistribution(mean)
dist = ExponentialDistribution.of(mean)
return dist
expon = expon_gen()
@ -148,14 +148,14 @@ class f_gen(rv_continuous):
:param ddof: (*float*) Denominator degrees of freedom.
"""
self.name = "f"
self._dist = FDistribution(ndof, ddof)
self._dist = FDistribution.of(ndof, ddof)
def _create_distribution(self, *args):
"""
Create a F distribution object.
"""
loc, scale = self._parse_args(*args)
dist = FDistribution(loc, scale)
dist = FDistribution.of(loc, scale)
return dist
f = f_gen()
@ -172,14 +172,14 @@ class gamma_gen(rv_continuous):
:param scale: (*float*) The scale parameter.
"""
self.name = "gamma"
self._dist = GammaDistribution(shape, scale)
self._dist = GammaDistribution.of(shape, scale)
def _create_distribution(self, *args):
"""
Create a gamma distribution object.
"""
loc, scale = self._parse_args(*args)
dist = GammaDistribution(loc, scale)
dist = GammaDistribution.of(loc, scale)
return dist
gamma = gamma_gen()
@ -196,14 +196,14 @@ class gumbel_gen(rv_continuous):
:param scale: (*float*) The scale parameter.
"""
self.name = "gumbel"
self._dist = GumbelDistribution(loc, scale)
self._dist = GumbelDistribution.of(loc, scale)
def _create_distribution(self, *args):
"""
Create a gumbel distribution object.
"""
loc, scale = self._parse_args(*args)
dist = GumbelDistribution(loc, scale)
dist = GumbelDistribution.of(loc, scale)
return dist
gumbel = gumbel_gen()
@ -220,14 +220,14 @@ class laplace_gen(rv_continuous):
:param scale: (*float*) The scale parameter.
"""
self.name = "laplace"
self._dist = LaplaceDistribution(loc, scale)
self._dist = LaplaceDistribution.of(loc, scale)
def _create_distribution(self, *args):
"""
Create a Laplace distribution object.
"""
loc, scale = self._parse_args(*args)
dist = LaplaceDistribution(loc, scale)
dist = LaplaceDistribution.of(loc, scale)
return dist
laplace = laplace_gen()
@ -244,14 +244,14 @@ class levy_gen(rv_continuous):
:param scale: (*float*) The scale parameter.
"""
self.name = "levy"
self._dist = LevyDistribution(loc, scale)
self._dist = LevyDistribution.of(loc, scale)
def _create_distribution(self, *args):
"""
Create a Levy distribution object.
"""
loc, scale = self._parse_args(*args)
dist = LevyDistribution(loc, scale)
dist = LevyDistribution.of(loc, scale)
return dist
levy = levy_gen()
@ -268,14 +268,14 @@ class logistic_gen(rv_continuous):
:param scale: (*float*) The scale parameter.
"""
self.name = "logistic"
self._dist = LogisticDistribution(loc, scale)
self._dist = LogisticDistribution.of(loc, scale)
def _create_distribution(self, *args):
"""
Create a logistic distribution object.
"""
loc, scale = self._parse_args(*args)
dist = LogisticDistribution(loc, scale)
dist = LogisticDistribution.of(loc, scale)
return dist
logistic = logistic_gen()
@ -292,14 +292,14 @@ class lognorm_gen(rv_continuous):
:param shape: (*float*) The shape parameter.
"""
self.name = "lognorm"
self._dist = LevyDistribution(scale, shape)
self._dist = LevyDistribution.of(scale, shape)
def _create_distribution(self, *args):
"""
Create a Log-normal distribution object.
"""
scale, shape = self._parse_args(*args)
dist = LogNormalDistribution(scale, shape)
dist = LogNormalDistribution.of(scale, shape)
return dist
lognorm = lognorm_gen()
@ -316,14 +316,14 @@ class nakagami_gen(rv_continuous):
:param scale: (*float*) The scale parameter.
"""
self.name = "nakagami"
self._dist = NakagamiDistribution(loc, scale)
self._dist = NakagamiDistribution.of(loc, scale)
def _create_distribution(self, *args):
"""
Create a Nakagami distribution object.
"""
shape, scale = self._parse_args(*args)
dist = NakagamiDistribution(shape, scale)
dist = NakagamiDistribution.of(shape, scale)
return dist
nakagami = nakagami_gen()
@ -340,14 +340,14 @@ class pareto_gen(rv_continuous):
:param shape: (*float*) The scale parameter.
"""
self.name = "pareto"
self._dist = ParetoDistribution(scale, shape)
self._dist = ParetoDistribution.of(scale, shape)
def _create_distribution(self, *args):
"""
Create a Pareto distribution object.
"""
scale, shape = self._parse_args(*args)
dist = ParetoDistribution(scale, shape)
dist = ParetoDistribution.of(scale, shape)
return dist
pareto = pareto_gen()
@ -363,14 +363,14 @@ class t_gen(rv_continuous):
:param dof: (*float*) Degree of freedom.
"""
self.name = "t"
self._dist = TDistribution(dof)
self._dist = TDistribution.of(dof)
def _create_distribution(self, *args):
"""
Create a Student's t-distribution object.
"""
dof = self._parse_args(*args)[0]
dist = TDistribution(dof)
dist = TDistribution.of(dof)
return dist
t = t_gen()
@ -388,7 +388,7 @@ class triang_gen(rv_continuous):
:param c: (*float*) Mode of this distribution.
"""
self.name = "triang"
self._dist = TriangularDistribution(a, c, b)
self._dist = TriangularDistribution.of(a, c, b)
def _create_distribution(self, *args):
"""
@ -403,7 +403,7 @@ class triang_gen(rv_continuous):
a = r[0]
c = r[2]
b = a + r[1] * c
dist = TriangularDistribution(a, c, b)
dist = TriangularDistribution.of(a, c, b)
return dist
triang = triang_gen()
@ -420,14 +420,14 @@ class uniform_gen(rv_continuous):
:param b: (*float*) Upper limit of this distribution (exclusive).
"""
self.name = "uniform"
self._dist = UniformRealDistribution(a, b)
self._dist = UniformContinuousDistribution.of(a, b)
def _create_distribution(self, *args):
"""
Create a Uniform distribution object.
"""
scale, shape = self._parse_args(*args)
dist = UniformRealDistribution(scale, shape)
dist = UniformContinuousDistribution.of(scale, shape)
return dist
uniform = uniform_gen()
@ -444,14 +444,14 @@ class weibull_gen(rv_continuous):
:param scale: (*float*) Upper limit of this distribution (inclusive).
"""
self.name = "weibull"
self._dist = WeibullDistribution(shape, scale)
self._dist = WeibullDistribution.of(shape, scale)
def _create_distribution(self, *args):
"""
Create a Weibull distribution object.
"""
shape, scale = self._parse_args(*args)
dist = WeibullDistribution(shape, scale)
dist = WeibullDistribution.of(shape, scale)
return dist
weibull = weibull_gen()

View File

@ -126,7 +126,25 @@
<orderEntry type="library" name="Maven: com.fifesoft:rsyntaxtextarea:3.2.0" level="project" />
<orderEntry type="library" name="Maven: com.fifesoft:autocomplete:3.2.0" level="project" />
<orderEntry type="module" module-name="meteoinfo-ndarray" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
</component>
</module>

View File

@ -12,7 +12,25 @@
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="meteoinfo-ndarray" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
<orderEntry type="module" module-name="meteoinfo-common" />
<orderEntry type="library" name="Maven: com.google.guava:guava:30.1.1-jre" level="project" />

View File

@ -5,10 +5,12 @@
*/
package org.meteoinfo.math.distribution;
import org.apache.commons.math3.distribution.MultivariateNormalDistribution;
import org.apache.commons.math3.distribution.MultivariateRealDistribution;
import org.apache.commons.math3.distribution.NormalDistribution;
import org.apache.commons.math3.distribution.RealDistribution;
import org.apache.commons.math4.legacy.distribution.MultivariateNormalDistribution;
import org.apache.commons.math4.legacy.distribution.MultivariateRealDistribution;
import org.apache.commons.rng.UniformRandomProvider;
import org.apache.commons.rng.simple.RandomSource;
import org.apache.commons.statistics.distribution.NormalDistribution;
import org.apache.commons.statistics.distribution.ContinuousDistribution;
import org.meteoinfo.ndarray.Array;
import org.meteoinfo.ndarray.DataType;
import org.meteoinfo.ndarray.IndexIterator;
@ -43,8 +45,12 @@ public class DistributionUtil {
* @param n Size.
* @return Result array.
*/
public static Array rvs(RealDistribution dis, int n){
double[] samples = dis.sample(n);
public static Array rvs(ContinuousDistribution dis, int n){
ContinuousDistribution.Sampler sampler = dis.createSampler(RandomSource.MT.create());
double[] samples = new double[n];
for (int i = 0; i < n; i++) {
samples[i] = sampler.sample();
}
Array r = Array.factory(DataType.DOUBLE, new int[]{n}, samples);
return r;
}
@ -55,10 +61,14 @@ public class DistributionUtil {
* @param n Size.
* @return Result array.
*/
public static Array rvs(MultivariateRealDistribution dis, int n){
double[][] samples = dis.sample(n);
double[] s = Arrays.stream(samples).flatMapToDouble(x -> Arrays.stream(x)).toArray();
public static Array rvs(MultivariateRealDistribution dis, int n) {
MultivariateRealDistribution.Sampler sampler = dis.createSampler(RandomSource.MT.create());
int dim = dis.getDimension();
double[][] samples = new double[n][dim];
for (int i = 0; i < n; i++) {
samples[i] = sampler.sample();
}
double[] s = Arrays.stream(samples).flatMapToDouble(x -> Arrays.stream(x)).toArray();
Array r = Array.factory(DataType.DOUBLE, new int[]{n, dim}, s);
return r;
}
@ -69,7 +79,7 @@ public class DistributionUtil {
* @param x X.
* @return Probability density value.
*/
public static double pdf(RealDistribution dis, Number x){
public static double pdf(ContinuousDistribution dis, Number x){
return dis.density(x.doubleValue());
}
@ -79,7 +89,7 @@ public class DistributionUtil {
* @param x X array.
* @return Probability density array.
*/
public static Array pdf(RealDistribution dis, Array x){
public static Array pdf(ContinuousDistribution dis, Array x){
Array r = Array.factory(DataType.DOUBLE, x.getShape());
IndexIterator iter = x.getIndexIterator();
for (int i = 0; i < r.getSize(); i++){
@ -121,7 +131,7 @@ public class DistributionUtil {
* @param x X.
* @return Cumulative distribution value.
*/
public static double cdf(RealDistribution dis, Number x){
public static double cdf(ContinuousDistribution dis, Number x){
return dis.cumulativeProbability(x.doubleValue());
}
@ -131,7 +141,7 @@ public class DistributionUtil {
* @param x X array.
* @return Result array.
*/
public static Array cdf(RealDistribution dis, Array x){
public static Array cdf(ContinuousDistribution dis, Array x){
Array r = Array.factory(DataType.DOUBLE, x.getShape());
IndexIterator iter = x.getIndexIterator();
for (int i = 0; i < r.getSize(); i++){
@ -147,8 +157,8 @@ public class DistributionUtil {
* @param x X.
* @return PMF value.
*/
public static double pmf(RealDistribution dis, Number x){
return dis.probability(x.doubleValue());
public static double pmf(ContinuousDistribution dis, Number x){
return dis.probability(x.doubleValue(), x.doubleValue());
}
/**
@ -157,11 +167,13 @@ public class DistributionUtil {
* @param x X array.
* @return Result array.
*/
public static Array pmf(RealDistribution dis, Array x){
public static Array pmf(ContinuousDistribution dis, Array x){
Array r = Array.factory(DataType.DOUBLE, x.getShape());
IndexIterator iter = x.getIndexIterator();
double v;
for (int i = 0; i < r.getSize(); i++){
r.setDouble(i, dis.probability(iter.getDoubleNext()));
v = iter.getDoubleNext();
r.setDouble(i, dis.probability(v, v));
}
return r;
@ -173,7 +185,7 @@ public class DistributionUtil {
* @param q Lower tail probability
* @return PMF value.
*/
public static double ppf(RealDistribution dis, Number q){
public static double ppf(ContinuousDistribution dis, Number q){
return dis.inverseCumulativeProbability(q.doubleValue());
}
@ -183,7 +195,7 @@ public class DistributionUtil {
* @param q Q array.
* @return Result array.
*/
public static Array ppf(RealDistribution dis, Array q){
public static Array ppf(ContinuousDistribution dis, Array q){
Array r = Array.factory(DataType.DOUBLE, q.getShape());
IndexIterator iter = q.getIndexIterator();
for (int i = 0; i < r.getSize(); i++){

View File

@ -5,9 +5,9 @@
*/
package org.meteoinfo.math.fitting;
import org.apache.commons.math3.linear.MatrixUtils;
import org.apache.commons.math3.linear.RealMatrix;
import org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression;
import org.apache.commons.math4.legacy.linear.MatrixUtils;
import org.apache.commons.math4.legacy.linear.RealMatrix;
import org.apache.commons.math4.legacy.stat.regression.OLSMultipleLinearRegression;
import org.meteoinfo.ndarray.Array;
/**

View File

@ -5,10 +5,10 @@
*/
package org.meteoinfo.math.interpolate;
import org.apache.commons.math3.analysis.BivariateFunction;
import org.apache.commons.math3.analysis.UnivariateFunction;
import org.apache.commons.math3.analysis.interpolation.*;
import org.apache.commons.math3.analysis.polynomials.PolynomialSplineFunction;
import org.apache.commons.math4.legacy.analysis.BivariateFunction;
import org.apache.commons.math4.legacy.analysis.UnivariateFunction;
import org.apache.commons.math4.legacy.analysis.interpolation.*;
import org.apache.commons.math4.legacy.analysis.polynomials.PolynomialSplineFunction;
import org.meteoinfo.common.PointD;
import org.meteoinfo.ndarray.*;
import org.meteoinfo.ndarray.math.ArrayUtil;

View File

@ -17,7 +17,7 @@
package org.meteoinfo.math.interpolate;
import org.apache.commons.math3.linear.*;
import org.apache.commons.math4.legacy.linear.*;
import org.meteoinfo.math.interpolate.variogram.PowerVariogram;
import org.meteoinfo.math.interpolate.variogram.Variogram;

View File

@ -17,7 +17,7 @@
package org.meteoinfo.math.interpolate;
import org.apache.commons.math3.linear.*;
import org.apache.commons.math4.legacy.linear.*;
import org.meteoinfo.math.MathEx;
import org.ojalgo.matrix.Primitive64Matrix;
import org.ojalgo.matrix.decomposition.SingularValue;

View File

@ -17,7 +17,7 @@
package org.meteoinfo.math.interpolate;
import org.apache.commons.math3.linear.*;
import org.apache.commons.math4.legacy.linear.*;
import org.meteoinfo.math.MathEx;
import org.ojalgo.matrix.decomposition.SingularValue;
import org.ojalgo.matrix.Primitive64Matrix;

View File

@ -5,24 +5,16 @@
*/
package org.meteoinfo.math.linalg;
import org.apache.commons.math3.fitting.leastsquares.*;
import org.apache.commons.math3.linear.*;
import org.apache.commons.math3.util.Pair;
import org.ejml.data.Complex_F64;
import org.ejml.simple.SimpleBase;
import org.ejml.simple.SimpleEVD;
import org.ejml.simple.SimpleMatrix;
import org.ejml.simple.SimpleSVD;
import org.apache.commons.math4.legacy.fitting.leastsquares.*;
import org.apache.commons.math4.legacy.linear.*;
import org.apache.commons.math4.legacy.core.Pair;
import org.meteoinfo.math.matrix.Matrix;
import org.meteoinfo.math.matrix.MatrixUtil;
import org.meteoinfo.ndarray.math.ArrayUtil;
import org.meteoinfo.ndarray.Array;
import org.meteoinfo.ndarray.Complex;
import org.meteoinfo.ndarray.DataType;
import smile.math.blas.UPLO;
import java.util.List;
/**
*
* @author Yaqiang Wang

View File

@ -5,9 +5,9 @@
*/
package org.meteoinfo.math.linalg;
import org.apache.commons.math3.fitting.leastsquares.*;
import org.apache.commons.math3.linear.*;
import org.apache.commons.math3.util.Pair;
import org.apache.commons.math4.legacy.fitting.leastsquares.*;
import org.apache.commons.math4.legacy.linear.*;
import org.apache.commons.math4.legacy.core.Pair;
import org.ejml.data.Complex_F64;
import org.ejml.simple.SimpleBase;
import org.ejml.simple.SimpleEVD;

View File

@ -1,6 +1,6 @@
package org.meteoinfo.math.matrix;
import org.apache.commons.math3.util.FastMath;
import org.apache.commons.math4.core.jdkmath.AccurateMath;
import org.meteoinfo.ndarray.Array;
import org.meteoinfo.ndarray.Complex;
import org.meteoinfo.ndarray.DataType;
@ -156,8 +156,8 @@ public class MatrixUtil {
for (int j = i + 1; j < rows; j++) {
final double mij = matrix.get(i, j);
final double mji = matrix.get(j, i);
if (FastMath.abs(mij - mji) >
FastMath.max(FastMath.abs(mij), FastMath.abs(mji)) * relativeTolerance) {
if (AccurateMath.abs(mij - mji) >
AccurateMath.max(AccurateMath.abs(mij), AccurateMath.abs(mji)) * relativeTolerance) {
return false;
}
}

View File

@ -970,7 +970,7 @@ public class MeteoMath {
if (Double.isNaN(a) || Double.isNaN(b)) {
r.setDouble(indexr, Double.NaN);
} else {
r.setDouble(indexr, a - b);
r.setDouble(indexr, b - a);
}
}
indexr.incr();

View File

@ -1,9 +1,9 @@
package org.meteoinfo.math.optimize;
import org.apache.commons.math3.analysis.ParametricUnivariateFunction;
import org.apache.commons.math3.analysis.differentiation.DerivativeStructure;
import org.apache.commons.math3.analysis.differentiation.FiniteDifferencesDifferentiator;
import org.apache.commons.math3.analysis.differentiation.UnivariateDifferentiableFunction;
import org.apache.commons.math4.legacy.analysis.ParametricUnivariateFunction;
import org.apache.commons.math4.legacy.analysis.differentiation.DerivativeStructure;
import org.apache.commons.math4.legacy.analysis.differentiation.FiniteDifferencesDifferentiator;
import org.apache.commons.math4.legacy.analysis.differentiation.UnivariateDifferentiableFunction;
public class MyParametricUnivariateFunction implements ParametricUnivariateFunction {

View File

@ -1,18 +1,18 @@
package org.meteoinfo.math.optimize;
import org.apache.commons.math3.analysis.ParametricUnivariateFunction;
import org.apache.commons.math3.analysis.UnivariateFunction;
import org.apache.commons.math3.analysis.differentiation.DerivativeStructure;
import org.apache.commons.math3.analysis.differentiation.FiniteDifferencesDifferentiator;
import org.apache.commons.math3.analysis.differentiation.UnivariateDifferentiableFunction;
import org.apache.commons.math3.fitting.SimpleCurveFitter;
import org.apache.commons.math3.fitting.WeightedObservedPoints;
import org.apache.commons.math3.fitting.leastsquares.MultivariateJacobianFunction;
import org.apache.commons.math3.linear.Array2DRowRealMatrix;
import org.apache.commons.math3.linear.ArrayRealVector;
import org.apache.commons.math3.linear.RealMatrix;
import org.apache.commons.math3.linear.RealVector;
import org.apache.commons.math3.util.Pair;
import org.apache.commons.math4.legacy.analysis.ParametricUnivariateFunction;
import org.apache.commons.math4.legacy.analysis.UnivariateFunction;
import org.apache.commons.math4.legacy.analysis.differentiation.DerivativeStructure;
import org.apache.commons.math4.legacy.analysis.differentiation.FiniteDifferencesDifferentiator;
import org.apache.commons.math4.legacy.analysis.differentiation.UnivariateDifferentiableFunction;
import org.apache.commons.math4.legacy.fitting.SimpleCurveFitter;
import org.apache.commons.math4.legacy.fitting.WeightedObservedPoints;
import org.apache.commons.math4.legacy.fitting.leastsquares.MultivariateJacobianFunction;
import org.apache.commons.math4.legacy.linear.Array2DRowRealMatrix;
import org.apache.commons.math4.legacy.linear.ArrayRealVector;
import org.apache.commons.math4.legacy.linear.RealMatrix;
import org.apache.commons.math4.legacy.linear.RealVector;
import org.apache.commons.math4.legacy.core.Pair;
import org.meteoinfo.ndarray.Array;
import org.meteoinfo.ndarray.IndexIterator;

View File

@ -1,6 +1,6 @@
package org.meteoinfo.math.optimize;
import org.apache.commons.math3.analysis.UnivariateFunction;
import org.apache.commons.math4.legacy.analysis.UnivariateFunction;
import java.util.List;

View File

@ -1,6 +1,8 @@
package org.meteoinfo.math.random;
import org.apache.commons.math3.random.MersenneTwister;
import org.apache.commons.math4.core.jdkmath.AccurateMath;
import org.apache.commons.rng.core.source32.MersenneTwister;
import org.apache.commons.rng.simple.RandomSource;
import org.meteoinfo.ndarray.*;
import java.util.ArrayList;
@ -8,11 +10,14 @@ import java.util.List;
public class MTRandom extends MersenneTwister {
/** Next gaussian. */
private double nextGaussian = Double.NaN;
/**
* Constructor
*/
public MTRandom() {
super();
super(RandomSource.createIntArray(624));
}
/**
@ -20,7 +25,7 @@ public class MTRandom extends MersenneTwister {
* @param seed Seed
*/
public MTRandom(int seed) {
super(seed);
super(RandomSource.createIntArray(seed));
}
/**
@ -57,6 +62,27 @@ public class MTRandom extends MersenneTwister {
return a;
}
public double nextGaussian() {
final double random;
if (Double.isNaN(nextGaussian)) {
// generate a new pair of gaussian numbers
final double x = nextDouble();
final double y = nextDouble();
final double alpha = 2 * AccurateMath.PI * x;
final double r = Math.sqrt(-2 * AccurateMath.log(y));
random = r * AccurateMath.cos(alpha);
nextGaussian = r * AccurateMath.sin(alpha);
} else {
// use the second element of the pair already generated
random = nextGaussian;
nextGaussian = Double.NaN;
}
return random;
}
/**
* Get random value
*

View File

@ -5,7 +5,11 @@
*/
package org.meteoinfo.math.random;
import org.apache.commons.math3.random.RandomDataGenerator;
import org.apache.commons.rng.UniformRandomProvider;
import org.apache.commons.rng.simple.RandomSource;
import org.apache.commons.statistics.distribution.ContinuousDistribution;
import org.apache.commons.statistics.distribution.DiscreteDistribution;
import org.apache.commons.statistics.distribution.PoissonDistribution;
import org.meteoinfo.ndarray.Array;
import org.meteoinfo.ndarray.DataType;
@ -185,10 +189,15 @@ public class RandomUtil {
* @return Random value
*/
public static double poisson(double mean){
RandomDataGenerator rdg = new RandomDataGenerator();
if (useSeed)
rdg.reSeed(seed);
return rdg.nextPoisson(mean);
PoissonDistribution distribution = PoissonDistribution.of(mean);
DiscreteDistribution.Sampler sampler;
if (useSeed) {
sampler = distribution.createSampler(RandomSource.ISAAC.create(seed));
} else {
sampler = distribution.createSampler(RandomSource.MT.create());
}
return sampler.sample();
}
/**
@ -200,11 +209,15 @@ public class RandomUtil {
*/
public static Array poisson(double mean, int n) {
Array a = Array.factory(DataType.INT, new int[]{n});
RandomDataGenerator rd = new RandomDataGenerator();
if (useSeed)
rd.reSeed(seed);
PoissonDistribution distribution = PoissonDistribution.of(mean);
DiscreteDistribution.Sampler sampler;
if (useSeed) {
sampler = distribution.createSampler(RandomSource.ISAAC.create(seed));
} else {
sampler = distribution.createSampler(RandomSource.MT.create());
}
for (int i = 0; i < a.getSize(); i++) {
a.setDouble(i, rd.nextPoisson(mean));
a.setDouble(i, sampler.sample());
}
return a;
@ -223,11 +236,15 @@ public class RandomUtil {
ashape[i] = shape.get(i);
}
Array a = Array.factory(DataType.INT, ashape);
RandomDataGenerator rd = new RandomDataGenerator();
if (useSeed)
rd.reSeed(seed);
PoissonDistribution distribution = PoissonDistribution.of(mean);
DiscreteDistribution.Sampler sampler;
if (useSeed) {
sampler = distribution.createSampler(RandomSource.ISAAC.create(seed));
} else {
sampler = distribution.createSampler(RandomSource.MT.create());
}
for (int i = 0; i < a.getSize(); i++) {
a.setDouble(i, rd.nextPoisson(mean));
a.setDouble(i, sampler.sample());
}
return a;

View File

@ -1,8 +1,9 @@
package org.meteoinfo.math.special;
import org.apache.commons.math3.special.Erf;
import org.apache.commons.math3.special.Gamma;
import org.apache.commons.math3.util.CombinatoricsUtils;
import org.apache.commons.numbers.gamma.Erf;
import org.apache.commons.numbers.gamma.Gamma;
import org.apache.commons.numbers.gamma.LogGamma;
import org.apache.commons.numbers.combinatorics.Factorial;
import org.meteoinfo.ndarray.Array;
import org.meteoinfo.ndarray.DataType;
import org.meteoinfo.ndarray.IndexIterator;
@ -15,7 +16,7 @@ public class SpecialUtil {
* @return Factorial value
*/
public static long factorial(int n) {
return n >= 0 ? CombinatoricsUtils.factorial(n) : 0;
return n >= 0 ? Factorial.value(n) : 0;
}
/**
@ -40,7 +41,7 @@ public class SpecialUtil {
* @return Value of gamma function
*/
public static double gamma(double x) {
return Gamma.gamma(x);
return Gamma.value(x);
}
/**
@ -54,7 +55,7 @@ public class SpecialUtil {
IndexIterator xIter = x.getIndexIterator();
IndexIterator yIter = y.getIndexIterator();
while(xIter.hasNext()) {
yIter.setDoubleNext(Gamma.gamma(xIter.getDoubleNext()));
yIter.setDoubleNext(Gamma.value(xIter.getDoubleNext()));
}
return y;
@ -66,7 +67,7 @@ public class SpecialUtil {
* @return Value of logarithm of the gamma function
*/
public static double logGamma(double x) {
return Gamma.logGamma(x);
return LogGamma.value(x);
}
/**
@ -80,7 +81,7 @@ public class SpecialUtil {
IndexIterator xIter = x.getIndexIterator();
IndexIterator yIter = y.getIndexIterator();
while(xIter.hasNext()) {
yIter.setDoubleNext(Gamma.logGamma(xIter.getDoubleNext()));
yIter.setDoubleNext(LogGamma.value(xIter.getDoubleNext()));
}
return y;
@ -93,7 +94,7 @@ public class SpecialUtil {
* @return Error function
*/
public static double erf(double x) {
return Erf.erf(x);
return Erf.value(x);
}
/**
@ -107,7 +108,7 @@ public class SpecialUtil {
IndexIterator xIter = x.getIndexIterator();
IndexIterator rIter = r.getIndexIterator();
while(xIter.hasNext()) {
rIter.setDoubleNext(Erf.erf(xIter.getDoubleNext()));
rIter.setDoubleNext(Erf.value(xIter.getDoubleNext()));
}
return r;
@ -119,7 +120,7 @@ public class SpecialUtil {
* @return Complementary error function
*/
public static double erfc(double x) {
return Erf.erfc(x);
return Erf.value(x);
}
/**
@ -132,7 +133,7 @@ public class SpecialUtil {
IndexIterator xIter = x.getIndexIterator();
IndexIterator rIter = r.getIndexIterator();
while(xIter.hasNext()) {
rIter.setDoubleNext(Erf.erfc(xIter.getDoubleNext()));
rIter.setDoubleNext(Erf.value(xIter.getDoubleNext()));
}
return r;

View File

@ -7,15 +7,15 @@ package org.meteoinfo.math.stats;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.math3.linear.Array2DRowRealMatrix;
import org.apache.commons.math3.linear.RealMatrix;
import org.apache.commons.math3.stat.StatUtils;
import org.apache.commons.math3.stat.correlation.Covariance;
import org.apache.commons.math3.stat.correlation.KendallsCorrelation;
import org.apache.commons.math3.stat.correlation.PearsonsCorrelation;
import org.apache.commons.math3.stat.correlation.SpearmansCorrelation;
import org.apache.commons.math3.stat.inference.TestUtils;
import org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression;
import org.apache.commons.math4.legacy.linear.Array2DRowRealMatrix;
import org.apache.commons.math4.legacy.linear.RealMatrix;
import org.apache.commons.math4.legacy.stat.StatUtils;
import org.apache.commons.math4.legacy.stat.correlation.Covariance;
import org.apache.commons.math4.legacy.stat.correlation.KendallsCorrelation;
import org.apache.commons.math4.legacy.stat.correlation.PearsonsCorrelation;
import org.apache.commons.math4.legacy.stat.correlation.SpearmansCorrelation;
import org.apache.commons.math4.legacy.stat.inference.InferenceTestUtils;
import org.apache.commons.math4.legacy.stat.regression.OLSMultipleLinearRegression;
import org.meteoinfo.ndarray.math.ArrayMath;
import org.meteoinfo.ndarray.math.ArrayUtil;
import org.meteoinfo.ndarray.Array;
@ -371,6 +371,7 @@ public class StatsUtil {
public static Array[] multipleLineRegress_OLS(Array y, Array x, boolean noIntercept) {
OLSMultipleLinearRegression regression = new OLSMultipleLinearRegression();
regression.setNoIntercept(noIntercept);
y = y.reduce();
double[] yy = (double[])ArrayUtil.copyToNDJavaArray_Double(y);
double[][] xx = (double[][])ArrayUtil.copyToNDJavaArray_Double(x);
regression.newSampleData(yy, xx);
@ -458,8 +459,8 @@ public class StatsUtil {
*/
public static double[] tTest(Array a, double mu){
double[] ad = (double[]) ArrayUtil.copyToNDJavaArray_Double(a);
double s = TestUtils.t(mu, ad);
double p = TestUtils.tTest(mu, ad);
double s = InferenceTestUtils.t(mu, ad);
double p = InferenceTestUtils.tTest(mu, ad);
return new double[]{s, p};
}
@ -474,8 +475,8 @@ public class StatsUtil {
public static double[] tTest(Array a, Array b) {
double[] ad = (double[]) ArrayUtil.copyToNDJavaArray_Double(a);
double[] bd = (double[]) ArrayUtil.copyToNDJavaArray_Double(b);
double s = TestUtils.t(ad, bd);
double p = TestUtils.tTest(ad, bd);
double s = InferenceTestUtils.t(ad, bd);
double p = InferenceTestUtils.tTest(ad, bd);
return new double[]{s, p};
}
@ -492,8 +493,8 @@ public class StatsUtil {
public static double[] pairedTTest(Array a, Array b) {
double[] ad = (double[]) ArrayUtil.copyToNDJavaArray_Double(a);
double[] bd = (double[]) ArrayUtil.copyToNDJavaArray_Double(b);
double s = TestUtils.pairedT(ad, bd);
double p = TestUtils.pairedTTest(ad, bd);
double s = InferenceTestUtils.pairedT(ad, bd);
double p = InferenceTestUtils.pairedTTest(ad, bd);
return new double[]{s, p};
}
@ -508,8 +509,8 @@ public class StatsUtil {
public static double[] chiSquareTest(Array e, Array o) {
double[] ed = (double[]) ArrayUtil.copyToNDJavaArray_Double(e);
long[] od = (long[]) ArrayUtil.copyToNDJavaArray_Long(o);
double s = TestUtils.chiSquare(ed, od);
double p = TestUtils.chiSquareTest(ed, od);
double s = InferenceTestUtils.chiSquare(ed, od);
double p = InferenceTestUtils.chiSquareTest(ed, od);
return new double[]{s, p};
}
@ -522,8 +523,8 @@ public class StatsUtil {
*/
public static double[] chiSquareTest(Array o) {
long[][] od = (long[][]) ArrayUtil.copyToNDJavaArray_Long(o);
double s = TestUtils.chiSquare(od);
double p = TestUtils.chiSquareTest(od);
double s = InferenceTestUtils.chiSquare(od);
double p = InferenceTestUtils.chiSquareTest(od);
return new double[]{s, p};
}

View File

@ -2,8 +2,6 @@ package org.meteoinfo.math.stats.kde;
import java.util.List;
import org.apache.commons.math3.util.FastMath;
public class Ball
{
private static final String NAME = "Ball";

View File

@ -5,7 +5,7 @@ import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import org.apache.commons.math3.util.FastMath;
import org.apache.commons.math4.core.jdkmath.AccurateMath;
public class BallTree
{
@ -134,10 +134,10 @@ public class BallTree
double minPdf = ball.minPdf(e);
double maxPdf = ball.maxPdf(e);
if(FastMath.exp(maxPdf) - FastMath.exp(minPdf) < 0.001)
if(AccurateMath.exp(maxPdf) - AccurateMath.exp(minPdf) < 0.001)
{
// No recursion needed
logValues.add(FastMath.log(ball.numPoints) + (maxPdf + minPdf)/2);
logValues.add(AccurateMath.log(ball.numPoints) + (maxPdf + minPdf)/2);
numSkipped += ball.numPoints;
@ -186,7 +186,7 @@ public class BallTree
double expVal = ones * (invH * ones) + twos * (invH * twos);
double firstVal = -FastMath.log(2 * FastMath.PI) - FastMath.log(hMax);
double firstVal = -AccurateMath.log(2 * AccurateMath.PI) - AccurateMath.log(hMax);
double value = firstVal + -0.5 * expVal;
return value;

View File

@ -1,6 +1,6 @@
package org.meteoinfo.math.stats.kde;
import org.apache.commons.math3.util.Precision;
import org.apache.commons.numbers.core.Precision;
public class Event
{

View File

@ -3,7 +3,7 @@ package org.meteoinfo.math.stats.kde;
import java.util.List;
import java.util.Random;
import org.apache.commons.math3.util.FastMath;
import org.apache.commons.math4.core.jdkmath.AccurateMath;
import com.google.common.primitives.Doubles;
@ -21,11 +21,11 @@ public class Helpers
double sum = 0;
for(int d = 0 ; d < point1.length ; d++)
{
sum += FastMath.pow(point1[d] - point2[d], 2);
sum += AccurateMath.pow(point1[d] - point2[d], 2);
}
return FastMath.sqrt(sum);
return Math.sqrt(sum);
}
/**

View File

@ -1,7 +1,7 @@
package org.meteoinfo.math.stats.kde;
import java.util.List;
import org.apache.commons.math3.util.FastMath;
import org.apache.commons.math4.core.jdkmath.AccurateMath;
import org.meteoinfo.math.stats.kde.kdtree.KDTree;
public class KDE
@ -130,7 +130,7 @@ public class KDE
{
List<Double> logValues = ballTree.logPdfRecurse(e);
double sum = Helpers.logSumExp(logValues);
return sum - FastMath.log(numPoints);
return sum - AccurateMath.log(numPoints);
}
private static String className()

View File

@ -19,7 +19,25 @@
<orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.8.0" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.5.1" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
</component>
</module>

View File

@ -18,16 +18,74 @@
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<repositories>
<repository>
<id>apache.snapshots</id>
<name>Apache Development Snapshot Repository</name>
<url>https://repository.apache.org/content/repositories/snapshots/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>meteoinfo-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<!--<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math4-legacy</artifactId>
<version>4.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-numbers-core</artifactId>
<version>1.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-numbers-gamma</artifactId>
<version>1.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-numbers-combinatorics</artifactId>
<version>1.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-numbers-arrays</artifactId>
<version>1.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-numbers-field</artifactId>
<version>1.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-core</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-statistics-distribution</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
@ -61,6 +119,23 @@
</execution>
</executions>
</plugin>
<!--<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>-->
</plugins>
</build>

View File

@ -5,10 +5,8 @@
*/
package org.meteoinfo.ndarray.math;
import org.meteoinfo.common.util.JDateUtil;
import org.meteoinfo.ndarray.*;
import javax.xml.crypto.Data;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
@ -8709,7 +8707,7 @@ public class ArrayMath {
if (Double.isNaN(a) || Double.isNaN(b)) {
r.setDouble(indexr, Double.NaN);
} else {
r.setDouble(indexr, a - b);
r.setDouble(indexr, b - a);
}
}
indexr.incr();

View File

@ -21,7 +21,25 @@
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.5.1" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="module" module-name="meteoinfo-ndarray" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
<orderEntry type="module" module-name="meteoinfo-ui" />
<orderEntry type="library" name="Maven: com.toedter:jcalendar:1.4" level="project" />

View File

@ -20,7 +20,25 @@
<orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.8.0" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.5.1" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-complex:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-angle:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-rootfinder:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-quaternion:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-sampling:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-exception:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-legacy-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math4-core:4.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-core:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-gamma:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-fraction:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-combinatorics:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-arrays:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-numbers-field:1.1-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-core:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-simple:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-rng-client-api:1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-statistics-distribution:1.0-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.0.0" level="project" />
</component>
</module>