summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/linearregression/linearregression.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/linearregression/linearregression.sty')
-rw-r--r--Master/texmf-dist/tex/latex/linearregression/linearregression.sty335
1 files changed, 335 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/linearregression/linearregression.sty b/Master/texmf-dist/tex/latex/linearregression/linearregression.sty
new file mode 100644
index 00000000000..f9d86096202
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/linearregression/linearregression.sty
@@ -0,0 +1,335 @@
+%%
+%% This is file `linearregression.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% linearregression.dtx (with options: `package')
+%% ------------------------------------------------------------------------
+%% [2024-06-10]
+%% This file is part of the (expanded) distribution of linearregression
+%% The author of linearregression is Battista Benciolini
+%% <benciolinibattista at gmail dot com >
+%% ------------------------------------------------------------------------
+%% The author would strongly appreciate to receive
+%% any comment, criticism and just usage report
+%% ------------------------------------------------------------------------
+%% This program may be used, distributed and modified under
+%% the conditions of the LaTeX Project Public License.
+%% (see: http://www.latex-project.org/lppl.txt)
+%% ------------------------------------------------------------------------
+\ProvidesPackage{linearregression}[2024-06-10]
+\RequirePackage{pict2e}
+\ExplSyntaxOn
+\ior_new:N \g_BBLR_file_ior
+\tl_new:N \g_BBLR_file_name_tl
+\int_new:N \g_BBLR_number_of_points_int
+\fp_new:N \g_BBLR_abscissa_fp
+\fp_new:N \g_BBLR_ordinate_fp
+\fp_new:N \g_BBLR_mean_abscissa_fp
+\fp_new:N \g_BBLR_mean_ordinate_fp
+\fp_new:N \g_BBLR_abscissa_SecOrdMoment_fp
+\fp_new:N \g_BBLR_ordinate_SecOrdMoment_fp
+\fp_new:N \g_BBLR_mixed_SecOrdMoment_fp
+\fp_new:N \g_BBLR_slope_A_fp
+\fp_new:N \g_BBLR_slope_B_fp
+\fp_new:N \g_BBLR_slope_S_fp
+\fp_new:N \g_BBLR_intercept_A_fp
+\fp_new:N \g_BBLR_intercept_B_fp
+\fp_new:N \g_BBLR_intercept_S_fp
+\fp_new:N \g_BBLR_cos_fp
+\fp_new:N \g_BBLR_sin_fp
+\fp_new:N \g_BBLR_sig_sin_fp
+\fp_new:N \g_BBLR_eig_diff_fp
+\fp_new:N \g_BBLR_diag_diff_fp
+\tl_new:N \g_BBLR_file_line_tl
+\fp_new:N \g_BBLR_min_abscissa_fp
+\fp_new:N \g_BBLR_min_ordinate_fp
+\fp_new:N \g_BBLR_max_abscissa_fp
+\fp_new:N \g_BBLR_max_ordinate_fp
+\fp_new:N \g_BBLR_min_draw_abscissa_fp
+\fp_new:N \g_BBLR_max_draw_abscissa_fp
+\bool_new:N \g_BBLR_data_eof_bool
+\int_new:N \g_BBLR_record_length_int
+\int_new:N \g_BBLR_rec_count_int
+\int_new:N \g_BBLR_first_separator_int
+\int_new:N \g_BBLR_last_separator_int
+\str_const:Nn \c_BBLR_space_str {~}
+\str_const:Nn \c_BBLR_comma_str {,}
+\str_const:Nn \c_BBLR_plus_str {+}
+\str_const:Nn \c_BBLR_minus_str {-}
+\bool_new:N \g_BBLR_plot_points_bool
+\bool_new:N \g_BBLR_plot_lineA_bool
+\bool_new:N \g_BBLR_plot_lineB_bool
+\bool_new:N \g_BBLR_plot_lineS_bool
+\fp_new:N \g_BBLR_base_fp
+\fp_new:N \g_BBLR_height_fp
+\fp_new:N \g_BBLR_Xbase_fp
+\fp_new:N \g_BBLR_Xheight_fp
+\fp_new:N \g_BBLR_Dabscissa_fp
+\fp_new:N \g_BBLR_Dordinate_fp
+\fp_new:N \g_BBLR_diameter_fp
+\fp_gset:Nn \g_BBLR_diameter_fp{0.2}
+\fp_new:N \g_BBLR_line_base_length_fp
+\fp_new:N \g_BBLR_scale_factor_fp
+\str_new:N \c_BBLR_point_code_str
+\str_new:N \g_BBLR_labelA_str
+\str_new:N \g_BBLR_labelB_str
+\str_new:N \g_BBLR_labelS_str
+\NewDocumentCommand{\lrfilename}{m}{
+\tl_gset:Nn \g_BBLR_file_name_tl {#1}
+}
+\NewDocumentCommand{\lraskfilename}{}{
+\ior_get_term:nN {filename ? } \g_BBLR_file_name_tl
+\tl_trim_spaces:N \g_BBLR_file_name_tl
+}
+\NewDocumentCommand{\lrcomputation}{}{%
+\bool_gset_false:N \g_BBLR_data_eof_bool
+\int_zero:N \g_BBLR_number_of_points_int
+\fp_zero:N \g_BBLR_mean_abscissa_fp
+\fp_zero:N \g_BBLR_mean_ordinate_fp
+\ior_open:Nn \g_BBLR_file_ior \g_BBLR_file_name_tl
+\bool_until_do:Nn \g_BBLR_data_eof_bool {
+ \ior_str_get:NN \g_BBLR_file_ior \g_BBLR_file_line_tl
+ \if_eof:w \g_BBLR_file_ior
+ \bool_gset_true:N \g_BBLR_data_eof_bool
+ \else:
+ \int_incr:N \g_BBLR_number_of_points_int
+ \BBLR_decode_data:
+ \fp_gset:Nn \g_BBLR_mean_abscissa_fp
+ {\g_BBLR_mean_abscissa_fp + \g_BBLR_abscissa_fp}
+ \fp_gset:Nn \g_BBLR_mean_ordinate_fp
+ {\g_BBLR_mean_ordinate_fp + \g_BBLR_ordinate_fp}
+ \fi:
+}
+\ior_close:N \g_BBLR_file_ior
+\fp_gset:Nn \g_BBLR_mean_abscissa_fp
+{\g_BBLR_mean_abscissa_fp / \g_BBLR_number_of_points_int}
+\fp_gset:Nn \g_BBLR_mean_ordinate_fp
+{\g_BBLR_mean_ordinate_fp / \g_BBLR_number_of_points_int}
+\fp_zero:N \g_BBLR_abscissa_SecOrdMoment_fp
+\fp_zero:N \g_BBLR_ordinate_SecOrdMoment_fp
+\fp_zero:N \g_BBLR_mixed_SecOrdMoment_fp
+\fp_gset_eq:NN \g_BBLR_min_abscissa_fp \g_BBLR_mean_abscissa_fp
+\fp_gset_eq:NN \g_BBLR_min_ordinate_fp \g_BBLR_mean_ordinate_fp
+\fp_gset_eq:NN \g_BBLR_max_abscissa_fp \g_BBLR_mean_abscissa_fp
+\fp_gset_eq:NN \g_BBLR_max_ordinate_fp \g_BBLR_mean_ordinate_fp
+\ior_open:Nn \g_BBLR_file_ior \g_BBLR_file_name_tl
+\int_zero:N \g_BBLR_rec_count_int
+\int_do_until:nn
+{\g_BBLR_rec_count_int = \g_BBLR_number_of_points_int}
+{
+ \ior_str_get:NN \g_BBLR_file_ior \g_BBLR_file_line_tl
+ \int_incr:N \g_BBLR_rec_count_int
+ \BBLR_decode_data:
+ \fp_gset:Nn \g_tmpa_fp
+ {\g_BBLR_abscissa_fp - \g_BBLR_mean_abscissa_fp}
+ \fp_gset:Nn \g_tmpb_fp
+ {\g_BBLR_ordinate_fp - \g_BBLR_mean_ordinate_fp}
+ \fp_gset:Nn \g_BBLR_abscissa_SecOrdMoment_fp
+ {\g_BBLR_abscissa_SecOrdMoment_fp + \g_tmpa_fp * \g_tmpa_fp}
+ \fp_gset:Nn \g_BBLR_mixed_SecOrdMoment_fp
+ {\g_BBLR_mixed_SecOrdMoment_fp + \g_tmpa_fp * \g_tmpb_fp}
+ \fp_gset:Nn \g_BBLR_ordinate_SecOrdMoment_fp
+ {\g_BBLR_ordinate_SecOrdMoment_fp + \g_tmpb_fp * \g_tmpb_fp}
+\fp_gset:Nn \g_BBLR_min_abscissa_fp
+{min(\g_BBLR_min_abscissa_fp, \g_BBLR_abscissa_fp)}
+\fp_gset:Nn \g_BBLR_min_ordinate_fp
+{min(\g_BBLR_min_ordinate_fp, \g_BBLR_ordinate_fp)}
+\fp_gset:Nn \g_BBLR_max_abscissa_fp
+{max(\g_BBLR_max_abscissa_fp, \g_BBLR_abscissa_fp)}
+\fp_gset:Nn \g_BBLR_max_ordinate_fp
+{max(\g_BBLR_max_ordinate_fp, \g_BBLR_ordinate_fp)}
+}
+\ior_close:N \g_BBLR_file_ior
+\fp_gset:Nn \g_BBLR_abscissa_SecOrdMoment_fp
+{\g_BBLR_abscissa_SecOrdMoment_fp / \g_BBLR_number_of_points_int}
+\fp_gset:Nn \g_BBLR_mixed_SecOrdMoment_fp
+{\g_BBLR_mixed_SecOrdMoment_fp / \g_BBLR_number_of_points_int}
+\fp_gset:Nn \g_BBLR_ordinate_SecOrdMoment_fp
+{\g_BBLR_ordinate_SecOrdMoment_fp / \g_BBLR_number_of_points_int}
+\fp_gset:Nn \g_BBLR_Dabscissa_fp
+{\g_BBLR_max_abscissa_fp - \g_BBLR_min_abscissa_fp }
+\fp_gset:Nn \g_BBLR_Dordinate_fp
+{\g_BBLR_max_ordinate_fp - \g_BBLR_min_ordinate_fp }
+\fp_gset:Nn \g_BBLR_slope_A_fp
+{\g_BBLR_mixed_SecOrdMoment_fp / \g_BBLR_abscissa_SecOrdMoment_fp }
+\fp_gset:Nn \g_BBLR_intercept_A_fp
+{\g_BBLR_mean_ordinate_fp - \g_BBLR_slope_A_fp * \g_BBLR_mean_abscissa_fp}
+\fp_gset:Nn \g_BBLR_slope_B_fp
+{\g_BBLR_ordinate_SecOrdMoment_fp / \g_BBLR_mixed_SecOrdMoment_fp}
+\fp_gset:Nn \g_BBLR_intercept_B_fp
+{\g_BBLR_mean_ordinate_fp - \g_BBLR_slope_B_fp * \g_BBLR_mean_abscissa_fp}
+\fp_gset:Nn \g_BBLR_diag_diff_fp
+{\g_BBLR_abscissa_SecOrdMoment_fp - \g_BBLR_ordinate_SecOrdMoment_fp}
+\fp_gset:Nn \g_BBLR_eig_diff_fp
+{sqrt(\g_BBLR_diag_diff_fp * \g_BBLR_diag_diff_fp +
+ 4 * \g_BBLR_mixed_SecOrdMoment_fp * \g_BBLR_mixed_SecOrdMoment_fp)}
+\fp_gset:Nn \g_BBLR_cos_fp%
+{sqrt((1 + \g_BBLR_diag_diff_fp / \g_BBLR_eig_diff_fp) / 2)}
+\fp_gset:Nn \g_BBLR_sig_sin_fp {\fp_sign:n {\g_BBLR_mixed_SecOrdMoment_fp}}
+\fp_gset:Nn \g_BBLR_sin_fp
+{\g_BBLR_sig_sin_fp*sqrt((1-\g_BBLR_diag_diff_fp / \g_BBLR_eig_diff_fp) / 2)}
+\fp_gset:Nn \g_BBLR_slope_S_fp
+{\g_BBLR_sin_fp / \g_BBLR_cos_fp }
+\fp_gset:Nn \g_BBLR_intercept_S_fp
+{\g_BBLR_mean_ordinate_fp - \g_BBLR_slope_S_fp * \g_BBLR_mean_abscissa_fp}
+}
+\NewDocumentCommand{\lrprint}{}{
+\begin{center}
+\begin{tabular}{| l | r |} \hline
+ Data~File: & \g_BBLR_file_name_tl \\ \hline
+ Number~of~points: & \int_use:N\g_BBLR_number_of_points_int \\ \hline
+ Mean~values~of~the~coordinates: &%
+ $\fp_use:N \g_BBLR_mean_abscissa_fp$ \\ &
+ $\fp_use:N \g_BBLR_mean_ordinate_fp$ \\ \hline
+ Minimum~values~of~the~coordinates: &%
+ $\fp_use:N \g_BBLR_min_abscissa_fp$ \\ &
+ $\fp_use:N \g_BBLR_min_ordinate_fp$ \\ \hline
+ Maximum~values~of~the~coordinates: &%
+ $\fp_use:N \g_BBLR_max_abscissa_fp$ \\ &
+ $\fp_use:N \g_BBLR_max_ordinate_fp$ \\ \hline
+ {Second~order~moments}\phantom{xxxxxxxxx}{abscissa} &%
+ $\fp_use:N \g_BBLR_abscissa_SecOrdMoment_fp$ \\
+ \multicolumn{1}{|r|}{mixed} & %
+$\fp_use:N \g_BBLR_mixed_SecOrdMoment_fp$ ~ \\
+\multicolumn{1}{|r|}{ordinate} & %
+$\fp_use:N \g_BBLR_ordinate_SecOrdMoment_fp$ \\ \hline
+ Slope~and~intercept~of~optimal~line & $\fp_use:N \g_BBLR_slope_A_fp$ \\
+ (estimated~with~errors~in~ordinate)&$\fp_use:N \g_BBLR_intercept_A_fp$\\ \hline
+ Slope~and~intercept~of~optimal~line & $\fp_use:N \g_BBLR_slope_B_fp$ \\
+ (estimated~with~errors~in~abscissa)&$\fp_use:N \g_BBLR_intercept_B_fp$\\ \hline
+ Components~of~unit~vector~along~the~line & $\fp_use:N \g_BBLR_cos_fp$ \\
+ & $\fp_use:N \g_BBLR_sin_fp$ \\
+ Slope~and~intercept~of~optimal~line &$\fp_use:N \g_BBLR_slope_S_fp$ \\
+(estimated~with~symmetric~regression) &
+ $\fp_use:N \g_BBLR_intercept_S_fp$\\ \hline
+\end{tabular}
+\end{center}
+}
+\NewDocumentCommand{\lrplot}{mmmmm}{%
+\fp_gset:Nn \g_BBLR_base_fp {#1}
+\fp_gset:Nn \g_BBLR_Xbase_fp {\g_BBLR_base_fp - 0.6}
+\fp_gset:Nn \g_BBLR_scale_factor_fp{\g_BBLR_Xbase_fp / \g_BBLR_Dabscissa_fp}
+\fp_gset:Nn \g_BBLR_Xheight_fp {\g_BBLR_Dordinate_fp * \g_BBLR_scale_factor_fp}
+\fp_gset:Nn \g_BBLR_height_fp {\g_BBLR_Xheight_fp + 0.6}
+\str_gset:Nn \g_BBLR_point_code_str {#2}
+\str_gset:Nn \g_BBLR_labelA_str {#3}
+\str_gset:Nn \g_BBLR_labelB_str {#4}
+\str_gset:Nn \g_BBLR_labelS_str {#5}
+\bool_gset:Nn \g_BBLR_plot_points_bool
+{!(\str_if_eq_p:NN \g_BBLR_point_code_str \c_BBLR_minus_str)}
+\bool_gset:Nn \g_BBLR_plot_lineA_bool
+{!(\str_if_eq_p:NN \g_BBLR_labelA_str \c_BBLR_minus_str)}
+\bool_gset:Nn \g_BBLR_plot_lineB_bool
+{!(\str_if_eq_p:NN \g_BBLR_labelB_str \c_BBLR_minus_str)}
+\bool_gset:Nn \g_BBLR_plot_lineS_bool
+{!(\str_if_eq_p:NN \g_BBLR_labelS_str \c_BBLR_minus_str)}
+\setlength{\unitlength}{1.0cm}
+\fp_gset:Nn \g_tmpa_fp {\g_BBLR_Xbase_fp +0.2}
+\fp_gset:Nn \g_tmpb_fp {\g_BBLR_Xheight_fp +0.1}
+\begin{picture}(\fp_use:N\g_BBLR_base_fp,\fp_use:N\g_BBLR_height_fp)(-0.3,-0.3)
+\put(-0.1,-0.1){\line(1,0){\fp_use:N\g_tmpa_fp}}
+\put(-0.1,\fp_use:N\g_tmpb_fp){\line(1,0){\fp_use:N\g_tmpa_fp}}
+\fp_gset:Nn \g_tmpa_fp {\g_tmpa_fp -0.1}
+\fp_gset:Nn \g_tmpb_fp {\g_tmpb_fp +0.1}
+\put(-0.1,-0.1){\line(0,1){\fp_use:N\g_tmpb_fp}}
+\put(\fp_use:N\g_tmpa_fp,-0.1){\line(0,1){\fp_use:N\g_tmpb_fp}}
+\thicklines
+\bool_if:nT {\g_BBLR_plot_points_bool}{\BBLR_plot_points:}
+\bool_if:nT {\g_BBLR_plot_lineA_bool}{
+\BBLR_draw_line:NNN \g_BBLR_slope_A_fp\g_BBLR_intercept_A_fp\g_BBLR_labelA_str}
+\bool_if:nT {\g_BBLR_plot_lineB_bool}{
+\BBLR_draw_line:NNN \g_BBLR_slope_B_fp\g_BBLR_intercept_B_fp\g_BBLR_labelB_str}
+\bool_if:nT {\g_BBLR_plot_lineS_bool}{
+\BBLR_draw_line:NNN \g_BBLR_slope_S_fp\g_BBLR_intercept_S_fp\g_BBLR_labelS_str}
+\end{picture}
+}%
+\cs_new_protected:Nn \BBLR_decode_data: {
+\tl_trim_spaces:N \g_BBLR_file_line_tl
+\int_gzero:N \g_tmpa_int
+\int_gzero:N \g_BBLR_first_separator_int
+\int_gzero:N \g_BBLR_last_separator_int
+\int_gset:Nn \g_BBLR_record_length_int {
+\str_count:N \g_BBLR_file_line_tl}
+\str_map_variable:NNn \g_BBLR_file_line_tl \g_tmpa_str {
+\int_gincr:N \g_tmpa_int
+\bool_lazy_or:nnTF
+{\str_if_eq_p:NN \g_tmpa_str \c_BBLR_comma_str}
+{\str_if_eq_p:NN \g_tmpa_str \c_BBLR_space_str}
+{\int_gset_eq:NN \g_BBLR_last_separator_int \g_tmpa_int
+\int_if_zero:nTF {\g_BBLR_first_separator_int}
+{\int_gset_eq:NN \g_BBLR_first_separator_int \g_tmpa_int
+}{\prg_do_nothing:}
+}{\prg_do_nothing:}
+}
+\int_gincr:N \g_BBLR_last_separator_int
+\int_gdecr:N \g_BBLR_first_separator_int
+\fp_gset:Nn \g_BBLR_abscissa_fp{
+\str_range:Nnn \g_BBLR_file_line_tl{1}{\g_BBLR_first_separator_int}}
+\fp_gset:Nn \g_BBLR_ordinate_fp{
+\str_range:Nnn \g_BBLR_file_line_tl
+{\g_BBLR_last_separator_int}{\g_BBLR_record_length_int}}
+}
+\cs_new_protected:Nn \BBLR_plot_points: {
+\ior_open:Nn \g_BBLR_file_ior \g_BBLR_file_name_tl
+\int_zero:N \g_BBLR_rec_count_int
+\int_do_until:nn
+{\g_BBLR_rec_count_int = \g_BBLR_number_of_points_int}
+{
+ \ior_str_get:NN \g_BBLR_file_ior \g_BBLR_file_line_tl
+ \int_incr:N \g_BBLR_rec_count_int
+ \BBLR_decode_data:
+ \fp_gset:Nn \g_tmpa_fp{(\g_BBLR_abscissa_fp-\g_BBLR_min_abscissa_fp)*
+ \g_BBLR_scale_factor_fp}
+ \fp_gset:Nn \g_tmpb_fp{(\g_BBLR_ordinate_fp-\g_BBLR_min_ordinate_fp)*
+ \g_BBLR_scale_factor_fp}
+ \put(\fp_use:N\g_tmpa_fp, \fp_use:N\g_tmpb_fp){
+ {\circle*{\fp_use:N\g_BBLR_diameter_fp}}}
+}
+\ior_close:N \g_BBLR_file_ior
+}
+\cs_new_protected:Nn \BBLR_draw_line:NNN {
+\fp_gset:Nn \fp_tmpa_fp {#1 * \g_BBLR_min_abscissa_fp + #2 }
+\fp_compare:nTF{\fp_tmpa_fp > \g_BBLR_max_ordinate_fp}{
+\fp_gset:Nn \g_BBLR_min_draw_abscissa_fp {(\g_BBLR_max_ordinate_fp -#2) / #1}
+}{
+\fp_compare:nTF{\fp_tmpa_fp < \g_BBLR_min_ordinate_fp}{
+\fp_gset:Nn \g_BBLR_min_draw_abscissa_fp {(\g_BBLR_min_ordinate_fp - #2) / #1}
+}{
+\fp_gset:Nn \g_BBLR_min_draw_abscissa_fp { \g_BBLR_min_abscissa_fp }
+}}
+\fp_gset:Nn \fp_tmpa_fp {#1 * \g_BBLR_max_abscissa_fp + #2 }
+\fp_compare:nTF{\fp_tmpa_fp > \g_BBLR_max_ordinate_fp}{
+\fp_gset:Nn \g_BBLR_max_draw_abscissa_fp {(\g_BBLR_max_ordinate_fp -#2) / #1}
+}{
+\fp_compare:nTF{\fp_tmpa_fp < \g_BBLR_min_ordinate_fp}{
+\fp_gset:Nn \g_BBLR_max_draw_abscissa_fp { (\g_BBLR_min_ordinate_fp - #2) / #1}
+}{
+\fp_gset:Nn \g_BBLR_max_draw_abscissa_fp { \g_BBLR_max_abscissa_fp }
+}}
+\fp_gset:Nn \fp_tmpa_fp {(\g_BBLR_min_draw_abscissa_fp -
+\g_BBLR_min_abscissa_fp)* \g_BBLR_scale_factor_fp}
+\fp_gset:Nn \fp_tmpb_fp {(#1 * \g_BBLR_min_draw_abscissa_fp + #2 -
+\g_BBLR_min_ordinate_fp)* \g_BBLR_scale_factor_fp}
+\fp_gset:Nn \fp_BBLR_line_base_length_fp{(\g_BBLR_max_draw_abscissa_fp -
+\g_BBLR_min_draw_abscissa_fp) * \g_BBLR_scale_factor_fp}
+\put(\fp_use:N\fp_tmpa_fp, \fp_use:N\fp_tmpb_fp){
+\line(1.,\fp_use:N #1){\fp_use:N\fp_BBLR_line_base_length_fp}}
+\bool_if:nF {\str_if_eq_p:NN #3 \c_BBLR_plus_str}{
+\fp_gset:Nn \fp_tmpa_fp
+{0.08 * \g_BBLR_min_draw_abscissa_fp + 0.92 * \g_BBLR_max_draw_abscissa_fp}
+\fp_gset:Nn \fp_tmpb_fp {#1 * \fp_tmpa_fp + #2 }
+\fp_gset:Nn \fp_tmpa_fp
+{(\fp_tmpa_fp-\g_BBLR_min_abscissa_fp)*\g_BBLR_scale_factor_fp
++ 0.3 * #1 /sqrt(1.+#1*#1)}
+\fp_gset:Nn \fp_tmpb_fp
+{(\fp_tmpb_fp-\g_BBLR_min_ordinate_fp)* \g_BBLR_scale_factor_fp
+- 0.3 /sqrt(1.+#1*#1)}
+\put(\fp_use:N\fp_tmpa_fp, \fp_use:N\fp_tmpb_fp){#3}
+}
+}
+\ExplSyntaxOff
+\endinput
+%%
+%% End of file `linearregression.sty'.