diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 02efadb..4f15456 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,8 +11,8 @@ jobs: strategy: fail-fast: false matrix: - elixir: ["1.18.0"] - otp: ["27.0"] + elixir: ["1.18.4"] + otp: ["27.3"] env: MIX_ENV: test steps: @@ -35,15 +35,15 @@ jobs: - name: Check formatting run: mix format --check-formatted - name: Run tests - run: mix test + run: mix test --warnings-as-errors win: name: Windows - runs-on: windows-latest + runs-on: windows-2022 strategy: fail-fast: false matrix: - elixir: ["1.18.0"] - otp: ["27.0"] + elixir: ["1.18.4"] + otp: ["27.3"] env: MIX_ENV: test steps: @@ -70,4 +70,4 @@ jobs: - name: Check formatting run: mix format --check-formatted - name: Run tests - run: mix test + run: mix test --warnings-as-errors diff --git a/lib/nx_signal.ex b/lib/nx_signal.ex index d47b79f..ec22ed7 100644 --- a/lib/nx_signal.ex +++ b/lib/nx_signal.ex @@ -56,7 +56,7 @@ defmodule NxSignal do iex> t #Nx.Tensor< f32[frames: 3] - [0.0024999999441206455, 0.004999999888241291, 0.007499999832361937] + [0.0025, 0.005, 0.0075] > iex> f #Nx.Tensor< @@ -147,7 +147,7 @@ defmodule NxSignal do iex> NxSignal.fft_frequencies(1.6e4, fft_length: 10) #Nx.Tensor< f32[frequencies: 10] - [0.0, 1.6e3, 3.2e3, 4.8e3, 6.4e3, 8.0e3, 9.6e3, 1.12e4, 1.28e4, 1.44e4] + [0.0, 1.6e3, 3.2e3, 4.8e3, 6.4e3, 8e3, 9.6e3, 1.12e4, 1.28e4, 1.44e4] > """ @doc type: :time_frequency @@ -385,11 +385,11 @@ defmodule NxSignal do #Nx.Tensor< f32[mels: 5][frequencies: 10] [ - [0.0, 8.129207999445498e-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], - [0.0, 9.972016559913754e-4, 2.1870288765057921e-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], - [0.0, 0.0, 9.510891977697611e-4, 4.150509194005281e-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], - [0.0, 0.0, 0.0, 4.035891906823963e-4, 5.276656011119485e-4, 2.574124082457274e-4, 0.0, 0.0, 0.0, 0.0], - [0.0, 0.0, 0.0, 0.0, 7.329034269787371e-5, 2.342205698369071e-4, 3.8295105332508683e-4, 2.8712040511891246e-4, 1.9128978601656854e-4, 9.545915963826701e-5] + [0.0, 8.129208e-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 9.972017e-4, 2.1870289e-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 9.510892e-4, 4.1505092e-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 4.035892e-4, 5.276656e-4, 2.574124e-4, 0.0, 0.0, 0.0, 0.0], + [0.0, 0.0, 0.0, 0.0, 7.329034e-5, 2.3422057e-4, 3.8295105e-4, 2.871204e-4, 1.9128979e-4, 9.545916e-5] ] > """ @@ -473,12 +473,12 @@ defmodule NxSignal do #Nx.Tensor< f32[frames: 6][mel: 4] [ - [0.2900530695915222, 0.17422175407409668, 0.18422472476959229, 0.09807997941970825], - [0.6093881130218506, 0.5647397041320801, 0.4353824257850647, 0.08635270595550537], - [0.7584103345870972, 0.7085014581680298, 0.5636920928955078, 0.179118812084198], - [0.8461772203445435, 0.7952491044998169, 0.6470762491226196, 0.2520409822463989], - [0.908548891544342, 0.8572604656219482, 0.7078656554222107, 0.3086767792701721], - [0.908548891544342, 0.8572604656219482, 0.7078656554222107, 0.3086767792701721] + [0.29005307, 0.17422175, 0.18422472, 0.09807998], + [0.6093881, 0.5647397, 0.43538243, 0.086352706], + [0.75841033, 0.70850146, 0.5636921, 0.17911881], + [0.8461772, 0.7952491, 0.64707625, 0.25204098], + [0.9085489, 0.85726047, 0.70786566, 0.30867678], + [0.9085489, 0.85726047, 0.70786566, 0.30867678] ] > """ @@ -575,7 +575,7 @@ defmodule NxSignal do iex> Nx.as_type(result, Nx.type(t)) #Nx.Tensor< f32[8] - [0.0, 10.0, 0.9999999403953552, -2.1900146407460852e-7, 10.0, 10.0, 2.000000238418579, 20.0] + [0.0, 10.0, 0.99999994, -2.1900146e-7, 10.0, 10.0, 2.0000002, 20.0] > """ @doc type: :time_frequency diff --git a/lib/nx_signal/convolution.ex b/lib/nx_signal/convolution.ex index 00dee07..4c0aaf0 100644 --- a/lib/nx_signal/convolution.ex +++ b/lib/nx_signal/convolution.ex @@ -246,7 +246,7 @@ defmodule NxSignal.Convolution do iex> NxSignal.Convolution.fftconvolve(Nx.tensor([1,2,3]), Nx.tensor([3,4,5])) #Nx.Tensor< f32[5] - [3.0000007152557373, 10.0, 22.0, 22.0, 15.0] + [3.0000007, 10.0, 22.0, 22.0, 15.0] > """ deftransform fftconvolve(in1, in2, opts \\ []) do diff --git a/lib/nx_signal/waveforms.ex b/lib/nx_signal/waveforms.ex index 8c8cbc5..5e5fffe 100644 --- a/lib/nx_signal/waveforms.ex +++ b/lib/nx_signal/waveforms.ex @@ -126,17 +126,17 @@ defmodule NxSignal.Waveforms do iex> pulse.envelope #Nx.Tensor< f32[4] - [1.0, 0.2044311761856079, 0.0017465798882767558, 6.236266472114949e-7] + [1.0, 0.20443118, 0.0017465799, 6.2362665e-7] > iex> pulse.in_phase #Nx.Tensor< f32[4] - [1.0, -0.10221562534570694, -8.73289187438786e-4, 6.236266472114949e-7] + [1.0, -0.102215625, -8.732892e-4, 6.2362665e-7] > iex> pulse.quadrature #Nx.Tensor< f32[4] - [0.0, 0.17704255878925323, -0.001512582995928824, 4.3615339204855497e-13] + [0.0, 0.17704256, -0.001512583, 4.361534e-13] > iex> t = Nx.linspace(0, 1, n: 4) @@ -144,17 +144,17 @@ defmodule NxSignal.Waveforms do iex> pulse.envelope #Nx.Tensor< f32[4] - [1.0, 0.6724140644073486, 0.2044311761856079, 0.028101608157157898] + [1.0, 0.67241406, 0.20443118, 0.028101608] > iex> pulse.in_phase #Nx.Tensor< f32[4] - [1.0, -0.33620715141296387, -0.10221550613641739, 0.028101608157157898] + [1.0, -0.33620715, -0.102215506, 0.028101608] > iex> pulse.quadrature #Nx.Tensor< f32[4] - [0.0, 0.5823275446891785, -0.1770426332950592, 1.965376483781256e-8] + [0.0, 0.58232754, -0.17704263, 1.9653765e-8] > """ @doc type: :waveforms @@ -222,27 +222,27 @@ defmodule NxSignal.Waveforms do iex> NxSignal.Waveforms.chirp(t, 10, 10, 1, method: :linear) #Nx.Tensor< f32[5] - [1.0, 0.38268470764160156, 3.795033308051643e-6, -0.382683128118515, 1.0] + [1.0, 0.3826847, 3.7950333e-6, -0.38268313, 1.0] > iex> NxSignal.Waveforms.chirp(t, 10, 10, 1, method: :quadratic) #Nx.Tensor< f32[5] - [1.0, -0.9807833433151245, -9.958475288840418e-8, -0.5555803775787354, 1.0] + [1.0, -0.98078334, -9.958475e-8, -0.5555804, 1.0] > iex> NxSignal.Waveforms.chirp(t, 10, 10, 1, method: :quadratic, vertex_zero: false) #Nx.Tensor< f32[5] - [1.0, 0.5555850863456726, -7.490481493732659e-6, 0.98078453540802, 1.0] + [1.0, 0.5555851, -7.4904815e-6, 0.98078454, 1.0] > iex> NxSignal.Waveforms.chirp(t, 10, 10, 1, method: :hyperbolic) #Nx.Tensor< f32[5] - [1.0, 0.8229323029518127, 0.9335360527038574, 0.013466471806168556, -0.8630329966545105] + [1.0, 0.8229323, 0.93353605, 0.013466472, -0.863033] > iex> NxSignal.Waveforms.chirp(t, 10, 10, 1, method: :logarithmic) #Nx.Tensor< f32[5] - [1.0, 0.9989554286003113, -0.33371755480766296, -0.2700612545013428, 0.8558982610702515] + [1.0, 0.9989554, -0.33371755, -0.27006125, 0.85589826] > """ @doc type: :waveforms @@ -321,22 +321,22 @@ defmodule NxSignal.Waveforms do iex> NxSignal.Waveforms.polynomial_sweep(t, Nx.tensor([2, 0, 1])) #Nx.Tensor< f32[5] - [1.0, 0.866027295589447, -0.500006377696991, 1.7942518752533942e-5, -0.49998921155929565] + [1.0, 0.8660273, -0.5000064, 1.7942519e-5, -0.4999892] > iex> NxSignal.Waveforms.polynomial_sweep(t, Nx.tensor([2, 0, 1]), phi: :math.pi() / 2) #Nx.Tensor< f32[5] - [-4.371138828673793e-8, 0.499999463558197, -0.8660194873809814, 1.0, 0.8660338521003723] + [-4.371139e-8, 0.49999946, -0.8660195, 1.0, 0.86603385] > iex> NxSignal.Waveforms.polynomial_sweep(t, Nx.tensor([1, 0])) #Nx.Tensor< f32[5] - [1.0, 0.7071065306663513, -1.0, 0.7071084976196289, 1.0] + [1.0, 0.70710653, -1.0, 0.7071085, 1.0] > iex> NxSignal.Waveforms.polynomial_sweep(t, Nx.tensor([1, 0]), phi: 180, phi_unit: :degrees) #Nx.Tensor< f32[5] - [-1.0, -0.7071069478988647, 1.0, -0.7071129679679871, -1.0] + [-1.0, -0.70710695, 1.0, -0.70711297, -1.0] > """ @doc type: :waveforms @@ -444,7 +444,7 @@ defmodule NxSignal.Waveforms do iex> NxSignal.Waveforms.sinc(Nx.tensor([0, 0.25, 1])) #Nx.Tensor< f32[3] - [1.0, 0.9003162980079651, -2.7827534054836178e-8] + [1.0, 0.9003163, -2.7827534e-8] > """ @doc type: :waveforms diff --git a/lib/nx_signal/windows.ex b/lib/nx_signal/windows.ex index 2cc8762..1d1002c 100644 --- a/lib/nx_signal/windows.ex +++ b/lib/nx_signal/windows.ex @@ -50,7 +50,7 @@ defmodule NxSignal.Windows do iex> NxSignal.Windows.bartlett(3) #Nx.Tensor< f32[3] - [0.0, 0.6666666865348816, 0.6666666269302368] + [0.0, 0.6666667, 0.6666666] > """ @doc type: :windowing @@ -141,19 +141,19 @@ defmodule NxSignal.Windows do iex> NxSignal.Windows.blackman(5, is_periodic: false) #Nx.Tensor< f32[5] - [-1.4901161193847656e-8, 0.3400000333786011, 0.9999999403953552, 0.3400000333786011, -1.4901161193847656e-8] + [-1.4901161e-8, 0.34000003, 0.99999994, 0.34000003, -1.4901161e-8] > iex> NxSignal.Windows.blackman(5, is_periodic: true) #Nx.Tensor< f32[5] - [-1.4901161193847656e-8, 0.20077012479305267, 0.8492299318313599, 0.8492299318313599, 0.20077012479305267] + [-1.4901161e-8, 0.20077012, 0.84922993, 0.84922993, 0.20077012] > iex> NxSignal.Windows.blackman(6, is_periodic: true, type: {:f, 32}) #Nx.Tensor< f32[6] - [-1.4901161193847656e-8, 0.12999999523162842, 0.6299999952316284, 0.9999999403953552, 0.6299999952316284, 0.12999999523162842] + [-1.4901161e-8, 0.13, 0.63, 0.99999994, 0.63, 0.13] > """ @doc type: :windowing @@ -213,12 +213,12 @@ defmodule NxSignal.Windows do iex> NxSignal.Windows.hamming(5, is_periodic: true) #Nx.Tensor< f32[5] - [0.08000001311302185, 0.39785221219062805, 0.9121478796005249, 0.9121478199958801, 0.3978521227836609] + [0.08000001, 0.3978522, 0.9121479, 0.9121478, 0.39785212] > iex> NxSignal.Windows.hamming(5, is_periodic: false) #Nx.Tensor< f32[5] - [0.08000001311302185, 0.5400000214576721, 1.0, 0.5400000214576721, 0.08000001311302185] + [0.08000001, 0.54, 1.0, 0.54, 0.08000001] > """ @doc type: :windowing @@ -271,7 +271,7 @@ defmodule NxSignal.Windows do iex> NxSignal.Windows.hann(5, is_periodic: true) #Nx.Tensor< f32[5] - [0.0, 0.34549152851104736, 0.9045085310935974, 0.9045084714889526, 0.3454914391040802] + [0.0, 0.34549153, 0.90450853, 0.9045085, 0.34549144] > """ @doc type: :windowing @@ -322,19 +322,19 @@ defmodule NxSignal.Windows do iex> NxSignal.Windows.kaiser(4, beta: 12.0, is_periodic: true) #Nx.Tensor< f32[4] - [5.2776191296288744e-5, 0.21566666662693024, 1.0, 0.21566666662693024] + [5.277619e-5, 0.21566667, 1.0, 0.21566667] > iex> NxSignal.Windows.kaiser(5, beta: 12.0, is_periodic: true) #Nx.Tensor< f32[5] - [5.2776191296288744e-5, 0.10171464085578918, 0.7929369807243347, 0.7929369807243347, 0.10171464085578918] + [5.277619e-5, 0.10171464, 0.792937, 0.792937, 0.10171464] > iex> NxSignal.Windows.kaiser(4, beta: 12.0, is_periodic: false) #Nx.Tensor< f32[4] - [5.2776191296288744e-5, 0.5188394784927368, 0.5188390612602234, 5.2776191296288744e-5] + [5.277619e-5, 0.5188395, 0.51883906, 5.277619e-5] > """ @doc type: :windowing diff --git a/mix.exs b/mix.exs index cbc4a70..0bfa2a0 100644 --- a/mix.exs +++ b/mix.exs @@ -2,7 +2,7 @@ defmodule NxSignal.MixProject do use Mix.Project @source_url "https://github.com/elixir-nx/nx_signal" - @version "0.2.0" + @version "0.3.0" def project do [ @@ -57,7 +57,7 @@ defmodule NxSignal.MixProject do # Run "mix help deps" to learn about dependencies. defp deps do [ - {:nx, github: "elixir-nx/nx", sparse: "nx"}, + {:nx, "~> 0.11"}, {:ex_doc, "~> 0.29", only: :docs} ] end diff --git a/mix.lock b/mix.lock index 538cd99..95d4102 100644 --- a/mix.lock +++ b/mix.lock @@ -7,7 +7,7 @@ "makeup_elixir": {:hex, :makeup_elixir, "0.16.0", "f8c570a0d33f8039513fbccaf7108c5d750f47d8defd44088371191b76492b0b", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "28b2cbdc13960a46ae9a8858c4bebdec3c9a6d7b4b9e7f4ed1502f8159f338e7"}, "makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"}, "nimble_parsec": {:hex, :nimble_parsec, "1.2.3", "244836e6e3f1200c7f30cb56733fd808744eca61fd182f731eac4af635cc6d0b", [:mix], [], "hexpm", "c8d789e39b9131acf7b99291e93dae60ab48ef14a7ee9d58c6964f59efb570b0"}, - "nx": {:git, "https://github.com/elixir-nx/nx.git", "c6fc98df9ff36b27727c800524b36e92f56dd7ba", [sparse: "nx"]}, + "nx": {:hex, :nx, "0.11.0", "d37723dbd6cfa274a5def6d6664f5680c32e2eb8a1ce25ec6d91751967fa0abf", [:mix], [{:complex, "~> 0.6", [hex: :complex, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "36157b21239aeb251d6cbac23eb0eb3495a5e1e0cbc2e6df16afd2ede1575205"}, "telemetry": {:hex, :telemetry, "1.3.0", "fedebbae410d715cf8e7062c96a1ef32ec22e764197f70cda73d82778d61e7a2", [:rebar3], [], "hexpm", "7015fc8919dbe63764f4b4b87a95b7c0996bd539e0d499be6ec9d7f3875b79e6"}, "xla": {:hex, :xla, "0.4.3", "cf6201aaa44d990298996156a83a16b9a87c5fbb257758dbf4c3e83c5e1c4b96", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "caae164b56dcaec6fbcabcd7dea14303afde07623b0cfa4a3cd2576b923105f5"}, }