diff --git a/src/main/java/ch/hepia/numeric/Vector.java b/src/main/java/ch/hepia/numeric/Vector.java index b8bd8feded320f2a7044c775c7c712cb7889f9dc..41d864e24f8ff6cc39c9319b88e2b9cfe7634837 100644 --- a/src/main/java/ch/hepia/numeric/Vector.java +++ b/src/main/java/ch/hepia/numeric/Vector.java @@ -113,7 +113,7 @@ final public class Vector { } public static Vector of(List<Double> elements) { - return new Vector(elements); + return new Vector(elements); } public static Vector empty() { @@ -137,8 +137,15 @@ final public class Vector { return Vector.fill(nb,1.0); } - public static Vector linespace(double from, double to, int nb) { - throw new UnsupportedOperationException("This feature isn't implemented yet"); + public static Vector linespace(double from, double to, int nb) + { + double step=to/(nb-1); + Vector v = Vector.zeros(nb); + for(int i=0;i<nb;i++) + { + v.set(i,step*i); + } + return v; } public static Vector tabulate(int nb, Function<Integer, Double> f) { diff --git a/src/test/java/ch/hepia/numeric/AppTest.java b/src/test/java/ch/hepia/numeric/AppTest.java index d8240f9a9b360326ddc7357dcd6c9cb939d46b38..a87afff777c14c095f85026aea7e976ff58b21f0 100644 --- a/src/test/java/ch/hepia/numeric/AppTest.java +++ b/src/test/java/ch/hepia/numeric/AppTest.java @@ -34,13 +34,13 @@ class VectorTest { assertEquals(Vector.fill(3, 1.7), Vector.of(1.7, 1.7, 1.7)); //assertEquals(Vector.tabulate(4, i -> i*5.0), Vector.of(0.0, 5.0, 10.0, 15.0)); } -/* + @Test void vectorLinespace() { assertEquals(Vector.linespace(0.0, 1.0, 3), Vector.of(0.0, 0.5, 1.0)); assertEquals(Vector.linespace(0.0, 1.0, 5), Vector.of(0.0, 0.25, 0.5, 0.75, 1.0)); } -*/ + @Test void vectorNormAndSum() { assertEquals(Vector.of(1.0, 2.0, 2.0).norm(), 3.0);