-module(gleastsq). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([least_squares/5, levenberg_marquardt/5, gauss_newton/5]). -spec least_squares( list(float()), list(float()), fun((float(), list(float())) -> float()), list(float()), list(gleastsq@options:least_square_options()) ) -> {ok, list(float())} | {error, gleastsq@errors:fit_errors()}. least_squares(X, Y, Func, Initial_params, Opts) -> gleastsq@internal@methods@levenberg_marquardt:levenberg_marquardt( X, Y, Func, Initial_params, gleastsq@internal@params:decode_params(Opts) ). -spec levenberg_marquardt( list(float()), list(float()), fun((float(), list(float())) -> float()), list(float()), list(gleastsq@options:least_square_options()) ) -> {ok, list(float())} | {error, gleastsq@errors:fit_errors()}. levenberg_marquardt(X, Y, Func, Initial_params, Opts) -> gleastsq@internal@methods@levenberg_marquardt:levenberg_marquardt( X, Y, Func, Initial_params, gleastsq@internal@params:decode_params(Opts) ). -spec gauss_newton( list(float()), list(float()), fun((float(), list(float())) -> float()), list(float()), list(gleastsq@options:least_square_options()) ) -> {ok, list(float())} | {error, gleastsq@errors:fit_errors()}. gauss_newton(X, Y, Func, Initial_params, Opts) -> gleastsq@internal@methods@gauss_newton:gauss_newton( X, Y, Func, Initial_params, gleastsq@internal@params:decode_params(Opts) ).