Skip to content

Commit dbcd4b5

Browse files
committed
Edits to interface with S2LET and FLAG v2.0
1 parent 3162e7c commit dbcd4b5

File tree

5 files changed

+61
-53
lines changed

5 files changed

+61
-53
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
*.so
2+
*info
3+
build
4+

include/flaglet_types.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ typedef struct {
2121

2222
int reality;
2323

24-
double R;
24+
double tau;
2525

2626
} flaglet_parameters_t;
2727

makefile

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
# Directory for FLAG
44
FLAGDIR = ${FLAG}
5+
# Directory for SO3
6+
SO3DIR = ${SO3}
57
# Directory for S2LET
68
S2LETDIR = ${S2LET}
79
# Directory for SSHT
@@ -11,13 +13,13 @@ FFTWDIR = ${FFTW}
1113
# Directory for GSL
1214
GSLDIR = ${GSL}
1315
# Directory for MATLAB
14-
MLAB = /Applications/MATLAB_R2011b.app
16+
MLAB = ${MATLAB}
1517
# Directory for DOXYGEN
1618
DOXYGEN_PATH=doxygen
1719

1820
# Compiler and options
1921
CC = gcc
20-
OPT = -Wall -O3 -g -DFLAGLET_VERSION=\"1.0b1\" -DFLAGLET_BUILD=\"`svnversion -n .`\"
22+
OPT = -Wall -O3 -g
2123
UNAME := $(shell uname)
2224

2325
# ======================================== #
@@ -49,6 +51,11 @@ FLAGLETOBJ = $(FLAGLETSRC)
4951
FLAGLETTESTSRC = $(FLAGLETDIR)/src/test/c
5052
FLAGLETTESTOBJ = $(FLAGLETTESTSRC)
5153

54+
# === SO3 ===
55+
SO3LIB = $(SO3DIR)/lib/c
56+
SO3INC = $(SO3DIR)/include/c
57+
SO3LIBN= so3
58+
5259
# === S2LET ===
5360
S2LETLIB = $(S2LETDIR)/lib
5461
S2LETINC = $(S2LETDIR)/include
@@ -80,22 +87,17 @@ vpath %.c $(FLAGLETTESTSRC)
8087
vpath %.h $(FLAGLETINC)
8188
vpath %_mex.c $(FLAGLETSRCMAT)
8289

83-
LDFLAGS = -L$(FLAGLETLIB) -l$(FLAGLETLIBN) -L$(FLAGLIB) -l$(FLAGLIBN) -L$(S2LETLIB) -l$(S2LETLIBN) -L$(FFTWLIB) -l$(FFTWLIBNM) -L$(SSHTLIB) -l$(SSHTLIBN) -lm -lc
90+
LDFLAGS = -L$(FLAGLETLIB) -l$(FLAGLETLIBN) -L$(FLAGLIB) -l$(FLAGLIBN) -L$(S2LETLIB) -l$(S2LETLIBN) -L$(SO3LIB) -l$(SO3LIBN) -L$(FFTWLIB) -l$(FFTWLIBNM) -L$(SSHTLIB) -l$(SSHTLIBN) -lm -lc
8491

85-
LDFLAGSMEX = -L$(FLAGLETLIB) -l$(FLAGLETLIBN) -L$(FLAGLIB) -l$(FLAGLIBN) -L$(S2LETLIB) -l$(S2LETLIBN) -I/usr/local/include -L$(FFTWLIB) -l$(FFTWLIBNM) -L$(SSHTLIB) -l$(SSHTLIBN)
92+
LDFLAGSMEX = -L$(FLAGLETLIB) -l$(FLAGLETLIBN) -L$(FLAGLIB) -l$(FLAGLIBN) -L$(S2LETLIB) -l$(S2LETLIBN) -L$(SO3LIB) -l$(SO3LIBN) -I/usr/local/include -L$(FFTWLIB) -l$(FFTWLIBNM) -L$(SSHTLIB) -l$(SSHTLIBN)
8693

87-
FFLAGS = -I$(FLAGLETINC) -I$(FFTWINC) -I$(SSHTINC) -I$(FLAGINC) -I$(S2LETINC)
94+
FFLAGS = -I$(FLAGLETINC) -I$(FFTWINC) -I$(SSHTINC) -I$(FLAGINC) -I$(S2LETINC) -I$(SO3INC)
8895

89-
FLAGLETOBJS= $(FLAGLETOBJ)/flaglet_axisym.o \
90-
$(FLAGLETOBJ)/flaglet_tiling.o
96+
FLAGLETOBJS = $(FLAGLETOBJ)/flaglet_transform.o $(FLAGLETOBJ)/flaglet_tiling.o
9197

92-
FLAGLETOBJSMAT = $(FLAGLETOBJMAT)/flaglet_axisym_tiling_mex.o \
93-
$(FLAGLETOBJMAT)/flaglet_axisym_analysis_mex.o \
94-
$(FLAGLETOBJMAT)/flaglet_axisym_synthesis_mex.o
98+
FLAGLETOBJSMAT = $(FLAGLETOBJMAT)/flaglet_tiling_mex.o $(FLAGLETOBJMAT)/flaglet_axisym_analysis_mex.o $(FLAGLETOBJMAT)/flaglet_axisym_synthesis_mex.o
9599

96-
FLAGLETOBJSMEX = $(FLAGLETOBJMEX)/flaglet_axisym_tiling_mex.$(MEXEXT) \
97-
$(FLAGLETOBJMEX)/flaglet_axisym_analysis_mex.$(MEXEXT) \
98-
$(FLAGLETOBJMEX)/flaglet_axisym_synthesis_mex.$(MEXEXT)
100+
FLAGLETOBJSMEX = $(FLAGLETOBJMEX)/flaglet_tiling_mex.$(MEXEXT) $(FLAGLETOBJMAT)/flaglet_axisym_analysis_mex.$(MEXEXT) $(FLAGLETOBJMAT)/flaglet_axisym_synthesis_mex.$(MEXEXT)
99101

100102
$(FLAGLETOBJ)/%.o: %.c
101103
$(CC) $(OPT) $(FFLAGS) -c $< -o $@
@@ -104,15 +106,15 @@ $(FLAGLETTESTOBJ)/%.o: %.c
104106
$(CC) $(OPT) $(FFLAGS) -c $< -o $@
105107

106108
$(FLAGLETOBJMAT)/%_mex.o: %_mex.c $(FLAGLETLIB)/lib$(FLAGLETLIBN).a
107-
$(CC) $(OPT) $(FFLAGS) -c $< -o $@ -I${MLABINC}
109+
$(CC) $(OPT) $(FFLAGS) -c $< -o $@ -I${MLABINC}
108110

109111
$(FLAGLETOBJMEX)/%_mex.$(MEXEXT): $(FLAGLETOBJMAT)/%_mex.o $(FLAGLETLIB)/lib$(FLAGLETLIBN).a
110112
$(MEX) $< -o $@ $(LDFLAGSMEX) $(MEXFLAGS) -L$(MLABLIB)
111113

112114
# ======================================== #
113115

114116
.PHONY: default
115-
default: lib test about tidy
117+
default: lib test tidy
116118

117119
.PHONY: matlab
118120
matlab: $(FLAGLETOBJSMEX)
@@ -132,7 +134,7 @@ $(FLAGLETBIN)/flaglet_test: $(FLAGLETTESTOBJ)/flaglet_test.o $(FLAGLETLIB)/lib$(
132134

133135
.PHONY: about
134136
about: $(FLAGLETBIN)/flaglet_about
135-
$(FLAGLETBIN)/flaglet_about: $(FLAGLETOBJ)/flaglet_about.o
137+
$(FLAGLETBIN)/flaglet_about: $(FLAGLETOBJ)/flaglet_about.o
136138
$(CC) $(OPT) $< -o $(FLAGLETBIN)/flaglet_about
137139

138140
.PHONY: doc
@@ -154,5 +156,5 @@ tidy:
154156
rm -f $(FLAGLETOBJ)/*.o
155157
rm -f $(FLAGLETTESTOBJ)/*.o
156158
rm -f $(FLAGLETOBJMEX)/*.o
157-
rm -f *~
159+
rm -f *~
158160

src/main/c/flaglet_axisym.c

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,9 @@ void flaglet_axisym_allocate_f_wav_multires_lmp(complex double **f_wav_lmp, comp
166166
int J_p = s2let_j_max(P, B_p);
167167
int jp, jl, bandlimit_p, bandlimit_l, total = 0;
168168
for (jp = J_min_p; jp <= J_p; jp++){
169-
bandlimit_p = MIN(s2let_bandlimit(B_p, jp), P);
169+
bandlimit_p = MIN(s2let_bandlimit(jp, J_min_p, B_p, P), P);
170170
for (jl = J_min_l; jl <= J_l; jl++){
171-
bandlimit_l = MIN(s2let_bandlimit(B_l, jl), L);
171+
bandlimit_l = MIN(s2let_bandlimit(jl, J_min_l, B_l, L), L);
172172
total += bandlimit_l * bandlimit_l * bandlimit_p;
173173
}
174174
}
@@ -195,9 +195,9 @@ void flaglet_axisym_allocate_f_wav_multires(complex double **f_wav, complex doub
195195
int J_p = s2let_j_max(P, B_p);
196196
int jp, jl, bandlimit_p, bandlimit_l, total = 0;
197197
for (jp = J_min_p; jp <= J_p; jp++){
198-
bandlimit_p = MIN(s2let_bandlimit(B_p, jp), P);
198+
bandlimit_p = MIN(s2let_bandlimit(jp, J_min_p, B_p, P), P);
199199
for (jl = J_min_l; jl <= J_l; jl++){
200-
bandlimit_l = MIN(s2let_bandlimit(B_l, jl), L);
200+
bandlimit_l = MIN(s2let_bandlimit(jl, J_min_l, B_l, L), L);
201201
total += bandlimit_l * (2 * bandlimit_l - 1) * bandlimit_p;
202202
}
203203
}
@@ -224,9 +224,9 @@ void flaglet_axisym_allocate_f_wav_multires_real(double **f_wav, double **f_scal
224224
int J_p = s2let_j_max(P, B_p);
225225
int jp, jl, bandlimit_p, bandlimit_l, total = 0;
226226
for (jp = J_min_p; jp <= J_p; jp++){
227-
bandlimit_p = MIN(s2let_bandlimit(B_p, jp), P);
227+
bandlimit_p = MIN(s2let_bandlimit(jp, J_min_p, B_p, P), P);
228228
for (jl = J_min_l; jl <= J_l; jl++){
229-
bandlimit_l = MIN(s2let_bandlimit(B_l, jl), L);
229+
bandlimit_l = MIN(s2let_bandlimit(jl, J_min_l, B_l, L), L);
230230
total += bandlimit_l * (2 * bandlimit_l - 1) * bandlimit_p;
231231
}
232232
}
@@ -259,9 +259,9 @@ void flaglet_axisym_wav_analysis_multires_lmp(complex double *f_wav_lmp, complex
259259

260260
offset = 0;
261261
for (jp = J_min_p; jp <= J_p; jp++){
262-
bandlimit_p = MIN(s2let_bandlimit(B_p, jp), P);
262+
bandlimit_p = MIN(s2let_bandlimit(jp, J_min_p, B_p, P), P);
263263
for (jl = J_min_l; jl <= J_l; jl++){
264-
bandlimit_l = MIN(s2let_bandlimit(B_l, jl), L);
264+
bandlimit_l = MIN(s2let_bandlimit(jl, J_min_l, B_l, L), L);
265265
for (n = 0; n < bandlimit_p; n++){
266266
for (l = 0; l < bandlimit_l; l++){
267267
for (m = -l; m <= l ; m++){
@@ -310,9 +310,9 @@ void flaglet_axisym_wav_synthesis_multires_lmp(complex double *flmp, const compl
310310

311311
offset = 0;
312312
for (jp = J_min_p; jp <= J_p; jp++){
313-
bandlimit_p = MIN(s2let_bandlimit(B_p, jp), P);
313+
bandlimit_p = MIN(s2let_bandlimit(jp, J_min_p, B_p, P), P);
314314
for (jl = J_min_l; jl <= J_l; jl++){
315-
bandlimit_l = MIN(s2let_bandlimit(B_l, jl), L);
315+
bandlimit_l = MIN(s2let_bandlimit(jl, J_min_l, B_l, L), L);
316316
for (n = 0; n < bandlimit_p; n++){
317317
for (l = 0; l < bandlimit_l; l++){
318318
for (m = -l; m <= l ; m++){
@@ -326,8 +326,8 @@ void flaglet_axisym_wav_synthesis_multires_lmp(complex double *flmp, const compl
326326
}
327327
}
328328

329-
bandlimit_p = MIN(s2let_bandlimit(B_p, J_min_p-1), P);
330-
bandlimit_l = MIN(s2let_bandlimit(B_l, J_min_l-1), L);
329+
bandlimit_p = MIN(s2let_bandlimit(J_min_p-1, J_min_p, B_p, P), P);
330+
bandlimit_l = MIN(s2let_bandlimit(J_min_l-1, J_min_l, B_l, L), L);
331331
for (n = 0; n < P; n++){
332332
for (l = 0; l < L; l++){
333333
for (m = -l; m <= l ; m++){
@@ -485,10 +485,10 @@ void flaglet_axisym_wav_analysis_multires(complex double *f_wav, complex double
485485
offset_lmp = 0;
486486
offset = 0;
487487
for (jp = J_min_p; jp <= J_p; jp++){
488-
bandlimit_p = MIN(s2let_bandlimit(B_p, jp), P);
488+
bandlimit_p = MIN(s2let_bandlimit(jp, J_min_p, B_p, P), P);
489489
flag_spherlaguerre_sampling(nodes, weights, R, bandlimit_p);
490490
for (jl = J_min_l; jl <= J_l; jl++){
491-
bandlimit_l = MIN(s2let_bandlimit(B_l, jl), L);
491+
bandlimit_l = MIN(s2let_bandlimit(jl, J_min_l, B_l, L), L);
492492
//offset_lmp = jp * (J_l + 1) * L * L * P + jl * L * L * P;
493493
//offset = jp * (J_l + 1) * L * (2*L-1) * (P) + jl * L * (2*L-1) * (P);
494494
flag_core_synthesis(f_wav + offset, f_wav_lmp + offset_lmp, nodes, bandlimit_p, bandlimit_l, bandlimit_p);
@@ -536,9 +536,9 @@ void flaglet_axisym_wav_synthesis_multires(complex double *f, const complex doub
536536
offset_lmp = 0;
537537
offset = 0;
538538
for (jp = J_min_p; jp <= J_p; jp++){
539-
bandlimit_p = MIN(s2let_bandlimit(B_p, jp), P);
539+
bandlimit_p = MIN(s2let_bandlimit(jp, J_min_p, B_p, P), P);
540540
for (jl = J_min_l; jl <= J_l; jl++){
541-
bandlimit_l = MIN(s2let_bandlimit(B_l, jl), L);
541+
bandlimit_l = MIN(s2let_bandlimit(jl, J_min_l, B_l, L), L);
542542
//offset_lmp = jp * (J_l + 1) * L * L * P + jl * L * L * P;
543543
//offset = jp * (J_l + 1) * L * (2*L-1) * (P) + jl * L * (2*L-1) * (P);
544544
flag_core_analysis(f_wav_lmp + offset_lmp, f_wav + offset, R, bandlimit_l, bandlimit_p);
@@ -624,10 +624,10 @@ void flaglet_axisym_wav_analysis_multires_real(double *f_wav, double *f_scal, co
624624
offset_lmp = 0;
625625
offset = 0;
626626
for (jp = J_min_p; jp <= J_p; jp++){
627-
bandlimit_p = MIN(s2let_bandlimit(B_p, jp), P);
627+
bandlimit_p = MIN(s2let_bandlimit(jp, J_min_p, B_p, P), P);
628628
flag_spherlaguerre_sampling(nodes, weights, R, bandlimit_p);
629629
for (jl = J_min_l; jl <= J_l; jl++){
630-
bandlimit_l = MIN(s2let_bandlimit(B_l, jl), L);
630+
bandlimit_l = MIN(s2let_bandlimit(jl, J_min_l, B_l, L), L);
631631
//offset_lmp = jp * (J_l + 1) * L * L * P + jl * L * L * P;
632632
//offset = jp * (J_l + 1) * L * (2*L-1) * (P) + jl * L * (2*L-1) * (P);
633633
flag_core_synthesis_real(f_wav + offset, f_wav_lmp + offset_lmp, nodes, bandlimit_p, bandlimit_l, bandlimit_p);
@@ -675,9 +675,9 @@ void flaglet_axisym_wav_synthesis_multires_real(double *f, const double *f_wav,
675675
offset_lmp = 0;
676676
offset = 0;
677677
for (jp = J_min_p; jp <= J_p; jp++){
678-
bandlimit_p = MIN(s2let_bandlimit(B_p, jp), P);
678+
bandlimit_p = MIN(s2let_bandlimit(jp, J_min_p, B_p, P), P);
679679
for (jl = J_min_l; jl <= J_l; jl++){
680-
bandlimit_l = MIN(s2let_bandlimit(B_l, jl), L);
680+
bandlimit_l = MIN(s2let_bandlimit(jl, J_min_l, B_l, L), L);
681681
//offset_lmp = jp * (J_l + 1) * L * L * P + jl * L * L * P;
682682
//offset = jp * (J_l + 1) * L * (2*L-1) * (P) + jl * L * (2*L-1) * (P);
683683
flag_core_analysis_real(f_wav_lmp + offset_lmp, f_wav + offset, R, bandlimit_l, bandlimit_p);

src/main/c/flaglet_transform.c

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ void flaglet_wav_lmp(complex double *wav_lmp, double *scal_lmp, const flaglet_pa
5050
s2let_parameters_t s2let_parameters = {};
5151
fill_s2let_angular_parameters(&s2let_parameters, parameters);
5252

53-
int jl, jp, l, p, m, indjjlmp, indlmp, indlm;
53+
int jl, jp, l, p, m, indjjlmp, indlm;
5454
int J_l = flaglet_j_max(L, parameters->B_l);
5555
int J_p = flaglet_j_max(P, parameters->B_p);
5656

@@ -97,7 +97,7 @@ double flaglet_tiling_wavelet_check_identity(complex double *wav_lmp, double *sc
9797
int P = parameters->P;
9898
int spin = parameters->spin;
9999

100-
int indlmp, indjjlmp, indlm, jl, jp, l, p, m;
100+
int indjjlmp, indlm, jl, jp, l, p, m;
101101
int J_l = flaglet_j_max(L, parameters->B_l);
102102
int J_p = flaglet_j_max(P, parameters->B_p);
103103
double error = 0.0; // maximum error for all el
@@ -355,18 +355,19 @@ void flaglet_allocate_f_wav(complex double **f_wav, complex double **f_scal, con
355355
*/
356356
void flaglet_analysis(complex double *f_wav, complex double *f_scal, const complex double *f, const flaglet_parameters_t *parameters)
357357
{
358-
int R = parameters->R;
358+
double tau = parameters->tau;
359359
int L = parameters->L;
360360
int P = parameters->P;
361361
int N = parameters->N;
362+
int spin = parameters->spin;
362363
int J_l = flaglet_j_max(L, parameters->B_l);
363364
int J_p = flaglet_j_max(P, parameters->B_p);
364365
so3_parameters_t so3_parameters = {};
365366
fill_so3_angular_parameters(&so3_parameters, parameters);
366367

367368
complex double *flmp, *f_wav_p;
368369
flag_core_allocate_flmn(&flmp, L, P);
369-
flag_core_analysis(flmp, f, R, L, P);
370+
flag_core_analysis(flmp, f, L, tau, P, spin);
370371

371372
complex double *wav_lmp;
372373
double *scal_lmp;
@@ -382,9 +383,9 @@ void flaglet_analysis(complex double *f_wav, complex double *f_scal, const compl
382383

383384
double *nodes = (double*)calloc(P, sizeof(double));
384385
double *weights = (double*)calloc(P, sizeof(double));
385-
flag_spherlaguerre_sampling(nodes, weights, R, P);
386+
flag_spherlaguerre_sampling(nodes, weights, tau, P);
386387

387-
flag_core_synthesis(f_scal, f_scal_lmp, nodes, P, L, P);
388+
flag_core_synthesis(f_scal, f_scal_lmp, nodes, P, L, tau, P, spin);
388389

389390
int bandlimit_p = P;
390391
int bandlimit_l = L;
@@ -394,7 +395,7 @@ void flaglet_analysis(complex double *f_wav, complex double *f_scal, const compl
394395
for (jp = parameters->J_min_p; jp <= J_p; jp++){
395396
if (!parameters->upsample) {
396397
bandlimit_p = MIN(flaglet_radial_bandlimit(jp, parameters), P);
397-
flag_spherlaguerre_sampling(nodes, weights, R, bandlimit_p);
398+
flag_spherlaguerre_sampling(nodes, weights, tau, bandlimit_p);
398399
}
399400
for (jl = parameters->J_min_l; jl <= J_l; jl++){
400401
if (!parameters->upsample) {
@@ -416,7 +417,7 @@ void flaglet_analysis(complex double *f_wav, complex double *f_scal, const compl
416417
);
417418
offset_lmnp += lmn_size;
418419
}
419-
flag_spherlaguerre_mapped_synthesis(f_wav + offset, f_wav_p, nodes, bandlimit_p, bandlimit_p, f_size);
420+
flag_spherlaguerre_mapped_synthesis(f_wav + offset, f_wav_p, nodes, bandlimit_p, tau, bandlimit_p, f_size);
420421
offset += f_size * bandlimit_p;
421422
free(f_wav_p);
422423
}
@@ -440,10 +441,11 @@ void flaglet_synthesis(complex double *f, const complex double *f_wav, const com
440441
flaglet_allocate_f_wav_lmnp(&f_wav_lmnp, &f_scal_lmp, parameters);
441442

442443
int Nj, offset_lmnp, offset, jl, jp, lmn_size, f_size, p;
443-
int R = parameters->R;
444+
double tau = parameters->tau;
444445
int L = parameters->L;
445446
int P = parameters->P;
446447
int N = parameters->N;
448+
int spin = parameters->spin;
447449
int J_l = flaglet_j_max(L, parameters->B_l);
448450
int J_p = flaglet_j_max(P, parameters->B_p);
449451
so3_parameters_t so3_parameters = {};
@@ -454,16 +456,16 @@ void flaglet_synthesis(complex double *f, const complex double *f_wav, const com
454456

455457
int bandlimit_p = P;
456458
int bandlimit_l = L;
457-
flag_spherlaguerre_sampling(nodes, weights, R, P);
459+
flag_spherlaguerre_sampling(nodes, weights, tau, P);
458460

459-
flag_core_analysis(f_scal_lmp, f_scal, R, L, P);
461+
flag_core_analysis(f_scal_lmp, f_scal, L, tau, P, spin);
460462

461463
offset_lmnp = 0;
462464
offset = 0;
463465
for (jp = parameters->J_min_p; jp <= J_p; jp++){
464466
if (!parameters->upsample) {
465467
bandlimit_p = MIN(flaglet_radial_bandlimit(jp, parameters), P);
466-
flag_spherlaguerre_sampling(nodes, weights, R, bandlimit_p);
468+
flag_spherlaguerre_sampling(nodes, weights, tau, bandlimit_p);
467469
}
468470
for (jl = parameters->J_min_l; jl <= J_l; jl++){
469471
if (!parameters->upsample){
@@ -478,7 +480,7 @@ void flaglet_synthesis(complex double *f, const complex double *f_wav, const com
478480
f_size = so3_sampling_f_size(&so3_parameters);
479481

480482
f_wav_p = (complex double*)calloc( f_size * bandlimit_p, sizeof(complex double));
481-
flag_spherlaguerre_mapped_analysis(f_wav_p, f_wav + offset, nodes, weights, bandlimit_p, f_size);
483+
flag_spherlaguerre_mapped_analysis(f_wav_p, f_wav + offset, nodes, weights, tau, bandlimit_p, f_size);
482484
for (p = 0; p < bandlimit_p; p++){
483485
so3_core_forward_via_ssht(
484486
f_wav_lmnp + offset_lmnp,
@@ -501,8 +503,8 @@ void flaglet_synthesis(complex double *f, const complex double *f_wav, const com
501503
flag_core_allocate_flmn(&flmp, L, P);
502504
flaglet_synthesis_lmnp(flmp, f_wav_lmnp, f_scal_lmp, wav_lmp, scal_lmp, parameters);
503505

504-
flag_spherlaguerre_sampling(nodes, weights, R, P);
505-
flag_core_synthesis(f, flmp, nodes, P, L, P);
506+
flag_spherlaguerre_sampling(nodes, weights, tau, P);
507+
flag_core_synthesis(f, flmp, nodes, P, L, tau, P, spin);
506508

507509
free(nodes);
508510
free(weights);

0 commit comments

Comments
 (0)