I am trying to displace a lot of data sets (optical spectra) along the x-axix by using this function:
RescanSpectrum( RefSpectrum, SpectrumToRescan ) := block([ LinInterpol, h, RefittedData, x, y ], LinInterpol : cspline(SpectrumToRescan), SplineSFit(x) := ev(LinInterpol, nouns), h[x, y] := if y = 2 then SplineSFit(RefSpectrum[x, 1]) else RefSpectrum[x, 1], RefittedData : genmatrix(h, length(RefSpectrum), 2), kill(LinInterpol, SplineSFit, h), return( RefittedData) ); RefittedData : makelist("", n, NumberOfDatafiles);
When trying to apply my RescanSpectrum function on the data sets:
for GasNumb : 1 thru NumberOfDatafiles do ( print(concat(GasNumb, " of ", NumberOfDatafiles, " : ", DataFile[GasNumb])), RefittedData[GasNumb] : RescanSpectrum( ActualSpectrometer, Data[GasNumb] ) )$
It works ok for the first 10 datasets, then it stops with this message:
11 of 75 : 20200130-030136-Sensor_2004-001-1179-absorbance.csv Binding stack guard page temporarily disabled: proceed with caution Maxima encountered a Lisp error: Binding stack exhausted. PROCEED WITH CAUTION. Automatically continuing. To enable the Lisp debugger set *debugger-hook* to nil.
Any idea ?
Diff:
I'm closing this item as a duplicate as it appears to be the same as #3663 except that
cspline
is called here instead oflinearinterpol
.