Skip to content

Instantly share code, notes, and snippets.

@andrewclegg
Created March 16, 2015 14:47
Show Gist options
  • Save andrewclegg/9e937b284a91a42f95ae to your computer and use it in GitHub Desktop.
Save andrewclegg/9e937b284a91a42f95ae to your computer and use it in GitHub Desktop.
Unexpected results from JWave's decompose/recompose
[0.0, 0.8414709848078965, 0.9092974268256817, 0.1411200080598672, -0.7568024953079282, -0.9589242746631385, -0.27941549819892586, 0.6569865987187891, 0.9893582466233818, 0.4121184852417566, -0.5440211108893698, -0.9999902065507035, -0.5365729180004349, 0.4201670368266409, 0.9906073556948704, 0.6502878401571168, -0.2879033166650653, -0.9613974918795568, -0.750987246771676, 0.14987720966295234, 0.9129452507276277, 0.8366556385360561, -0.008851309290403876, -0.8462204041751706, -0.9055783620066239, -0.13235175009777303, 0.7625584504796027, 0.956375928404503, 0.27090578830786904, -0.6636338842129675, -0.9880316240928618, -0.404037645323065, 0.5514266812416906, 0.9999118601072672, 0.5290826861200238, -0.428182669496151, -0.9917788534431158, -0.6435381333569995, 0.2963685787093853, 0.9637953862840878, 0.7451131604793488, -0.158622668804709, -0.9165215479156338, -0.8317747426285983, 0.017701925105413577, 0.8509035245341184, 0.9017883476488092, 0.123573122745224, -0.7682546613236668, -0.9537526527594719, -0.26237485370392877, 0.6702291758433747, 0.9866275920404853, 0.39592515018183416, -0.5587890488516163, -0.9997551733586199, -0.5215510020869119, 0.43616475524782494, 0.9928726480845371, 0.6367380071391379, -0.3048106211022167, -0.9661177700083929, -0.7391806966492228, 0.16735570030280691]
[0.0, 0.8414709848078965, 0.9092974268256817, 0.1411200080598672, -0.7568024953079282, -0.9589242746631385, -0.27941549819892586, 0.6569865987187891, 0.9893582466233818, 0.4121184852417566, -0.5440211108893698, -0.9999902065507035, -0.5365729180004349, 0.4201670368266409, 0.9906073556948704, 0.6502878401571168, -0.2879033166650653, -0.9613974918795568, -0.750987246771676, 0.14987720966295234, 0.9129452507276277, 0.8366556385360561, -0.008851309290403876, -0.8462204041751706, -0.9055783620066239, -0.13235175009777303, 0.7625584504796027, 0.956375928404503, 0.27090578830786904, -0.6636338842129675, -0.9880316240928618, -0.404037645323065, 0.5514266812416906, 0.9999118601072672, 0.5290826861200238, -0.428182669496151, -0.9917788534431158, -0.6435381333569995, 0.2963685787093853, 0.9637953862840878, 0.7451131604793488, -0.158622668804709, -0.9165215479156338, -0.8317747426285983, 0.017701925105413577, 0.8509035245341184, 0.9017883476488092, 0.123573122745224, -0.7682546613236668, -0.9537526527594719, -0.26237485370392877, 0.6702291758433747, 0.9866275920404853, 0.39592515018183416, -0.5587890488516163, -0.9997551733586199, -0.5215510020869119, 0.43616475524782494, 0.9928726480845371, 0.6367380071391379, -0.3048106211022167, -0.9661177700083929, -0.7391806966492228, 0.16735570030280691]
[0.5950098395293859, 0.7427572912841504, -1.213202033709833, 0.2669830855576628, 0.990993700777, -1.0917808727906508, -0.0823113879479852, 1.1602881202033681, -0.883389073463739, -0.4250489834788757, 1.2371546531683646, -0.6046270069923082, -0.7339274206667324, 1.2154701557236374, -0.2777006997769759, -0.9843416202854047, 1.0969620025038953, 0.07134708597657585, -1.1563437307559132, 0.8910704850538118, 0.4147114037645702, -1.2362321625671129, 0.6141968036157032, 0.7250400488830302, -1.2176430490410204, 0.2883965569210448, 0.9776124193734588, -1.1020571883039714, -0.06037719415998677, 1.1523087450025133, -0.8986820837568206, -0.40434133256852345, -0.5950098395293859, 0.5431834619636856, 0.1429216808075603, -0.6621362726478188, 0.4081701496434517, 0.3224188395536266, -0.6765173098903364, 0.24064223720686606, 0.47623229838380776, -0.6370073660748587, 0.053944902114752113, 0.59210936534906, -0.5467537806746473, -0.13704965295317095, 0.660819339727339, -0.4129461025602359, -0.3171269112375109, 0.676888824351149, -0.24624337465817914, -0.4719420215817611, 0.6390377332880053, -0.05992504070235871, -0.5891625010515146, 0.5502812627519393, 0.1311668876407418, -0.6594506334547976, 0.4176897023017045, 0.31181013691245363, -0.6772073064606023, 0.25182521962792803, 0.4676147694386991, -0.6410180336772]
[0.9459442098467226, -0.6690778347256017, -0.07126729278746757, 0.7622446573390965, -0.9252054228266728, 0.44726458789905466, 0.34050213338985447, -0.8923986826605125, 0.8261192789864151, -0.18757651090332106, -0.580902899434796, 0.9469834600167824, -0.6570764959718465, -0.08799573999395849, 0.7721122041922939, -0.9213766937285126, -0.10447322503882622, -1.0466489352454649, 1.4727440246526056, -0.8786505385128905, -0.3240953857179492, 1.302336301364629, -1.3784322454942513, 0.499670586755414, 0.7252192623625424, -1.447740475896794, 1.1673933911094356, -0.07837801037725062, -1.0649308181112922, 1.4705484822162775, -0.8574984510313808, -0.34955169738209674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.19577409133068296, 0.488594780120866, -0.33795520538327917, -0.39024979250273784, 0.4515179213891847, 0.2588580468480952, -0.5268456305252441, -0.10554593274140867, 1.141993039482853, -0.5893819521345168, -0.9704828515593354, 0.8717925275596426, 0.7167911670912861, -1.0803788056506378, -0.40240086159473143, 1.1974774835839352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.48392186983637486, -0.5149186920991381, 0.50231166433254, -0.44716836275101174, -0.20705549471525408, 0.03697785717151991, 0.1362311037505538, -0.2979038732147931, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[-0.021918063217233996, 0.03899220248531354, 0.7062869346687829, 0.6713837657519662, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[0.012073239659382562, -0.04307006192214575, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
[-0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, -0.003874602782845396, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035, 0.006892912697691035]
package com.etsy.tslib.rx;
import static org.junit.Assert.assertArrayEquals;
import java.util.Arrays;
import math.jwave.Transform;
import math.jwave.transforms.FastWaveletTransform;
import math.jwave.transforms.wavelets.Wavelet;
import math.jwave.transforms.wavelets.haar.Haar1;
import org.junit.Test;
public class WaveletBug {
private static final double[] sin = {0.0, 0.8414709848078965, 0.9092974268256817, 0.1411200080598672, -0.7568024953079282, -0.9589242746631385, -0.27941549819892586, 0.6569865987187891, 0.9893582466233818, 0.4121184852417566, -0.5440211108893698, -0.9999902065507035, -0.5365729180004349, 0.4201670368266409, 0.9906073556948704, 0.6502878401571168, -0.2879033166650653, -0.9613974918795568, -0.750987246771676, 0.14987720966295234, 0.9129452507276277, 0.8366556385360561, -0.008851309290403876, -0.8462204041751706, -0.9055783620066239, -0.13235175009777303, 0.7625584504796027, 0.956375928404503, 0.27090578830786904, -0.6636338842129675, -0.9880316240928618, -0.404037645323065, 0.5514266812416906, 0.9999118601072672, 0.5290826861200238, -0.428182669496151, -0.9917788534431158, -0.6435381333569995, 0.2963685787093853, 0.9637953862840878, 0.7451131604793488, -0.158622668804709, -0.9165215479156338, -0.8317747426285983, 0.017701925105413577, 0.8509035245341184, 0.9017883476488092, 0.123573122745224, -0.7682546613236668, -0.9537526527594719, -0.26237485370392877, 0.6702291758433747, 0.9866275920404853, 0.39592515018183416, -0.5587890488516163, -0.9997551733586199, -0.5215510020869119, 0.43616475524782494, 0.9928726480845371, 0.6367380071391379, -0.3048106211022167, -0.9661177700083929, -0.7391806966492228, 0.16735570030280691};
@Test
public void WaveletTest() {
System.out.println(Arrays.toString(sin));
System.out.println();
final Wavelet wavelet = new Haar1();
final Transform t = new Transform( new FastWaveletTransform( wavelet ) );
final double[][] bands = t.decompose(sin);
for(final double band[] : bands) {
System.out.println(Arrays.toString(band));
}
System.out.println();
final double[] recomposed = t.recompose(bands);
System.out.println(Arrays.toString(recomposed));
System.out.println();
assertArrayEquals(sin, recomposed, 1.e-8);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment