; LLVM IR from Dimandragon/non-parametric-dsp :: alglib-cpp/src (interpolation)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"struct.alglib_impl::lsfitstate" = type { i64, i64, i64, i64, double, i64, double, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", i64, i64, i64, double, double, %"struct.alglib_impl::ae_matrix", i64, i64, i64, i8, i8, i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", double, i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", double, i64, i64, i64, double, double, double, double, double, %"struct.alglib_impl::lsfitreport", %"struct.alglib_impl::minlmstate", %"struct.alglib_impl::minlmreport", i64, i64, %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::sparsematrix" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::ae_matrix" = type { i64, i64, i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.1 }
%union.anon.1 = type { ptr }
%"struct.alglib_impl::lsfitreport" = type { i64, double, i64, i64, double, double, double, double, double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double }
%"struct.alglib_impl::minlmstate" = type { i64, i64, i64, double, double, i64, i8, double, i64, i8, i64, i8, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", i8, i8, i8, i8, i8, i8, i64, %"struct.alglib_impl::ae_vector", double, i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", i64, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i64, i64, double, double, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, i8, %"struct.alglib_impl::smoothnessmonitor", double, %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64, i64, i64, i8, i64, i64, %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::minlbfgsstate", %"struct.alglib_impl::minlbfgsreport", %"struct.alglib_impl::minqpstate", %"struct.alglib_impl::minqpreport", %"struct.alglib_impl::minlmstepfinder" }
%"struct.alglib_impl::smoothnessmonitor" = type { i64, i64, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, double, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::rcommstate", i8, i8, i64, i64, double, double, i8, %"struct.alglib_impl::optguardreport", double, double, %"struct.alglib_impl::optguardnonc0report", %"struct.alglib_impl::optguardnonc0report", double, double, %"struct.alglib_impl::optguardnonc1test0report", %"struct.alglib_impl::optguardnonc1test0report", double, double, %"struct.alglib_impl::optguardnonc1test1report", %"struct.alglib_impl::optguardnonc1test1report", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardreport" = type { i8, i8, i64, double, i8, i8, i8, i64, double, i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::optguardnonc0report" = type { i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64 }
%"struct.alglib_impl::optguardnonc1test0report" = type { i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64 }
%"struct.alglib_impl::optguardnonc1test1report" = type { i8, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64 }
%"struct.alglib_impl::minlbfgsstate" = type { i64, i64, double, double, double, i64, i8, double, %"struct.alglib_impl::ae_vector", double, i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, %"struct.alglib_impl::ae_vector", double, double, %"struct.alglib_impl::ae_vector", i64, double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i64, %"struct.alglib_impl::precbuflbfgs", %"struct.alglib_impl::precbuflowrank", double, double, double, double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i8, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", i8, i8, i8, i64, %"struct.alglib_impl::ae_vector", double, i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", double, %"struct.alglib_impl::rcommstate", i64, i64, i64, %"struct.alglib_impl::linminstate", i64, %"struct.alglib_impl::smoothnessmonitor", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::precbuflbfgs" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::precbuflowrank" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::linminstate" = type { i8, i8, i64, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double }
%"struct.alglib_impl::minlbfgsreport" = type { i64, i64, i64 }
%"struct.alglib_impl::minqpstate" = type { i64, %"struct.alglib_impl::qqpsettings", %"struct.alglib_impl::qpdenseaulsettings", double, i64, i8, i8, i64, i64, %"struct.alglib_impl::convexquadraticmodel", i8, %"struct.alglib_impl::sparsematrix", i8, double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::xlinearconstraints", %"struct.alglib_impl::xquadraticconstraints", %"struct.alglib_impl::xconicconstraints", %"struct.alglib_impl::ae_vector", double, i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::presolveinfo", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::qqpbuffers", %"struct.alglib_impl::qpdenseaulbuffers", %"struct.alglib_impl::vipmstate", %"struct.alglib_impl::ipm2state", %"struct.alglib_impl::ecqpstate", %"struct.alglib_impl::gqpipmstate", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::xconicconstraints" }
%"struct.alglib_impl::qqpsettings" = type { double, double, double, i64, i8, i8, i64, i64, i64, i64 }
%"struct.alglib_impl::qpdenseaulsettings" = type { double, i64, double }
%"struct.alglib_impl::convexquadraticmodel" = type { i64, i64, double, double, double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i8, i8, i8, i8 }
%"struct.alglib_impl::xlinearconstraints" = type { i64, i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::xquadraticconstraints" = type { i64, %"struct.alglib_impl::ae_obj_array", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_obj_array" = type { i64, i64, i8, ptr, ptr, ptr, ptr, %"struct.alglib_impl::ae_lock", %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_lock" = type { ptr, %"struct.alglib_impl::ae_dyn_block", i8 }
%"struct.alglib_impl::presolveinfo" = type { i64, i64, i64, i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::xquadraticconstraints", %"struct.alglib_impl::xconicconstraints", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::xquadraticconstraints", %"struct.alglib_impl::xconicconstraints", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::presolverstack", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::presolvebuffers" }
%"struct.alglib_impl::presolverstack" = type { i64, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::presolvebuffers" = type { %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::dynamiccrsqconstraint" }
%"struct.alglib_impl::niset" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64 }
%"struct.alglib_impl::dynamiccrsqconstraint" = type { i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::dynamiccrs", double, double, i8 }
%"struct.alglib_impl::dynamiccrs" = type { i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ae_nxpool" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_dyn_block", %"struct.alglib_impl::ae_lock", %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::qqpbuffers" = type { i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", i8, double, double, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sactiveset", %"struct.alglib_impl::ae_vector", i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsebuffers", i64, i64, i64, i64 }
%"struct.alglib_impl::sactiveset" = type { i64, i64, %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i64, %"struct.alglib_impl::ae_vector", i64, i64, i8, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::snnlssolver", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::snnlssolver" = type { i64, i64, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::sparsebuffers" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::qpdenseaulbuffers" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::qqpsettings", %"struct.alglib_impl::qqpbuffers", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::convexquadraticmodel", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::vipmstate" = type { i8, i8, i64, i64, double, double, double, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", i64, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, i64, i64, i8, i8, i64, i8, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::vipmreducedsparsesystem", %"struct.alglib_impl::vipmrighthandside", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::vipmvars", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::vipmreducedsparsesystem" = type { %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::spcholanalysis", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::spcholanalysis" = type { i64, i64, i64, i8, i64, double, double, double, double, %"struct.alglib_impl::ae_vector", i8, i8, i8, i8, i8, %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, i8, %"struct.alglib_impl::spcholadj", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::amdbuffer", %"struct.alglib_impl::priorityamdbuffers", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::spcholadj" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::amdbuffer" = type { i64, i8, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::amdllmatrix", %"struct.alglib_impl::amdvertexset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::niset", %"struct.alglib_impl::niset", %"struct.alglib_impl::amdknset", %"struct.alglib_impl::niset", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix" }
%"struct.alglib_impl::amdllmatrix" = type { i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64 }
%"struct.alglib_impl::amdvertexset" = type { i64, i8, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::amdknset" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64 }
%"struct.alglib_impl::priorityamdbuffers" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::amdbuffer", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::vipmrighthandside" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::vipmvars" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ipm2state" = type { i64, i64, i64, double, double, double, i64, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", i8, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ipm2vars", %"struct.alglib_impl::ipm2vars", %"struct.alglib_impl::ipm2vars", %"struct.alglib_impl::ipm2vars", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ipm2righthandside", i64, i64, i8, i8, i8, %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::ipm2reducedsystem", %"struct.alglib_impl::ipm2righthandside", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ipm2vars" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::stimer" = type { i64, i64, i8 }
%"struct.alglib_impl::ipm2reducedsystem" = type { %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::spcholanalysis", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ipm2righthandside" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::ecqpstate" = type { %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::spcholanalysis", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::fblsgmresstate", i64, i64, i8, i8, %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer" }
%"struct.alglib_impl::fblsgmresstate" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, double, double, double, double, i64, i64, double, %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::gqpipmstate" = type { i8, i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", i64, double, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::xquadraticconstraints", %"struct.alglib_impl::xconicconstraints", double, i64, i64, i64, i8, i8, %"struct.alglib_impl::stimer", %"struct.alglib_impl::gipmstate", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::spcholanalysis", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::gipmstate" = type { i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, i64, i64, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, i8, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, double, double, double, i64, %"struct.alglib_impl::gipmvars", %"struct.alglib_impl::gipmvars", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", double, i64, %"struct.alglib_impl::nlpfilter", i8, i8, i8, i64, i64, %"struct.alglib_impl::stimer", %"struct.alglib_impl::ae_nxpool", %"struct.alglib_impl::gipmrhs", %"struct.alglib_impl::gipmcondensedsystem", %"struct.alglib_impl::gipmvars", %"struct.alglib_impl::gipmvars", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::gipmvars", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::nlpfilter" = type { double, i64, double, double, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::gipmrhs" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::gipmcondensedsystem" = type { %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::gipmvars" = type { i64, i64, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::varsfuncjac" = type { i64, i64, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::xconicconstraints" = type { i64, %"struct.alglib_impl::ae_obj_array" }
%"struct.alglib_impl::minqpreport" = type { i64, i64, i64, i64, i64, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::minlmstepfinder" = type { i64, i64, double, i64, i64, double, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", i8, i8, double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", double, double, %"struct.alglib_impl::minqpstate", %"struct.alglib_impl::minqpreport", %"struct.alglib_impl::sparsematrix" }
%"struct.alglib_impl::minlmreport" = type { i64, i64, i64, i64, i64, i64, i64 }
%"struct.alglib_impl::rcommstate" = type { i32, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }

@.str.638 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.639 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.640 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.641 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.642 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.643 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.644 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.645 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.646 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.647 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.648 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.649 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.650 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.651 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.652 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.653 = external hidden unnamed_addr constant [35 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

declare void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext, ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl14lsfititerationEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1) #2 {
  %3 = alloca i1, align 1
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca double, align 8
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca i8, align 1
  %25 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #4
  %26 = load ptr, ptr %4, align 8, !tbaa !5
  %27 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %26, i32 0, i32 73
  %28 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %27, i32 0, i32 0
  %29 = load i32, ptr %28, align 8, !tbaa !9
  %30 = icmp sge i32 %29, 0
  br i1 %30, label %31, label %158

31:                                               ; preds = %2
  %32 = load ptr, ptr %4, align 8, !tbaa !5
  %33 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %32, i32 0, i32 73
  %34 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %33, i32 0, i32 1
  %35 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %34, i32 0, i32 4
  %36 = load ptr, ptr %35, align 8, !tbaa !81
  %37 = getelementptr inbounds i64, ptr %36, i64 0
  %38 = load i64, ptr %37, align 8, !tbaa !82
  store i64 %38, ptr %12, align 8, !tbaa !82
  %39 = load ptr, ptr %4, align 8, !tbaa !5
  %40 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %39, i32 0, i32 73
  %41 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %40, i32 0, i32 1
  %42 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %41, i32 0, i32 4
  %43 = load ptr, ptr %42, align 8, !tbaa !81
  %44 = getelementptr inbounds i64, ptr %43, i64 1
  %45 = load i64, ptr %44, align 8, !tbaa !82
  store i64 %45, ptr %13, align 8, !tbaa !82
  %46 = load ptr, ptr %4, align 8, !tbaa !5
  %47 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %46, i32 0, i32 73
  %48 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %47, i32 0, i32 1
  %49 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %48, i32 0, i32 4
  %50 = load ptr, ptr %49, align 8, !tbaa !81
  %51 = getelementptr inbounds i64, ptr %50, i64 2
  %52 = load i64, ptr %51, align 8, !tbaa !82
  store i64 %52, ptr %14, align 8, !tbaa !82
  %53 = load ptr, ptr %4, align 8, !tbaa !5
  %54 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %53, i32 0, i32 73
  %55 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %54, i32 0, i32 1
  %56 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %55, i32 0, i32 4
  %57 = load ptr, ptr %56, align 8, !tbaa !81
  %58 = getelementptr inbounds i64, ptr %57, i64 3
  %59 = load i64, ptr %58, align 8, !tbaa !82
  store i64 %59, ptr %20, align 8, !tbaa !82
  %60 = load ptr, ptr %4, align 8, !tbaa !5
  %61 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %60, i32 0, i32 73
  %62 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %61, i32 0, i32 1
  %63 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %62, i32 0, i32 4
  %64 = load ptr, ptr %63, align 8, !tbaa !81
  %65 = getelementptr inbounds i64, ptr %64, i64 4
  %66 = load i64, ptr %65, align 8, !tbaa !82
  store i64 %66, ptr %21, align 8, !tbaa !82
  %67 = load ptr, ptr %4, align 8, !tbaa !5
  %68 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %67, i32 0, i32 73
  %69 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %68, i32 0, i32 1
  %70 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %69, i32 0, i32 4
  %71 = load ptr, ptr %70, align 8, !tbaa !81
  %72 = getelementptr inbounds i64, ptr %71, i64 5
  %73 = load i64, ptr %72, align 8, !tbaa !82
  store i64 %73, ptr %22, align 8, !tbaa !82
  %74 = load ptr, ptr %4, align 8, !tbaa !5
  %75 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %74, i32 0, i32 73
  %76 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %75, i32 0, i32 1
  %77 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %76, i32 0, i32 4
  %78 = load ptr, ptr %77, align 8, !tbaa !81
  %79 = getelementptr inbounds i64, ptr %78, i64 6
  %80 = load i64, ptr %79, align 8, !tbaa !82
  store i64 %80, ptr %23, align 8, !tbaa !82
  %81 = load ptr, ptr %4, align 8, !tbaa !5
  %82 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %81, i32 0, i32 73
  %83 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %82, i32 0, i32 3
  %84 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %83, i32 0, i32 4
  %85 = load ptr, ptr %84, align 8, !tbaa !81
  %86 = getelementptr inbounds double, ptr %85, i64 0
  %87 = load double, ptr %86, align 8, !tbaa !83
  store double %87, ptr %6, align 8, !tbaa !83
  %88 = load ptr, ptr %4, align 8, !tbaa !5
  %89 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %88, i32 0, i32 73
  %90 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %89, i32 0, i32 3
  %91 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %90, i32 0, i32 4
  %92 = load ptr, ptr %91, align 8, !tbaa !81
  %93 = getelementptr inbounds double, ptr %92, i64 1
  %94 = load double, ptr %93, align 8, !tbaa !83
  store double %94, ptr %7, align 8, !tbaa !83
  %95 = load ptr, ptr %4, align 8, !tbaa !5
  %96 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %95, i32 0, i32 73
  %97 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %96, i32 0, i32 3
  %98 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %97, i32 0, i32 4
  %99 = load ptr, ptr %98, align 8, !tbaa !81
  %100 = getelementptr inbounds double, ptr %99, i64 2
  %101 = load double, ptr %100, align 8, !tbaa !83
  store double %101, ptr %8, align 8, !tbaa !83
  %102 = load ptr, ptr %4, align 8, !tbaa !5
  %103 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %102, i32 0, i32 73
  %104 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %103, i32 0, i32 3
  %105 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %104, i32 0, i32 4
  %106 = load ptr, ptr %105, align 8, !tbaa !81
  %107 = getelementptr inbounds double, ptr %106, i64 3
  %108 = load double, ptr %107, align 8, !tbaa !83
  store double %108, ptr %9, align 8, !tbaa !83
  %109 = load ptr, ptr %4, align 8, !tbaa !5
  %110 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %109, i32 0, i32 73
  %111 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %110, i32 0, i32 3
  %112 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %111, i32 0, i32 4
  %113 = load ptr, ptr %112, align 8, !tbaa !81
  %114 = getelementptr inbounds double, ptr %113, i64 4
  %115 = load double, ptr %114, align 8, !tbaa !83
  store double %115, ptr %10, align 8, !tbaa !83
  %116 = load ptr, ptr %4, align 8, !tbaa !5
  %117 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %116, i32 0, i32 73
  %118 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %117, i32 0, i32 3
  %119 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %118, i32 0, i32 4
  %120 = load ptr, ptr %119, align 8, !tbaa !81
  %121 = getelementptr inbounds double, ptr %120, i64 5
  %122 = load double, ptr %121, align 8, !tbaa !83
  store double %122, ptr %11, align 8, !tbaa !83
  %123 = load ptr, ptr %4, align 8, !tbaa !5
  %124 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %123, i32 0, i32 73
  %125 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %124, i32 0, i32 3
  %126 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %125, i32 0, i32 4
  %127 = load ptr, ptr %126, align 8, !tbaa !81
  %128 = getelementptr inbounds double, ptr %127, i64 6
  %129 = load double, ptr %128, align 8, !tbaa !83
  store double %129, ptr %15, align 8, !tbaa !83
  %130 = load ptr, ptr %4, align 8, !tbaa !5
  %131 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %130, i32 0, i32 73
  %132 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %131, i32 0, i32 3
  %133 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %132, i32 0, i32 4
  %134 = load ptr, ptr %133, align 8, !tbaa !81
  %135 = getelementptr inbounds double, ptr %134, i64 7
  %136 = load double, ptr %135, align 8, !tbaa !83
  store double %136, ptr %16, align 8, !tbaa !83
  %137 = load ptr, ptr %4, align 8, !tbaa !5
  %138 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %137, i32 0, i32 73
  %139 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %138, i32 0, i32 3
  %140 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %139, i32 0, i32 4
  %141 = load ptr, ptr %140, align 8, !tbaa !81
  %142 = getelementptr inbounds double, ptr %141, i64 8
  %143 = load double, ptr %142, align 8, !tbaa !83
  store double %143, ptr %17, align 8, !tbaa !83
  %144 = load ptr, ptr %4, align 8, !tbaa !5
  %145 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %144, i32 0, i32 73
  %146 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %145, i32 0, i32 3
  %147 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %146, i32 0, i32 4
  %148 = load ptr, ptr %147, align 8, !tbaa !81
  %149 = getelementptr inbounds double, ptr %148, i64 9
  %150 = load double, ptr %149, align 8, !tbaa !83
  store double %150, ptr %18, align 8, !tbaa !83
  %151 = load ptr, ptr %4, align 8, !tbaa !5
  %152 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %151, i32 0, i32 73
  %153 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %152, i32 0, i32 3
  %154 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %153, i32 0, i32 4
  %155 = load ptr, ptr %154, align 8, !tbaa !81
  %156 = getelementptr inbounds double, ptr %155, i64 10
  %157 = load double, ptr %156, align 8, !tbaa !83
  store double %157, ptr %19, align 8, !tbaa !83
  br label %159

158:                                              ; preds = %2
  store i64 359, ptr %12, align 8, !tbaa !82
  store i64 -58, ptr %13, align 8, !tbaa !82
  store i64 -919, ptr %14, align 8, !tbaa !82
  store i64 -909, ptr %20, align 8, !tbaa !82
  store i64 81, ptr %21, align 8, !tbaa !82
  store i64 255, ptr %22, align 8, !tbaa !82
  store i64 74, ptr %23, align 8, !tbaa !82
  store double -7.880000e+02, ptr %6, align 8, !tbaa !83
  store double 8.090000e+02, ptr %7, align 8, !tbaa !83
  store double 2.050000e+02, ptr %8, align 8, !tbaa !83
  store double -8.380000e+02, ptr %9, align 8, !tbaa !83
  store double 9.390000e+02, ptr %10, align 8, !tbaa !83
  store double -5.260000e+02, ptr %11, align 8, !tbaa !83
  store double 7.630000e+02, ptr %15, align 8, !tbaa !83
  store double -5.410000e+02, ptr %16, align 8, !tbaa !83
  store double -6.980000e+02, ptr %17, align 8, !tbaa !83
  store double -9.000000e+02, ptr %18, align 8, !tbaa !83
  store double -3.180000e+02, ptr %19, align 8, !tbaa !83
  br label %159

159:                                              ; preds = %158, %31
  %160 = load ptr, ptr %4, align 8, !tbaa !5
  %161 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %160, i32 0, i32 73
  %162 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %161, i32 0, i32 0
  %163 = load i32, ptr %162, align 8, !tbaa !9
  %164 = icmp eq i32 %163, 0
  br i1 %164, label %165, label %166

165:                                              ; preds = %159
  br label %773

166:                                              ; preds = %159
  %167 = load ptr, ptr %4, align 8, !tbaa !5
  %168 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %167, i32 0, i32 73
  %169 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %168, i32 0, i32 0
  %170 = load i32, ptr %169, align 8, !tbaa !9
  %171 = icmp eq i32 %170, 1
  br i1 %171, label %172, label %173

172:                                              ; preds = %166
  br label %879

173:                                              ; preds = %166
  %174 = load ptr, ptr %4, align 8, !tbaa !5
  %175 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %174, i32 0, i32 73
  %176 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %175, i32 0, i32 0
  %177 = load i32, ptr %176, align 8, !tbaa !9
  %178 = icmp eq i32 %177, 2
  br i1 %178, label %179, label %180

179:                                              ; preds = %173
  br label %1004

180:                                              ; preds = %173
  %181 = load ptr, ptr %4, align 8, !tbaa !5
  %182 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %181, i32 0, i32 73
  %183 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %182, i32 0, i32 0
  %184 = load i32, ptr %183, align 8, !tbaa !9
  %185 = icmp eq i32 %184, 3
  br i1 %185, label %186, label %187

186:                                              ; preds = %180
  br label %1141

187:                                              ; preds = %180
  %188 = load ptr, ptr %4, align 8, !tbaa !5
  %189 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %188, i32 0, i32 73
  %190 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %189, i32 0, i32 0
  %191 = load i32, ptr %190, align 8, !tbaa !9
  %192 = icmp eq i32 %191, 4
  br i1 %192, label %193, label %194

193:                                              ; preds = %187
  br label %1217

194:                                              ; preds = %187
  %195 = load ptr, ptr %4, align 8, !tbaa !5
  %196 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %195, i32 0, i32 73
  %197 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %196, i32 0, i32 0
  %198 = load i32, ptr %197, align 8, !tbaa !9
  %199 = icmp eq i32 %198, 5
  br i1 %199, label %200, label %201

200:                                              ; preds = %194
  br label %1311

201:                                              ; preds = %194
  %202 = load ptr, ptr %4, align 8, !tbaa !5
  %203 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %202, i32 0, i32 73
  %204 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %203, i32 0, i32 0
  %205 = load i32, ptr %204, align 8, !tbaa !9
  %206 = icmp eq i32 %205, 6
  br i1 %206, label %207, label %208

207:                                              ; preds = %201
  br label %1514

208:                                              ; preds = %201
  %209 = load ptr, ptr %4, align 8, !tbaa !5
  %210 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %209, i32 0, i32 73
  %211 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %210, i32 0, i32 0
  %212 = load i32, ptr %211, align 8, !tbaa !9
  %213 = icmp eq i32 %212, 7
  br i1 %213, label %214, label %215

214:                                              ; preds = %208
  br label %1605

215:                                              ; preds = %208
  %216 = load ptr, ptr %4, align 8, !tbaa !5
  %217 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %216, i32 0, i32 73
  %218 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %217, i32 0, i32 0
  %219 = load i32, ptr %218, align 8, !tbaa !9
  %220 = icmp eq i32 %219, 8
  br i1 %220, label %221, label %222

221:                                              ; preds = %215
  br label %1716

222:                                              ; preds = %215
  %223 = load ptr, ptr %4, align 8, !tbaa !5
  %224 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %223, i32 0, i32 73
  %225 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %224, i32 0, i32 0
  %226 = load i32, ptr %225, align 8, !tbaa !9
  %227 = icmp eq i32 %226, 9
  br i1 %227, label %228, label %229

228:                                              ; preds = %222
  br label %1838

229:                                              ; preds = %222
  %230 = load ptr, ptr %4, align 8, !tbaa !5
  %231 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %230, i32 0, i32 73
  %232 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %231, i32 0, i32 0
  %233 = load i32, ptr %232, align 8, !tbaa !9
  %234 = icmp eq i32 %233, 10
  br i1 %234, label %235, label %236

235:                                              ; preds = %229
  br label %1924

236:                                              ; preds = %229
  %237 = load ptr, ptr %4, align 8, !tbaa !5
  %238 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %237, i32 0, i32 73
  %239 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %238, i32 0, i32 0
  %240 = load i32, ptr %239, align 8, !tbaa !9
  %241 = icmp eq i32 %240, 11
  br i1 %241, label %242, label %243

242:                                              ; preds = %236
  br label %1963

243:                                              ; preds = %236
  %244 = load ptr, ptr %4, align 8, !tbaa !5
  %245 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %244, i32 0, i32 73
  %246 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %245, i32 0, i32 0
  %247 = load i32, ptr %246, align 8, !tbaa !9
  %248 = icmp eq i32 %247, 12
  br i1 %248, label %249, label %250

249:                                              ; preds = %243
  br label %2096

250:                                              ; preds = %243
  %251 = load ptr, ptr %4, align 8, !tbaa !5
  %252 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %251, i32 0, i32 73
  %253 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %252, i32 0, i32 0
  %254 = load i32, ptr %253, align 8, !tbaa !9
  %255 = icmp eq i32 %254, 13
  br i1 %255, label %256, label %257

256:                                              ; preds = %250
  br label %2323

257:                                              ; preds = %250
  %258 = load ptr, ptr %4, align 8, !tbaa !5
  %259 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %258, i32 0, i32 73
  %260 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %259, i32 0, i32 0
  %261 = load i32, ptr %260, align 8, !tbaa !9
  %262 = icmp eq i32 %261, 14
  br i1 %262, label %263, label %264

263:                                              ; preds = %257
  br label %2492

264:                                              ; preds = %257
  %265 = load ptr, ptr %4, align 8, !tbaa !5
  %266 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %265, i32 0, i32 73
  %267 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %266, i32 0, i32 0
  %268 = load i32, ptr %267, align 8, !tbaa !9
  %269 = icmp eq i32 %268, 15
  br i1 %269, label %270, label %271

270:                                              ; preds = %264
  br label %2612

271:                                              ; preds = %264
  %272 = load ptr, ptr %4, align 8, !tbaa !5
  %273 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %272, i32 0, i32 73
  %274 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %273, i32 0, i32 0
  %275 = load i32, ptr %274, align 8, !tbaa !9
  %276 = icmp eq i32 %275, 16
  br i1 %276, label %277, label %278

277:                                              ; preds = %271
  br label %2724

278:                                              ; preds = %271
  %279 = load ptr, ptr %4, align 8, !tbaa !5
  %280 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %279, i32 0, i32 73
  %281 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %280, i32 0, i32 0
  %282 = load i32, ptr %281, align 8, !tbaa !9
  %283 = icmp eq i32 %282, 17
  br i1 %283, label %284, label %285

284:                                              ; preds = %278
  br label %2957

285:                                              ; preds = %278
  %286 = load ptr, ptr %4, align 8, !tbaa !5
  %287 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %286, i32 0, i32 73
  %288 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %287, i32 0, i32 0
  %289 = load i32, ptr %288, align 8, !tbaa !9
  %290 = icmp eq i32 %289, 18
  br i1 %290, label %291, label %292

291:                                              ; preds = %285
  br label %3037

292:                                              ; preds = %285
  %293 = load ptr, ptr %4, align 8, !tbaa !5
  %294 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %293, i32 0, i32 73
  %295 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %294, i32 0, i32 0
  %296 = load i32, ptr %295, align 8, !tbaa !9
  %297 = icmp eq i32 %296, 19
  br i1 %297, label %298, label %299

298:                                              ; preds = %292
  br label %3096

299:                                              ; preds = %292
  %300 = load ptr, ptr %4, align 8, !tbaa !5
  %301 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %300, i32 0, i32 73
  %302 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %301, i32 0, i32 0
  %303 = load i32, ptr %302, align 8, !tbaa !9
  %304 = icmp eq i32 %303, 20
  br i1 %304, label %305, label %306

305:                                              ; preds = %299
  br label %3400

306:                                              ; preds = %299
  %307 = load ptr, ptr %4, align 8, !tbaa !5
  %308 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %307, i32 0, i32 73
  %309 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %308, i32 0, i32 0
  %310 = load i32, ptr %309, align 8, !tbaa !9
  %311 = icmp eq i32 %310, 21
  br i1 %311, label %312, label %313

312:                                              ; preds = %306
  br label %3488

313:                                              ; preds = %306
  %314 = load ptr, ptr %4, align 8, !tbaa !5
  %315 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %314, i32 0, i32 73
  %316 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %315, i32 0, i32 0
  %317 = load i32, ptr %316, align 8, !tbaa !9
  %318 = icmp eq i32 %317, 22
  br i1 %318, label %319, label %320

319:                                              ; preds = %313
  br label %3632

320:                                              ; preds = %313
  %321 = load ptr, ptr %4, align 8, !tbaa !5
  %322 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %321, i32 0, i32 18
  %323 = load i64, ptr %322, align 8, !tbaa !84
  %324 = icmp eq i64 %323, 1
  br i1 %324, label %325, label %334

325:                                              ; preds = %320
  %326 = load ptr, ptr %4, align 8, !tbaa !5
  %327 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %326, i32 0, i32 15
  %328 = load i64, ptr %327, align 8, !tbaa !85
  %329 = load ptr, ptr %4, align 8, !tbaa !5
  %330 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %329, i32 0, i32 17
  %331 = load i64, ptr %330, align 8, !tbaa !86
  %332 = icmp eq i64 %328, %331
  %333 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %332, ptr noundef @.str.638, ptr noundef %333)
  br label %334

334:                                              ; preds = %325, %320
  %335 = load ptr, ptr %4, align 8, !tbaa !5
  %336 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %335, i32 0, i32 62
  store i64 -1, ptr %336, align 8, !tbaa !87
  %337 = load ptr, ptr %4, align 8, !tbaa !5
  %338 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %337, i32 0, i32 15
  %339 = load i64, ptr %338, align 8, !tbaa !85
  store i64 %339, ptr %12, align 8, !tbaa !82
  %340 = load ptr, ptr %4, align 8, !tbaa !5
  %341 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %340, i32 0, i32 2
  %342 = load i64, ptr %341, align 8, !tbaa !88
  store i64 %342, ptr %13, align 8, !tbaa !82
  %343 = load ptr, ptr %4, align 8, !tbaa !5
  %344 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %343, i32 0, i32 3
  %345 = load i64, ptr %344, align 8, !tbaa !89
  store i64 %345, ptr %14, align 8, !tbaa !82
  %346 = load ptr, ptr %4, align 8, !tbaa !5
  %347 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %346, i32 0, i32 54
  %348 = load ptr, ptr %4, align 8, !tbaa !5
  %349 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %348, i32 0, i32 23
  %350 = load i64, ptr %349, align 8, !tbaa !90
  %351 = load ptr, ptr %4, align 8, !tbaa !5
  %352 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %351, i32 0, i32 24
  %353 = load i64, ptr %352, align 8, !tbaa !91
  %354 = add nsw i64 %350, %353
  %355 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23ivectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %347, i64 noundef %354, ptr noundef %355)
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %356

356:                                              ; preds = %370, %334
  %357 = load i64, ptr %20, align 8, !tbaa !82
  %358 = load ptr, ptr %4, align 8, !tbaa !5
  %359 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %358, i32 0, i32 23
  %360 = load i64, ptr %359, align 8, !tbaa !90
  %361 = sub nsw i64 %360, 1
  %362 = icmp sle i64 %357, %361
  br i1 %362, label %363, label %373

363:                                              ; preds = %356
  %364 = load ptr, ptr %4, align 8, !tbaa !5
  %365 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %364, i32 0, i32 54
  %366 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %365, i32 0, i32 4
  %367 = load ptr, ptr %366, align 8, !tbaa !81
  %368 = load i64, ptr %20, align 8, !tbaa !82
  %369 = getelementptr inbounds i64, ptr %367, i64 %368
  store i64 0, ptr %369, align 8, !tbaa !82
  br label %370

370:                                              ; preds = %363
  %371 = load i64, ptr %20, align 8, !tbaa !82
  %372 = add nsw i64 %371, 1
  store i64 %372, ptr %20, align 8, !tbaa !82
  br label %356, !llvm.loop !92

373:                                              ; preds = %356
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %374

374:                                              ; preds = %392, %373
  %375 = load i64, ptr %20, align 8, !tbaa !82
  %376 = load ptr, ptr %4, align 8, !tbaa !5
  %377 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %376, i32 0, i32 24
  %378 = load i64, ptr %377, align 8, !tbaa !91
  %379 = sub nsw i64 %378, 1
  %380 = icmp sle i64 %375, %379
  br i1 %380, label %381, label %395

381:                                              ; preds = %374
  %382 = load ptr, ptr %4, align 8, !tbaa !5
  %383 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %382, i32 0, i32 54
  %384 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %383, i32 0, i32 4
  %385 = load ptr, ptr %384, align 8, !tbaa !81
  %386 = load ptr, ptr %4, align 8, !tbaa !5
  %387 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %386, i32 0, i32 23
  %388 = load i64, ptr %387, align 8, !tbaa !90
  %389 = load i64, ptr %20, align 8, !tbaa !82
  %390 = add nsw i64 %388, %389
  %391 = getelementptr inbounds i64, ptr %385, i64 %390
  store i64 -1, ptr %391, align 8, !tbaa !82
  br label %392

392:                                              ; preds = %381
  %393 = load i64, ptr %20, align 8, !tbaa !82
  %394 = add nsw i64 %393, 1
  store i64 %394, ptr %20, align 8, !tbaa !82
  br label %374, !llvm.loop !94

395:                                              ; preds = %374
  %396 = load ptr, ptr %4, align 8, !tbaa !5
  %397 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %396, i32 0, i32 69
  %398 = load ptr, ptr %4, align 8, !tbaa !5
  %399 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %398, i32 0, i32 4
  %400 = load double, ptr %399, align 8, !tbaa !95
  %401 = load ptr, ptr %4, align 8, !tbaa !5
  %402 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %401, i32 0, i32 5
  %403 = load i64, ptr %402, align 8, !tbaa !96
  %404 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl12minlmsetcondEPNS_10minlmstateEdlPNS_8ae_stateE(ptr noundef %397, double noundef %400, i64 noundef %403, ptr noundef %404)
  %405 = load ptr, ptr %4, align 8, !tbaa !5
  %406 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %405, i32 0, i32 69
  %407 = load ptr, ptr %4, align 8, !tbaa !5
  %408 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %407, i32 0, i32 6
  %409 = load double, ptr %408, align 8, !tbaa !97
  %410 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl14minlmsetstpmaxEPNS_10minlmstateEdPNS_8ae_stateE(ptr noundef %406, double noundef %409, ptr noundef %410)
  %411 = load ptr, ptr %4, align 8, !tbaa !5
  %412 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %411, i32 0, i32 69
  %413 = load ptr, ptr %4, align 8, !tbaa !5
  %414 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %413, i32 0, i32 7
  %415 = load i8, ptr %414, align 8, !tbaa !98, !range !99, !noundef !100
  %416 = trunc i8 %415 to i1
  %417 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl12minlmsetxrepEPNS_10minlmstateEbPNS_8ae_stateE(ptr noundef %412, i1 noundef zeroext %416, ptr noundef %417)
  %418 = load ptr, ptr %4, align 8, !tbaa !5
  %419 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %418, i32 0, i32 69
  %420 = load ptr, ptr %4, align 8, !tbaa !5
  %421 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %420, i32 0, i32 10
  %422 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl13minlmsetscaleEPNS_10minlmstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %419, ptr noundef %421, ptr noundef %422)
  %423 = load ptr, ptr %4, align 8, !tbaa !5
  %424 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %423, i32 0, i32 69
  %425 = load ptr, ptr %4, align 8, !tbaa !5
  %426 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %425, i32 0, i32 11
  %427 = load ptr, ptr %4, align 8, !tbaa !5
  %428 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %427, i32 0, i32 12
  %429 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10minlmsetbcEPNS_10minlmstateEPKNS_9ae_vectorES4_PNS_8ae_stateE(ptr noundef %424, ptr noundef %426, ptr noundef %428, ptr noundef %429)
  %430 = load ptr, ptr %4, align 8, !tbaa !5
  %431 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %430, i32 0, i32 69
  %432 = load ptr, ptr %4, align 8, !tbaa !5
  %433 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %432, i32 0, i32 22
  %434 = load ptr, ptr %4, align 8, !tbaa !5
  %435 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %434, i32 0, i32 54
  %436 = load ptr, ptr %4, align 8, !tbaa !5
  %437 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %436, i32 0, i32 23
  %438 = load i64, ptr %437, align 8, !tbaa !90
  %439 = load ptr, ptr %4, align 8, !tbaa !5
  %440 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %439, i32 0, i32 24
  %441 = load i64, ptr %440, align 8, !tbaa !91
  %442 = add nsw i64 %438, %441
  %443 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10minlmsetlcEPNS_10minlmstateEPKNS_9ae_matrixEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %431, ptr noundef %433, ptr noundef %435, i64 noundef %442, ptr noundef %443)
  %444 = load ptr, ptr %4, align 8, !tbaa !5
  %445 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %444, i32 0, i32 69
  %446 = load ptr, ptr %4, align 8, !tbaa !5
  %447 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %446, i32 0, i32 25
  %448 = load i64, ptr %447, align 8, !tbaa !101
  %449 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl25minlmsetnonmonotonicstepsEPNS_10minlmstateElPNS_8ae_stateE(ptr noundef %445, i64 noundef %448, ptr noundef %449)
  %450 = load ptr, ptr %4, align 8, !tbaa !5
  %451 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %450, i32 0, i32 34
  store i64 0, ptr %451, align 8, !tbaa !102
  %452 = load ptr, ptr %4, align 8, !tbaa !5
  %453 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %452, i32 0, i32 0
  %454 = load i64, ptr %453, align 8, !tbaa !103
  %455 = icmp eq i64 %454, 2
  br i1 %455, label %456, label %476

456:                                              ; preds = %395
  %457 = load i64, ptr %14, align 8, !tbaa !82
  %458 = load ptr, ptr %4, align 8, !tbaa !5
  %459 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %458, i32 0, i32 50
  %460 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 1, i64 noundef %457, ptr noundef %459, ptr noundef %460)
  %461 = load ptr, ptr %4, align 8, !tbaa !5
  %462 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %461, i32 0, i32 48
  %463 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef 1, ptr noundef %462, ptr noundef %463)
  %464 = load i64, ptr %14, align 8, !tbaa !82
  %465 = load ptr, ptr %4, align 8, !tbaa !5
  %466 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %465, i32 0, i32 49
  %467 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %464, ptr noundef %466, ptr noundef %467)
  %468 = load i64, ptr %14, align 8, !tbaa !82
  %469 = load ptr, ptr %4, align 8, !tbaa !5
  %470 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %469, i32 0, i32 46
  %471 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %468, ptr noundef %470, ptr noundef %471)
  %472 = load i64, ptr %13, align 8, !tbaa !82
  %473 = load ptr, ptr %4, align 8, !tbaa !5
  %474 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %473, i32 0, i32 47
  %475 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %472, ptr noundef %474, ptr noundef %475)
  br label %476

476:                                              ; preds = %456, %395
  %477 = load ptr, ptr %4, align 8, !tbaa !5
  %478 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %477, i32 0, i32 0
  %479 = load i64, ptr %478, align 8, !tbaa !103
  %480 = icmp eq i64 %479, 1
  br i1 %480, label %481, label %484

481:                                              ; preds = %476
  %482 = load ptr, ptr %4, align 8, !tbaa !5
  %483 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef %482, ptr noundef %483)
  br label %484

484:                                              ; preds = %481, %476
  %485 = load ptr, ptr %4, align 8, !tbaa !5
  %486 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %485, i32 0, i32 21
  %487 = load double, ptr %486, align 8, !tbaa !104
  %488 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %487, double noundef 0.000000e+00)
  br i1 %488, label %489, label %494

489:                                              ; preds = %484
  %490 = load ptr, ptr %4, align 8, !tbaa !5
  %491 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %490, i32 0, i32 1
  %492 = load i64, ptr %491, align 8, !tbaa !105
  %493 = icmp eq i64 %492, 1
  br i1 %493, label %495, label %494

494:                                              ; preds = %489, %484
  br label %1356

495:                                              ; preds = %489
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %496

496:                                              ; preds = %581, %495
  %497 = load i64, ptr %20, align 8, !tbaa !82
  %498 = load i64, ptr %14, align 8, !tbaa !82
  %499 = sub nsw i64 %498, 1
  %500 = icmp sle i64 %497, %499
  br i1 %500, label %501, label %584

501:                                              ; preds = %496
  %502 = load ptr, ptr %4, align 8, !tbaa !5
  %503 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %502, i32 0, i32 8
  %504 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %503, i32 0, i32 4
  %505 = load ptr, ptr %504, align 8, !tbaa !81
  %506 = load i64, ptr %20, align 8, !tbaa !82
  %507 = getelementptr inbounds double, ptr %505, i64 %506
  %508 = load double, ptr %507, align 8, !tbaa !83
  %509 = load ptr, ptr %4, align 8, !tbaa !5
  %510 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %509, i32 0, i32 31
  %511 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %510, i32 0, i32 4
  %512 = load ptr, ptr %511, align 8, !tbaa !81
  %513 = load i64, ptr %20, align 8, !tbaa !82
  %514 = getelementptr inbounds double, ptr %512, i64 %513
  store double %508, ptr %514, align 8, !tbaa !83
  %515 = load ptr, ptr %4, align 8, !tbaa !5
  %516 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %515, i32 0, i32 11
  %517 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %516, i32 0, i32 4
  %518 = load ptr, ptr %517, align 8, !tbaa !81
  %519 = load i64, ptr %20, align 8, !tbaa !82
  %520 = getelementptr inbounds double, ptr %518, i64 %519
  %521 = load double, ptr %520, align 8, !tbaa !83
  %522 = load ptr, ptr %5, align 8, !tbaa !5
  %523 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %521, ptr noundef %522)
  br i1 %523, label %524, label %547

524:                                              ; preds = %501
  %525 = load ptr, ptr %4, align 8, !tbaa !5
  %526 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %525, i32 0, i32 31
  %527 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %526, i32 0, i32 4
  %528 = load ptr, ptr %527, align 8, !tbaa !81
  %529 = load i64, ptr %20, align 8, !tbaa !82
  %530 = getelementptr inbounds double, ptr %528, i64 %529
  %531 = load double, ptr %530, align 8, !tbaa !83
  %532 = load ptr, ptr %4, align 8, !tbaa !5
  %533 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %532, i32 0, i32 11
  %534 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %533, i32 0, i32 4
  %535 = load ptr, ptr %534, align 8, !tbaa !81
  %536 = load i64, ptr %20, align 8, !tbaa !82
  %537 = getelementptr inbounds double, ptr %535, i64 %536
  %538 = load double, ptr %537, align 8, !tbaa !83
  %539 = load ptr, ptr %5, align 8, !tbaa !5
  %540 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %531, double noundef %538, ptr noundef %539)
  %541 = load ptr, ptr %4, align 8, !tbaa !5
  %542 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %541, i32 0, i32 31
  %543 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %542, i32 0, i32 4
  %544 = load ptr, ptr %543, align 8, !tbaa !81
  %545 = load i64, ptr %20, align 8, !tbaa !82
  %546 = getelementptr inbounds double, ptr %544, i64 %545
  store double %540, ptr %546, align 8, !tbaa !83
  br label %547

547:                                              ; preds = %524, %501
  %548 = load ptr, ptr %4, align 8, !tbaa !5
  %549 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %548, i32 0, i32 12
  %550 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %549, i32 0, i32 4
  %551 = load ptr, ptr %550, align 8, !tbaa !81
  %552 = load i64, ptr %20, align 8, !tbaa !82
  %553 = getelementptr inbounds double, ptr %551, i64 %552
  %554 = load double, ptr %553, align 8, !tbaa !83
  %555 = load ptr, ptr %5, align 8, !tbaa !5
  %556 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %554, ptr noundef %555)
  br i1 %556, label %557, label %580

557:                                              ; preds = %547
  %558 = load ptr, ptr %4, align 8, !tbaa !5
  %559 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %558, i32 0, i32 31
  %560 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %559, i32 0, i32 4
  %561 = load ptr, ptr %560, align 8, !tbaa !81
  %562 = load i64, ptr %20, align 8, !tbaa !82
  %563 = getelementptr inbounds double, ptr %561, i64 %562
  %564 = load double, ptr %563, align 8, !tbaa !83
  %565 = load ptr, ptr %4, align 8, !tbaa !5
  %566 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %565, i32 0, i32 12
  %567 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %566, i32 0, i32 4
  %568 = load ptr, ptr %567, align 8, !tbaa !81
  %569 = load i64, ptr %20, align 8, !tbaa !82
  %570 = getelementptr inbounds double, ptr %568, i64 %569
  %571 = load double, ptr %570, align 8, !tbaa !83
  %572 = load ptr, ptr %5, align 8, !tbaa !5
  %573 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %564, double noundef %571, ptr noundef %572)
  %574 = load ptr, ptr %4, align 8, !tbaa !5
  %575 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %574, i32 0, i32 31
  %576 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %575, i32 0, i32 4
  %577 = load ptr, ptr %576, align 8, !tbaa !81
  %578 = load i64, ptr %20, align 8, !tbaa !82
  %579 = getelementptr inbounds double, ptr %577, i64 %578
  store double %573, ptr %579, align 8, !tbaa !83
  br label %580

580:                                              ; preds = %557, %547
  br label %581

581:                                              ; preds = %580
  %582 = load i64, ptr %20, align 8, !tbaa !82
  %583 = add nsw i64 %582, 1
  store i64 %583, ptr %20, align 8, !tbaa !82
  br label %496, !llvm.loop !106

584:                                              ; preds = %496
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %585

585:                                              ; preds = %1352, %584
  %586 = load i64, ptr %20, align 8, !tbaa !82
  %587 = load i64, ptr %14, align 8, !tbaa !82
  %588 = sub nsw i64 %587, 1
  %589 = icmp sgt i64 %586, %588
  br i1 %589, label %590, label %591

590:                                              ; preds = %585
  br label %1355

591:                                              ; preds = %585
  %592 = load ptr, ptr %4, align 8, !tbaa !5
  %593 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %592, i32 0, i32 11
  %594 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %593, i32 0, i32 4
  %595 = load ptr, ptr %594, align 8, !tbaa !81
  %596 = load i64, ptr %20, align 8, !tbaa !82
  %597 = getelementptr inbounds double, ptr %595, i64 %596
  %598 = load double, ptr %597, align 8, !tbaa !83
  %599 = load ptr, ptr %4, align 8, !tbaa !5
  %600 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %599, i32 0, i32 31
  %601 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %600, i32 0, i32 4
  %602 = load ptr, ptr %601, align 8, !tbaa !81
  %603 = load i64, ptr %20, align 8, !tbaa !82
  %604 = getelementptr inbounds double, ptr %602, i64 %603
  %605 = load double, ptr %604, align 8, !tbaa !83
  %606 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %598, double noundef %605)
  br i1 %606, label %607, label %623

607:                                              ; preds = %591
  %608 = load ptr, ptr %4, align 8, !tbaa !5
  %609 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %608, i32 0, i32 31
  %610 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %609, i32 0, i32 4
  %611 = load ptr, ptr %610, align 8, !tbaa !81
  %612 = load i64, ptr %20, align 8, !tbaa !82
  %613 = getelementptr inbounds double, ptr %611, i64 %612
  %614 = load double, ptr %613, align 8, !tbaa !83
  %615 = load ptr, ptr %4, align 8, !tbaa !5
  %616 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %615, i32 0, i32 12
  %617 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %616, i32 0, i32 4
  %618 = load ptr, ptr %617, align 8, !tbaa !81
  %619 = load i64, ptr %20, align 8, !tbaa !82
  %620 = getelementptr inbounds double, ptr %618, i64 %619
  %621 = load double, ptr %620, align 8, !tbaa !83
  %622 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %614, double noundef %621)
  br label %623

623:                                              ; preds = %607, %591
  %624 = phi i1 [ false, %591 ], [ %622, %607 ]
  %625 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %624, ptr noundef @.str.639, ptr noundef %625)
  %626 = load ptr, ptr %4, align 8, !tbaa !5
  %627 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %626, i32 0, i32 0
  %628 = load i64, ptr %627, align 8, !tbaa !103
  %629 = icmp ne i64 %628, 2
  br i1 %629, label %630, label %631

630:                                              ; preds = %623
  br label %1041

631:                                              ; preds = %623
  %632 = load i64, ptr %14, align 8, !tbaa !82
  %633 = load i64, ptr %13, align 8, !tbaa !82
  %634 = add nsw i64 %632, %633
  %635 = load ptr, ptr %4, align 8, !tbaa !5
  %636 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %635, i32 0, i32 42
  %637 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %634, ptr noundef %636, ptr noundef %637)
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %638

638:                                              ; preds = %1037, %631
  %639 = load i64, ptr %21, align 8, !tbaa !82
  %640 = load i64, ptr %12, align 8, !tbaa !82
  %641 = sub nsw i64 %640, 1
  %642 = icmp sgt i64 %639, %641
  br i1 %642, label %643, label %644

643:                                              ; preds = %638
  br label %1040

644:                                              ; preds = %638
  %645 = load ptr, ptr %4, align 8, !tbaa !5
  %646 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %645, i32 0, i32 34
  store i64 2, ptr %646, align 8, !tbaa !102
  %647 = load ptr, ptr %4, align 8, !tbaa !5
  %648 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %647, i32 0, i32 37
  store i64 1, ptr %648, align 8, !tbaa !107
  %649 = load ptr, ptr %4, align 8, !tbaa !5
  %650 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %649, i32 0, i32 38
  store i64 1, ptr %650, align 8, !tbaa !108
  %651 = load i64, ptr %14, align 8, !tbaa !82
  %652 = load ptr, ptr %4, align 8, !tbaa !5
  %653 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %652, i32 0, i32 39
  store i64 %651, ptr %653, align 8, !tbaa !109
  %654 = load i64, ptr %13, align 8, !tbaa !82
  %655 = load ptr, ptr %4, align 8, !tbaa !5
  %656 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %655, i32 0, i32 40
  store i64 %654, ptr %656, align 8, !tbaa !110
  %657 = load i64, ptr %14, align 8, !tbaa !82
  %658 = load ptr, ptr %4, align 8, !tbaa !5
  %659 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %658, i32 0, i32 31
  %660 = load ptr, ptr %4, align 8, !tbaa !5
  %661 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %660, i32 0, i32 42
  %662 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %657, ptr noundef %659, ptr noundef %661, ptr noundef %662)
  %663 = load ptr, ptr %4, align 8, !tbaa !5
  %664 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %663, i32 0, i32 31
  %665 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %664, i32 0, i32 4
  %666 = load ptr, ptr %665, align 8, !tbaa !81
  %667 = load i64, ptr %20, align 8, !tbaa !82
  %668 = getelementptr inbounds double, ptr %666, i64 %667
  %669 = load double, ptr %668, align 8, !tbaa !83
  %670 = load ptr, ptr %4, align 8, !tbaa !5
  %671 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %670, i32 0, i32 21
  %672 = load double, ptr %671, align 8, !tbaa !104
  %673 = load ptr, ptr %4, align 8, !tbaa !5
  %674 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %673, i32 0, i32 10
  %675 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %674, i32 0, i32 4
  %676 = load ptr, ptr %675, align 8, !tbaa !81
  %677 = load i64, ptr %20, align 8, !tbaa !82
  %678 = getelementptr inbounds double, ptr %676, i64 %677
  %679 = load double, ptr %678, align 8, !tbaa !83
  %680 = fneg double %672
  %681 = call double @llvm.fmuladd.f64(double %680, double %679, double %669)
  %682 = load ptr, ptr %4, align 8, !tbaa !5
  %683 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %682, i32 0, i32 42
  %684 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %683, i32 0, i32 4
  %685 = load ptr, ptr %684, align 8, !tbaa !81
  %686 = load i64, ptr %20, align 8, !tbaa !82
  %687 = getelementptr inbounds double, ptr %685, i64 %686
  store double %681, ptr %687, align 8, !tbaa !83
  %688 = load ptr, ptr %4, align 8, !tbaa !5
  %689 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %688, i32 0, i32 11
  %690 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %689, i32 0, i32 4
  %691 = load ptr, ptr %690, align 8, !tbaa !81
  %692 = load i64, ptr %20, align 8, !tbaa !82
  %693 = getelementptr inbounds double, ptr %691, i64 %692
  %694 = load double, ptr %693, align 8, !tbaa !83
  %695 = load ptr, ptr %5, align 8, !tbaa !5
  %696 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %694, ptr noundef %695)
  br i1 %696, label %697, label %727

697:                                              ; preds = %644
  %698 = load ptr, ptr %4, align 8, !tbaa !5
  %699 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %698, i32 0, i32 42
  %700 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %699, i32 0, i32 4
  %701 = load ptr, ptr %700, align 8, !tbaa !81
  %702 = load i64, ptr %20, align 8, !tbaa !82
  %703 = getelementptr inbounds double, ptr %701, i64 %702
  %704 = load double, ptr %703, align 8, !tbaa !83
  %705 = load ptr, ptr %4, align 8, !tbaa !5
  %706 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %705, i32 0, i32 11
  %707 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %706, i32 0, i32 4
  %708 = load ptr, ptr %707, align 8, !tbaa !81
  %709 = load i64, ptr %20, align 8, !tbaa !82
  %710 = getelementptr inbounds double, ptr %708, i64 %709
  %711 = load double, ptr %710, align 8, !tbaa !83
  %712 = fcmp olt double %704, %711
  br i1 %712, label %713, label %727

713:                                              ; preds = %697
  %714 = load ptr, ptr %4, align 8, !tbaa !5
  %715 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %714, i32 0, i32 11
  %716 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %715, i32 0, i32 4
  %717 = load ptr, ptr %716, align 8, !tbaa !81
  %718 = load i64, ptr %20, align 8, !tbaa !82
  %719 = getelementptr inbounds double, ptr %717, i64 %718
  %720 = load double, ptr %719, align 8, !tbaa !83
  %721 = load ptr, ptr %4, align 8, !tbaa !5
  %722 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %721, i32 0, i32 42
  %723 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %722, i32 0, i32 4
  %724 = load ptr, ptr %723, align 8, !tbaa !81
  %725 = load i64, ptr %20, align 8, !tbaa !82
  %726 = getelementptr inbounds double, ptr %724, i64 %725
  store double %720, ptr %726, align 8, !tbaa !83
  br label %727

727:                                              ; preds = %713, %697, %644
  %728 = load ptr, ptr %4, align 8, !tbaa !5
  %729 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %728, i32 0, i32 42
  %730 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %729, i32 0, i32 4
  %731 = load ptr, ptr %730, align 8, !tbaa !81
  %732 = load i64, ptr %20, align 8, !tbaa !82
  %733 = getelementptr inbounds double, ptr %731, i64 %732
  %734 = load double, ptr %733, align 8, !tbaa !83
  store double %734, ptr %6, align 8, !tbaa !83
  store i64 0, ptr %22, align 8, !tbaa !82
  br label %735

735:                                              ; preds = %759, %727
  %736 = load i64, ptr %22, align 8, !tbaa !82
  %737 = load i64, ptr %13, align 8, !tbaa !82
  %738 = sub nsw i64 %737, 1
  %739 = icmp sle i64 %736, %738
  br i1 %739, label %740, label %762

740:                                              ; preds = %735
  %741 = load ptr, ptr %4, align 8, !tbaa !5
  %742 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %741, i32 0, i32 13
  %743 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %742, i32 0, i32 6
  %744 = load ptr, ptr %743, align 8, !tbaa !81
  %745 = load i64, ptr %21, align 8, !tbaa !82
  %746 = getelementptr inbounds ptr, ptr %744, i64 %745
  %747 = load ptr, ptr %746, align 8, !tbaa !5
  %748 = load i64, ptr %22, align 8, !tbaa !82
  %749 = getelementptr inbounds double, ptr %747, i64 %748
  %750 = load double, ptr %749, align 8, !tbaa !83
  %751 = load ptr, ptr %4, align 8, !tbaa !5
  %752 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %751, i32 0, i32 42
  %753 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %752, i32 0, i32 4
  %754 = load ptr, ptr %753, align 8, !tbaa !81
  %755 = load i64, ptr %14, align 8, !tbaa !82
  %756 = load i64, ptr %22, align 8, !tbaa !82
  %757 = add nsw i64 %755, %756
  %758 = getelementptr inbounds double, ptr %754, i64 %757
  store double %750, ptr %758, align 8, !tbaa !83
  br label %759

759:                                              ; preds = %740
  %760 = load i64, ptr %22, align 8, !tbaa !82
  %761 = add nsw i64 %760, 1
  store i64 %761, ptr %22, align 8, !tbaa !82
  br label %735, !llvm.loop !111

762:                                              ; preds = %735
  %763 = load ptr, ptr %4, align 8, !tbaa !5
  %764 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %763, i32 0, i32 43
  %765 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef 1, ptr noundef %764, ptr noundef %765)
  %766 = load i64, ptr %14, align 8, !tbaa !82
  %767 = load ptr, ptr %4, align 8, !tbaa !5
  %768 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %767, i32 0, i32 44
  %769 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %766, ptr noundef %768, ptr noundef %769)
  %770 = load ptr, ptr %4, align 8, !tbaa !5
  %771 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %770, i32 0, i32 73
  %772 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %771, i32 0, i32 0
  store i32 0, ptr %772, align 8, !tbaa !9
  br label %3719

773:                                              ; preds = %165
  %774 = load ptr, ptr %4, align 8, !tbaa !5
  %775 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %774, i32 0, i32 43
  %776 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %775, i32 0, i32 4
  %777 = load ptr, ptr %776, align 8, !tbaa !81
  %778 = getelementptr inbounds double, ptr %777, i64 0
  %779 = load double, ptr %778, align 8, !tbaa !83
  store double %779, ptr %7, align 8, !tbaa !83
  %780 = load ptr, ptr %4, align 8, !tbaa !5
  %781 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %780, i32 0, i32 44
  %782 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %781, i32 0, i32 4
  %783 = load ptr, ptr %782, align 8, !tbaa !81
  %784 = load i64, ptr %20, align 8, !tbaa !82
  %785 = getelementptr inbounds double, ptr %783, i64 %784
  %786 = load double, ptr %785, align 8, !tbaa !83
  store double %786, ptr %8, align 8, !tbaa !83
  %787 = load ptr, ptr %4, align 8, !tbaa !5
  %788 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %787, i32 0, i32 34
  store i64 2, ptr %788, align 8, !tbaa !102
  %789 = load ptr, ptr %4, align 8, !tbaa !5
  %790 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %789, i32 0, i32 37
  store i64 1, ptr %790, align 8, !tbaa !107
  %791 = load ptr, ptr %4, align 8, !tbaa !5
  %792 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %791, i32 0, i32 38
  store i64 1, ptr %792, align 8, !tbaa !108
  %793 = load i64, ptr %14, align 8, !tbaa !82
  %794 = load ptr, ptr %4, align 8, !tbaa !5
  %795 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %794, i32 0, i32 39
  store i64 %793, ptr %795, align 8, !tbaa !109
  %796 = load i64, ptr %13, align 8, !tbaa !82
  %797 = load ptr, ptr %4, align 8, !tbaa !5
  %798 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %797, i32 0, i32 40
  store i64 %796, ptr %798, align 8, !tbaa !110
  %799 = load i64, ptr %14, align 8, !tbaa !82
  %800 = load ptr, ptr %4, align 8, !tbaa !5
  %801 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %800, i32 0, i32 31
  %802 = load ptr, ptr %4, align 8, !tbaa !5
  %803 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %802, i32 0, i32 42
  %804 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %799, ptr noundef %801, ptr noundef %803, ptr noundef %804)
  %805 = load ptr, ptr %4, align 8, !tbaa !5
  %806 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %805, i32 0, i32 31
  %807 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %806, i32 0, i32 4
  %808 = load ptr, ptr %807, align 8, !tbaa !81
  %809 = load i64, ptr %20, align 8, !tbaa !82
  %810 = getelementptr inbounds double, ptr %808, i64 %809
  %811 = load double, ptr %810, align 8, !tbaa !83
  %812 = load ptr, ptr %4, align 8, !tbaa !5
  %813 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %812, i32 0, i32 21
  %814 = load double, ptr %813, align 8, !tbaa !104
  %815 = load ptr, ptr %4, align 8, !tbaa !5
  %816 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %815, i32 0, i32 10
  %817 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %816, i32 0, i32 4
  %818 = load ptr, ptr %817, align 8, !tbaa !81
  %819 = load i64, ptr %20, align 8, !tbaa !82
  %820 = getelementptr inbounds double, ptr %818, i64 %819
  %821 = load double, ptr %820, align 8, !tbaa !83
  %822 = call double @llvm.fmuladd.f64(double %814, double %821, double %811)
  %823 = load ptr, ptr %4, align 8, !tbaa !5
  %824 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %823, i32 0, i32 42
  %825 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %824, i32 0, i32 4
  %826 = load ptr, ptr %825, align 8, !tbaa !81
  %827 = load i64, ptr %20, align 8, !tbaa !82
  %828 = getelementptr inbounds double, ptr %826, i64 %827
  store double %822, ptr %828, align 8, !tbaa !83
  %829 = load ptr, ptr %4, align 8, !tbaa !5
  %830 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %829, i32 0, i32 12
  %831 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %830, i32 0, i32 4
  %832 = load ptr, ptr %831, align 8, !tbaa !81
  %833 = load i64, ptr %20, align 8, !tbaa !82
  %834 = getelementptr inbounds double, ptr %832, i64 %833
  %835 = load double, ptr %834, align 8, !tbaa !83
  %836 = load ptr, ptr %5, align 8, !tbaa !5
  %837 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %835, ptr noundef %836)
  br i1 %837, label %838, label %868

838:                                              ; preds = %773
  %839 = load ptr, ptr %4, align 8, !tbaa !5
  %840 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %839, i32 0, i32 42
  %841 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %840, i32 0, i32 4
  %842 = load ptr, ptr %841, align 8, !tbaa !81
  %843 = load i64, ptr %20, align 8, !tbaa !82
  %844 = getelementptr inbounds double, ptr %842, i64 %843
  %845 = load double, ptr %844, align 8, !tbaa !83
  %846 = load ptr, ptr %4, align 8, !tbaa !5
  %847 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %846, i32 0, i32 12
  %848 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %847, i32 0, i32 4
  %849 = load ptr, ptr %848, align 8, !tbaa !81
  %850 = load i64, ptr %20, align 8, !tbaa !82
  %851 = getelementptr inbounds double, ptr %849, i64 %850
  %852 = load double, ptr %851, align 8, !tbaa !83
  %853 = fcmp ogt double %845, %852
  br i1 %853, label %854, label %868

854:                                              ; preds = %838
  %855 = load ptr, ptr %4, align 8, !tbaa !5
  %856 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %855, i32 0, i32 12
  %857 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %856, i32 0, i32 4
  %858 = load ptr, ptr %857, align 8, !tbaa !81
  %859 = load i64, ptr %20, align 8, !tbaa !82
  %860 = getelementptr inbounds double, ptr %858, i64 %859
  %861 = load double, ptr %860, align 8, !tbaa !83
  %862 = load ptr, ptr %4, align 8, !tbaa !5
  %863 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %862, i32 0, i32 42
  %864 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %863, i32 0, i32 4
  %865 = load ptr, ptr %864, align 8, !tbaa !81
  %866 = load i64, ptr %20, align 8, !tbaa !82
  %867 = getelementptr inbounds double, ptr %865, i64 %866
  store double %861, ptr %867, align 8, !tbaa !83
  br label %868

868:                                              ; preds = %854, %838, %773
  %869 = load ptr, ptr %4, align 8, !tbaa !5
  %870 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %869, i32 0, i32 42
  %871 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %870, i32 0, i32 4
  %872 = load ptr, ptr %871, align 8, !tbaa !81
  %873 = load i64, ptr %20, align 8, !tbaa !82
  %874 = getelementptr inbounds double, ptr %872, i64 %873
  %875 = load double, ptr %874, align 8, !tbaa !83
  store double %875, ptr %9, align 8, !tbaa !83
  %876 = load ptr, ptr %4, align 8, !tbaa !5
  %877 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %876, i32 0, i32 73
  %878 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %877, i32 0, i32 0
  store i32 1, ptr %878, align 8, !tbaa !9
  br label %3719

879:                                              ; preds = %172
  %880 = load ptr, ptr %4, align 8, !tbaa !5
  %881 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %880, i32 0, i32 43
  %882 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %881, i32 0, i32 4
  %883 = load ptr, ptr %882, align 8, !tbaa !81
  %884 = getelementptr inbounds double, ptr %883, i64 0
  %885 = load double, ptr %884, align 8, !tbaa !83
  store double %885, ptr %10, align 8, !tbaa !83
  %886 = load ptr, ptr %4, align 8, !tbaa !5
  %887 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %886, i32 0, i32 44
  %888 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %887, i32 0, i32 4
  %889 = load ptr, ptr %888, align 8, !tbaa !81
  %890 = load i64, ptr %20, align 8, !tbaa !82
  %891 = getelementptr inbounds double, ptr %889, i64 %890
  %892 = load double, ptr %891, align 8, !tbaa !83
  store double %892, ptr %11, align 8, !tbaa !83
  %893 = load ptr, ptr %4, align 8, !tbaa !5
  %894 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %893, i32 0, i32 34
  store i64 2, ptr %894, align 8, !tbaa !102
  %895 = load ptr, ptr %4, align 8, !tbaa !5
  %896 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %895, i32 0, i32 37
  store i64 1, ptr %896, align 8, !tbaa !107
  %897 = load ptr, ptr %4, align 8, !tbaa !5
  %898 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %897, i32 0, i32 38
  store i64 1, ptr %898, align 8, !tbaa !108
  %899 = load i64, ptr %14, align 8, !tbaa !82
  %900 = load ptr, ptr %4, align 8, !tbaa !5
  %901 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %900, i32 0, i32 39
  store i64 %899, ptr %901, align 8, !tbaa !109
  %902 = load i64, ptr %13, align 8, !tbaa !82
  %903 = load ptr, ptr %4, align 8, !tbaa !5
  %904 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %903, i32 0, i32 40
  store i64 %902, ptr %904, align 8, !tbaa !110
  %905 = load i64, ptr %14, align 8, !tbaa !82
  %906 = load ptr, ptr %4, align 8, !tbaa !5
  %907 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %906, i32 0, i32 31
  %908 = load ptr, ptr %4, align 8, !tbaa !5
  %909 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %908, i32 0, i32 42
  %910 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %905, ptr noundef %907, ptr noundef %909, ptr noundef %910)
  %911 = load double, ptr %6, align 8, !tbaa !83
  %912 = load double, ptr %9, align 8, !tbaa !83
  %913 = fadd double %911, %912
  %914 = fdiv double %913, 2.000000e+00
  %915 = load ptr, ptr %4, align 8, !tbaa !5
  %916 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %915, i32 0, i32 42
  %917 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %916, i32 0, i32 4
  %918 = load ptr, ptr %917, align 8, !tbaa !81
  %919 = load i64, ptr %20, align 8, !tbaa !82
  %920 = getelementptr inbounds double, ptr %918, i64 %919
  store double %914, ptr %920, align 8, !tbaa !83
  %921 = load ptr, ptr %4, align 8, !tbaa !5
  %922 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %921, i32 0, i32 11
  %923 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %922, i32 0, i32 4
  %924 = load ptr, ptr %923, align 8, !tbaa !81
  %925 = load i64, ptr %20, align 8, !tbaa !82
  %926 = getelementptr inbounds double, ptr %924, i64 %925
  %927 = load double, ptr %926, align 8, !tbaa !83
  %928 = load ptr, ptr %5, align 8, !tbaa !5
  %929 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %927, ptr noundef %928)
  br i1 %929, label %930, label %960

930:                                              ; preds = %879
  %931 = load ptr, ptr %4, align 8, !tbaa !5
  %932 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %931, i32 0, i32 42
  %933 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %932, i32 0, i32 4
  %934 = load ptr, ptr %933, align 8, !tbaa !81
  %935 = load i64, ptr %20, align 8, !tbaa !82
  %936 = getelementptr inbounds double, ptr %934, i64 %935
  %937 = load double, ptr %936, align 8, !tbaa !83
  %938 = load ptr, ptr %4, align 8, !tbaa !5
  %939 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %938, i32 0, i32 11
  %940 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %939, i32 0, i32 4
  %941 = load ptr, ptr %940, align 8, !tbaa !81
  %942 = load i64, ptr %20, align 8, !tbaa !82
  %943 = getelementptr inbounds double, ptr %941, i64 %942
  %944 = load double, ptr %943, align 8, !tbaa !83
  %945 = fcmp olt double %937, %944
  br i1 %945, label %946, label %960

946:                                              ; preds = %930
  %947 = load ptr, ptr %4, align 8, !tbaa !5
  %948 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %947, i32 0, i32 11
  %949 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %948, i32 0, i32 4
  %950 = load ptr, ptr %949, align 8, !tbaa !81
  %951 = load i64, ptr %20, align 8, !tbaa !82
  %952 = getelementptr inbounds double, ptr %950, i64 %951
  %953 = load double, ptr %952, align 8, !tbaa !83
  %954 = load ptr, ptr %4, align 8, !tbaa !5
  %955 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %954, i32 0, i32 42
  %956 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %955, i32 0, i32 4
  %957 = load ptr, ptr %956, align 8, !tbaa !81
  %958 = load i64, ptr %20, align 8, !tbaa !82
  %959 = getelementptr inbounds double, ptr %957, i64 %958
  store double %953, ptr %959, align 8, !tbaa !83
  br label %960

960:                                              ; preds = %946, %930, %879
  %961 = load ptr, ptr %4, align 8, !tbaa !5
  %962 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %961, i32 0, i32 12
  %963 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %962, i32 0, i32 4
  %964 = load ptr, ptr %963, align 8, !tbaa !81
  %965 = load i64, ptr %20, align 8, !tbaa !82
  %966 = getelementptr inbounds double, ptr %964, i64 %965
  %967 = load double, ptr %966, align 8, !tbaa !83
  %968 = load ptr, ptr %5, align 8, !tbaa !5
  %969 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %967, ptr noundef %968)
  br i1 %969, label %970, label %1000

970:                                              ; preds = %960
  %971 = load ptr, ptr %4, align 8, !tbaa !5
  %972 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %971, i32 0, i32 42
  %973 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %972, i32 0, i32 4
  %974 = load ptr, ptr %973, align 8, !tbaa !81
  %975 = load i64, ptr %20, align 8, !tbaa !82
  %976 = getelementptr inbounds double, ptr %974, i64 %975
  %977 = load double, ptr %976, align 8, !tbaa !83
  %978 = load ptr, ptr %4, align 8, !tbaa !5
  %979 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %978, i32 0, i32 12
  %980 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %979, i32 0, i32 4
  %981 = load ptr, ptr %980, align 8, !tbaa !81
  %982 = load i64, ptr %20, align 8, !tbaa !82
  %983 = getelementptr inbounds double, ptr %981, i64 %982
  %984 = load double, ptr %983, align 8, !tbaa !83
  %985 = fcmp ogt double %977, %984
  br i1 %985, label %986, label %1000

986:                                              ; preds = %970
  %987 = load ptr, ptr %4, align 8, !tbaa !5
  %988 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %987, i32 0, i32 12
  %989 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %988, i32 0, i32 4
  %990 = load ptr, ptr %989, align 8, !tbaa !81
  %991 = load i64, ptr %20, align 8, !tbaa !82
  %992 = getelementptr inbounds double, ptr %990, i64 %991
  %993 = load double, ptr %992, align 8, !tbaa !83
  %994 = load ptr, ptr %4, align 8, !tbaa !5
  %995 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %994, i32 0, i32 42
  %996 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %995, i32 0, i32 4
  %997 = load ptr, ptr %996, align 8, !tbaa !81
  %998 = load i64, ptr %20, align 8, !tbaa !82
  %999 = getelementptr inbounds double, ptr %997, i64 %998
  store double %993, ptr %999, align 8, !tbaa !83
  br label %1000

1000:                                             ; preds = %986, %970, %960
  %1001 = load ptr, ptr %4, align 8, !tbaa !5
  %1002 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1001, i32 0, i32 73
  %1003 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1002, i32 0, i32 0
  store i32 2, ptr %1003, align 8, !tbaa !9
  br label %3719

1004:                                             ; preds = %179
  %1005 = load ptr, ptr %4, align 8, !tbaa !5
  %1006 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1005, i32 0, i32 28
  store i8 0, ptr %1006, align 2, !tbaa !112
  %1007 = load double, ptr %7, align 8, !tbaa !83
  %1008 = load double, ptr %8, align 8, !tbaa !83
  %1009 = load double, ptr %10, align 8, !tbaa !83
  %1010 = load double, ptr %11, align 8, !tbaa !83
  %1011 = load ptr, ptr %4, align 8, !tbaa !5
  %1012 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1011, i32 0, i32 43
  %1013 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1012, i32 0, i32 4
  %1014 = load ptr, ptr %1013, align 8, !tbaa !81
  %1015 = getelementptr inbounds double, ptr %1014, i64 0
  %1016 = load double, ptr %1015, align 8, !tbaa !83
  %1017 = load ptr, ptr %4, align 8, !tbaa !5
  %1018 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1017, i32 0, i32 44
  %1019 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1018, i32 0, i32 4
  %1020 = load ptr, ptr %1019, align 8, !tbaa !81
  %1021 = load i64, ptr %20, align 8, !tbaa !82
  %1022 = getelementptr inbounds double, ptr %1020, i64 %1021
  %1023 = load double, ptr %1022, align 8, !tbaa !83
  %1024 = load double, ptr %9, align 8, !tbaa !83
  %1025 = load double, ptr %6, align 8, !tbaa !83
  %1026 = fsub double %1024, %1025
  %1027 = load ptr, ptr %5, align 8, !tbaa !5
  %1028 = call noundef zeroext i1 @_ZN11alglib_impl15derivativecheckEdddddddPNS_8ae_stateE(double noundef %1007, double noundef %1008, double noundef %1009, double noundef %1010, double noundef %1016, double noundef %1023, double noundef %1026, ptr noundef %1027)
  br i1 %1028, label %1037, label %1029

1029:                                             ; preds = %1004
  %1030 = load i64, ptr %20, align 8, !tbaa !82
  %1031 = load ptr, ptr %4, align 8, !tbaa !5
  %1032 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1031, i32 0, i32 62
  store i64 %1030, ptr %1032, align 8, !tbaa !87
  %1033 = load ptr, ptr %4, align 8, !tbaa !5
  %1034 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1033, i32 0, i32 61
  store i64 -7, ptr %1034, align 8, !tbaa !113
  store i8 0, ptr %24, align 1, !tbaa !114
  %1035 = load i8, ptr %24, align 1, !tbaa !114, !range !99, !noundef !100
  %1036 = trunc i8 %1035 to i1
  store i1 %1036, ptr %3, align 1
  store i32 1, ptr %25, align 4
  br label %3848

1037:                                             ; preds = %1004
  %1038 = load i64, ptr %21, align 8, !tbaa !82
  %1039 = add nsw i64 %1038, 1
  store i64 %1039, ptr %21, align 8, !tbaa !82
  br label %638

1040:                                             ; preds = %643
  br label %1352

1041:                                             ; preds = %630
  %1042 = load ptr, ptr %4, align 8, !tbaa !5
  %1043 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1042, i32 0, i32 0
  %1044 = load i64, ptr %1043, align 8, !tbaa !103
  %1045 = icmp eq i64 %1044, 1
  %1046 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1045, ptr noundef @.str.640, ptr noundef %1046)
  %1047 = load ptr, ptr %4, align 8, !tbaa !5
  %1048 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1047, i32 0, i32 31
  %1049 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1048, i32 0, i32 4
  %1050 = load ptr, ptr %1049, align 8, !tbaa !81
  %1051 = load i64, ptr %20, align 8, !tbaa !82
  %1052 = getelementptr inbounds double, ptr %1050, i64 %1051
  %1053 = load double, ptr %1052, align 8, !tbaa !83
  store double %1053, ptr %15, align 8, !tbaa !83
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %1054

1054:                                             ; preds = %1348, %1041
  %1055 = load i64, ptr %21, align 8, !tbaa !82
  %1056 = load i64, ptr %12, align 8, !tbaa !82
  %1057 = sub nsw i64 %1056, 1
  %1058 = icmp sgt i64 %1055, %1057
  br i1 %1058, label %1059, label %1060

1059:                                             ; preds = %1054
  br label %1351

1060:                                             ; preds = %1054
  %1061 = load ptr, ptr %4, align 8, !tbaa !5
  %1062 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1061, i32 0, i32 30
  %1063 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1062, i32 0, i32 4
  %1064 = load ptr, ptr %1063, align 8, !tbaa !81
  %1065 = getelementptr inbounds double, ptr %1064, i64 0
  %1066 = load ptr, ptr %4, align 8, !tbaa !5
  %1067 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1066, i32 0, i32 13
  %1068 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1067, i32 0, i32 6
  %1069 = load ptr, ptr %1068, align 8, !tbaa !81
  %1070 = load i64, ptr %21, align 8, !tbaa !82
  %1071 = getelementptr inbounds ptr, ptr %1069, i64 %1070
  %1072 = load ptr, ptr %1071, align 8, !tbaa !5
  %1073 = getelementptr inbounds double, ptr %1072, i64 0
  %1074 = load i64, ptr %13, align 8, !tbaa !82
  %1075 = sub nsw i64 %1074, 1
  %1076 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1075)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1065, i64 noundef 1, ptr noundef %1073, i64 noundef 1, i64 noundef %1076)
  %1077 = load double, ptr %15, align 8, !tbaa !83
  %1078 = load ptr, ptr %4, align 8, !tbaa !5
  %1079 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1078, i32 0, i32 21
  %1080 = load double, ptr %1079, align 8, !tbaa !104
  %1081 = load ptr, ptr %4, align 8, !tbaa !5
  %1082 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1081, i32 0, i32 10
  %1083 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1082, i32 0, i32 4
  %1084 = load ptr, ptr %1083, align 8, !tbaa !81
  %1085 = load i64, ptr %20, align 8, !tbaa !82
  %1086 = getelementptr inbounds double, ptr %1084, i64 %1085
  %1087 = load double, ptr %1086, align 8, !tbaa !83
  %1088 = fneg double %1080
  %1089 = call double @llvm.fmuladd.f64(double %1088, double %1087, double %1077)
  %1090 = load ptr, ptr %4, align 8, !tbaa !5
  %1091 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1090, i32 0, i32 31
  %1092 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1091, i32 0, i32 4
  %1093 = load ptr, ptr %1092, align 8, !tbaa !81
  %1094 = load i64, ptr %20, align 8, !tbaa !82
  %1095 = getelementptr inbounds double, ptr %1093, i64 %1094
  store double %1089, ptr %1095, align 8, !tbaa !83
  %1096 = load ptr, ptr %4, align 8, !tbaa !5
  %1097 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1096, i32 0, i32 11
  %1098 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1097, i32 0, i32 4
  %1099 = load ptr, ptr %1098, align 8, !tbaa !81
  %1100 = load i64, ptr %20, align 8, !tbaa !82
  %1101 = getelementptr inbounds double, ptr %1099, i64 %1100
  %1102 = load double, ptr %1101, align 8, !tbaa !83
  %1103 = load ptr, ptr %5, align 8, !tbaa !5
  %1104 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1102, ptr noundef %1103)
  br i1 %1104, label %1105, label %1128

1105:                                             ; preds = %1060
  %1106 = load ptr, ptr %4, align 8, !tbaa !5
  %1107 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1106, i32 0, i32 31
  %1108 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1107, i32 0, i32 4
  %1109 = load ptr, ptr %1108, align 8, !tbaa !81
  %1110 = load i64, ptr %20, align 8, !tbaa !82
  %1111 = getelementptr inbounds double, ptr %1109, i64 %1110
  %1112 = load double, ptr %1111, align 8, !tbaa !83
  %1113 = load ptr, ptr %4, align 8, !tbaa !5
  %1114 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1113, i32 0, i32 11
  %1115 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1114, i32 0, i32 4
  %1116 = load ptr, ptr %1115, align 8, !tbaa !81
  %1117 = load i64, ptr %20, align 8, !tbaa !82
  %1118 = getelementptr inbounds double, ptr %1116, i64 %1117
  %1119 = load double, ptr %1118, align 8, !tbaa !83
  %1120 = load ptr, ptr %5, align 8, !tbaa !5
  %1121 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1112, double noundef %1119, ptr noundef %1120)
  %1122 = load ptr, ptr %4, align 8, !tbaa !5
  %1123 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1122, i32 0, i32 31
  %1124 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1123, i32 0, i32 4
  %1125 = load ptr, ptr %1124, align 8, !tbaa !81
  %1126 = load i64, ptr %20, align 8, !tbaa !82
  %1127 = getelementptr inbounds double, ptr %1125, i64 %1126
  store double %1121, ptr %1127, align 8, !tbaa !83
  br label %1128

1128:                                             ; preds = %1105, %1060
  %1129 = load ptr, ptr %4, align 8, !tbaa !5
  %1130 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1129, i32 0, i32 31
  %1131 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1130, i32 0, i32 4
  %1132 = load ptr, ptr %1131, align 8, !tbaa !81
  %1133 = load i64, ptr %20, align 8, !tbaa !82
  %1134 = getelementptr inbounds double, ptr %1132, i64 %1133
  %1135 = load double, ptr %1134, align 8, !tbaa !83
  store double %1135, ptr %6, align 8, !tbaa !83
  %1136 = load ptr, ptr %4, align 8, !tbaa !5
  %1137 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1136, i32 0, i32 28
  store i8 1, ptr %1137, align 2, !tbaa !112
  %1138 = load ptr, ptr %4, align 8, !tbaa !5
  %1139 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1138, i32 0, i32 73
  %1140 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1139, i32 0, i32 0
  store i32 3, ptr %1140, align 8, !tbaa !9
  br label %3719

1141:                                             ; preds = %186
  %1142 = load ptr, ptr %4, align 8, !tbaa !5
  %1143 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1142, i32 0, i32 28
  store i8 0, ptr %1143, align 2, !tbaa !112
  %1144 = load ptr, ptr %4, align 8, !tbaa !5
  %1145 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1144, i32 0, i32 32
  %1146 = load double, ptr %1145, align 8, !tbaa !115
  store double %1146, ptr %7, align 8, !tbaa !83
  %1147 = load ptr, ptr %4, align 8, !tbaa !5
  %1148 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1147, i32 0, i32 33
  %1149 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1148, i32 0, i32 4
  %1150 = load ptr, ptr %1149, align 8, !tbaa !81
  %1151 = load i64, ptr %20, align 8, !tbaa !82
  %1152 = getelementptr inbounds double, ptr %1150, i64 %1151
  %1153 = load double, ptr %1152, align 8, !tbaa !83
  store double %1153, ptr %8, align 8, !tbaa !83
  %1154 = load double, ptr %15, align 8, !tbaa !83
  %1155 = load ptr, ptr %4, align 8, !tbaa !5
  %1156 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1155, i32 0, i32 21
  %1157 = load double, ptr %1156, align 8, !tbaa !104
  %1158 = load ptr, ptr %4, align 8, !tbaa !5
  %1159 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1158, i32 0, i32 10
  %1160 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1159, i32 0, i32 4
  %1161 = load ptr, ptr %1160, align 8, !tbaa !81
  %1162 = load i64, ptr %20, align 8, !tbaa !82
  %1163 = getelementptr inbounds double, ptr %1161, i64 %1162
  %1164 = load double, ptr %1163, align 8, !tbaa !83
  %1165 = call double @llvm.fmuladd.f64(double %1157, double %1164, double %1154)
  %1166 = load ptr, ptr %4, align 8, !tbaa !5
  %1167 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1166, i32 0, i32 31
  %1168 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1167, i32 0, i32 4
  %1169 = load ptr, ptr %1168, align 8, !tbaa !81
  %1170 = load i64, ptr %20, align 8, !tbaa !82
  %1171 = getelementptr inbounds double, ptr %1169, i64 %1170
  store double %1165, ptr %1171, align 8, !tbaa !83
  %1172 = load ptr, ptr %4, align 8, !tbaa !5
  %1173 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1172, i32 0, i32 12
  %1174 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1173, i32 0, i32 4
  %1175 = load ptr, ptr %1174, align 8, !tbaa !81
  %1176 = load i64, ptr %20, align 8, !tbaa !82
  %1177 = getelementptr inbounds double, ptr %1175, i64 %1176
  %1178 = load double, ptr %1177, align 8, !tbaa !83
  %1179 = load ptr, ptr %5, align 8, !tbaa !5
  %1180 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1178, ptr noundef %1179)
  br i1 %1180, label %1181, label %1204

1181:                                             ; preds = %1141
  %1182 = load ptr, ptr %4, align 8, !tbaa !5
  %1183 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1182, i32 0, i32 31
  %1184 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1183, i32 0, i32 4
  %1185 = load ptr, ptr %1184, align 8, !tbaa !81
  %1186 = load i64, ptr %20, align 8, !tbaa !82
  %1187 = getelementptr inbounds double, ptr %1185, i64 %1186
  %1188 = load double, ptr %1187, align 8, !tbaa !83
  %1189 = load ptr, ptr %4, align 8, !tbaa !5
  %1190 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1189, i32 0, i32 12
  %1191 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1190, i32 0, i32 4
  %1192 = load ptr, ptr %1191, align 8, !tbaa !81
  %1193 = load i64, ptr %20, align 8, !tbaa !82
  %1194 = getelementptr inbounds double, ptr %1192, i64 %1193
  %1195 = load double, ptr %1194, align 8, !tbaa !83
  %1196 = load ptr, ptr %5, align 8, !tbaa !5
  %1197 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1188, double noundef %1195, ptr noundef %1196)
  %1198 = load ptr, ptr %4, align 8, !tbaa !5
  %1199 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1198, i32 0, i32 31
  %1200 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1199, i32 0, i32 4
  %1201 = load ptr, ptr %1200, align 8, !tbaa !81
  %1202 = load i64, ptr %20, align 8, !tbaa !82
  %1203 = getelementptr inbounds double, ptr %1201, i64 %1202
  store double %1197, ptr %1203, align 8, !tbaa !83
  br label %1204

1204:                                             ; preds = %1181, %1141
  %1205 = load ptr, ptr %4, align 8, !tbaa !5
  %1206 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1205, i32 0, i32 31
  %1207 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1206, i32 0, i32 4
  %1208 = load ptr, ptr %1207, align 8, !tbaa !81
  %1209 = load i64, ptr %20, align 8, !tbaa !82
  %1210 = getelementptr inbounds double, ptr %1208, i64 %1209
  %1211 = load double, ptr %1210, align 8, !tbaa !83
  store double %1211, ptr %9, align 8, !tbaa !83
  %1212 = load ptr, ptr %4, align 8, !tbaa !5
  %1213 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1212, i32 0, i32 28
  store i8 1, ptr %1213, align 2, !tbaa !112
  %1214 = load ptr, ptr %4, align 8, !tbaa !5
  %1215 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1214, i32 0, i32 73
  %1216 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1215, i32 0, i32 0
  store i32 4, ptr %1216, align 8, !tbaa !9
  br label %3719

1217:                                             ; preds = %193
  %1218 = load ptr, ptr %4, align 8, !tbaa !5
  %1219 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1218, i32 0, i32 28
  store i8 0, ptr %1219, align 2, !tbaa !112
  %1220 = load ptr, ptr %4, align 8, !tbaa !5
  %1221 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1220, i32 0, i32 32
  %1222 = load double, ptr %1221, align 8, !tbaa !115
  store double %1222, ptr %10, align 8, !tbaa !83
  %1223 = load ptr, ptr %4, align 8, !tbaa !5
  %1224 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1223, i32 0, i32 33
  %1225 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1224, i32 0, i32 4
  %1226 = load ptr, ptr %1225, align 8, !tbaa !81
  %1227 = load i64, ptr %20, align 8, !tbaa !82
  %1228 = getelementptr inbounds double, ptr %1226, i64 %1227
  %1229 = load double, ptr %1228, align 8, !tbaa !83
  store double %1229, ptr %11, align 8, !tbaa !83
  %1230 = load double, ptr %6, align 8, !tbaa !83
  %1231 = load double, ptr %9, align 8, !tbaa !83
  %1232 = fadd double %1230, %1231
  %1233 = fdiv double %1232, 2.000000e+00
  %1234 = load ptr, ptr %4, align 8, !tbaa !5
  %1235 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1234, i32 0, i32 31
  %1236 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1235, i32 0, i32 4
  %1237 = load ptr, ptr %1236, align 8, !tbaa !81
  %1238 = load i64, ptr %20, align 8, !tbaa !82
  %1239 = getelementptr inbounds double, ptr %1237, i64 %1238
  store double %1233, ptr %1239, align 8, !tbaa !83
  %1240 = load ptr, ptr %4, align 8, !tbaa !5
  %1241 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1240, i32 0, i32 11
  %1242 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1241, i32 0, i32 4
  %1243 = load ptr, ptr %1242, align 8, !tbaa !81
  %1244 = load i64, ptr %20, align 8, !tbaa !82
  %1245 = getelementptr inbounds double, ptr %1243, i64 %1244
  %1246 = load double, ptr %1245, align 8, !tbaa !83
  %1247 = load ptr, ptr %5, align 8, !tbaa !5
  %1248 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1246, ptr noundef %1247)
  br i1 %1248, label %1249, label %1272

1249:                                             ; preds = %1217
  %1250 = load ptr, ptr %4, align 8, !tbaa !5
  %1251 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1250, i32 0, i32 31
  %1252 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1251, i32 0, i32 4
  %1253 = load ptr, ptr %1252, align 8, !tbaa !81
  %1254 = load i64, ptr %20, align 8, !tbaa !82
  %1255 = getelementptr inbounds double, ptr %1253, i64 %1254
  %1256 = load double, ptr %1255, align 8, !tbaa !83
  %1257 = load ptr, ptr %4, align 8, !tbaa !5
  %1258 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1257, i32 0, i32 11
  %1259 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1258, i32 0, i32 4
  %1260 = load ptr, ptr %1259, align 8, !tbaa !81
  %1261 = load i64, ptr %20, align 8, !tbaa !82
  %1262 = getelementptr inbounds double, ptr %1260, i64 %1261
  %1263 = load double, ptr %1262, align 8, !tbaa !83
  %1264 = load ptr, ptr %5, align 8, !tbaa !5
  %1265 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1256, double noundef %1263, ptr noundef %1264)
  %1266 = load ptr, ptr %4, align 8, !tbaa !5
  %1267 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1266, i32 0, i32 31
  %1268 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1267, i32 0, i32 4
  %1269 = load ptr, ptr %1268, align 8, !tbaa !81
  %1270 = load i64, ptr %20, align 8, !tbaa !82
  %1271 = getelementptr inbounds double, ptr %1269, i64 %1270
  store double %1265, ptr %1271, align 8, !tbaa !83
  br label %1272

1272:                                             ; preds = %1249, %1217
  %1273 = load ptr, ptr %4, align 8, !tbaa !5
  %1274 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1273, i32 0, i32 12
  %1275 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1274, i32 0, i32 4
  %1276 = load ptr, ptr %1275, align 8, !tbaa !81
  %1277 = load i64, ptr %20, align 8, !tbaa !82
  %1278 = getelementptr inbounds double, ptr %1276, i64 %1277
  %1279 = load double, ptr %1278, align 8, !tbaa !83
  %1280 = load ptr, ptr %5, align 8, !tbaa !5
  %1281 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1279, ptr noundef %1280)
  br i1 %1281, label %1282, label %1305

1282:                                             ; preds = %1272
  %1283 = load ptr, ptr %4, align 8, !tbaa !5
  %1284 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1283, i32 0, i32 31
  %1285 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1284, i32 0, i32 4
  %1286 = load ptr, ptr %1285, align 8, !tbaa !81
  %1287 = load i64, ptr %20, align 8, !tbaa !82
  %1288 = getelementptr inbounds double, ptr %1286, i64 %1287
  %1289 = load double, ptr %1288, align 8, !tbaa !83
  %1290 = load ptr, ptr %4, align 8, !tbaa !5
  %1291 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1290, i32 0, i32 12
  %1292 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1291, i32 0, i32 4
  %1293 = load ptr, ptr %1292, align 8, !tbaa !81
  %1294 = load i64, ptr %20, align 8, !tbaa !82
  %1295 = getelementptr inbounds double, ptr %1293, i64 %1294
  %1296 = load double, ptr %1295, align 8, !tbaa !83
  %1297 = load ptr, ptr %5, align 8, !tbaa !5
  %1298 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1289, double noundef %1296, ptr noundef %1297)
  %1299 = load ptr, ptr %4, align 8, !tbaa !5
  %1300 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1299, i32 0, i32 31
  %1301 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1300, i32 0, i32 4
  %1302 = load ptr, ptr %1301, align 8, !tbaa !81
  %1303 = load i64, ptr %20, align 8, !tbaa !82
  %1304 = getelementptr inbounds double, ptr %1302, i64 %1303
  store double %1298, ptr %1304, align 8, !tbaa !83
  br label %1305

1305:                                             ; preds = %1282, %1272
  %1306 = load ptr, ptr %4, align 8, !tbaa !5
  %1307 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1306, i32 0, i32 28
  store i8 1, ptr %1307, align 2, !tbaa !112
  %1308 = load ptr, ptr %4, align 8, !tbaa !5
  %1309 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1308, i32 0, i32 73
  %1310 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1309, i32 0, i32 0
  store i32 5, ptr %1310, align 8, !tbaa !9
  br label %3719

1311:                                             ; preds = %200
  %1312 = load ptr, ptr %4, align 8, !tbaa !5
  %1313 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1312, i32 0, i32 28
  store i8 0, ptr %1313, align 2, !tbaa !112
  %1314 = load double, ptr %15, align 8, !tbaa !83
  %1315 = load ptr, ptr %4, align 8, !tbaa !5
  %1316 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1315, i32 0, i32 31
  %1317 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1316, i32 0, i32 4
  %1318 = load ptr, ptr %1317, align 8, !tbaa !81
  %1319 = load i64, ptr %20, align 8, !tbaa !82
  %1320 = getelementptr inbounds double, ptr %1318, i64 %1319
  store double %1314, ptr %1320, align 8, !tbaa !83
  %1321 = load double, ptr %7, align 8, !tbaa !83
  %1322 = load double, ptr %8, align 8, !tbaa !83
  %1323 = load double, ptr %10, align 8, !tbaa !83
  %1324 = load double, ptr %11, align 8, !tbaa !83
  %1325 = load ptr, ptr %4, align 8, !tbaa !5
  %1326 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1325, i32 0, i32 32
  %1327 = load double, ptr %1326, align 8, !tbaa !115
  %1328 = load ptr, ptr %4, align 8, !tbaa !5
  %1329 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1328, i32 0, i32 33
  %1330 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1329, i32 0, i32 4
  %1331 = load ptr, ptr %1330, align 8, !tbaa !81
  %1332 = load i64, ptr %20, align 8, !tbaa !82
  %1333 = getelementptr inbounds double, ptr %1331, i64 %1332
  %1334 = load double, ptr %1333, align 8, !tbaa !83
  %1335 = load double, ptr %9, align 8, !tbaa !83
  %1336 = load double, ptr %6, align 8, !tbaa !83
  %1337 = fsub double %1335, %1336
  %1338 = load ptr, ptr %5, align 8, !tbaa !5
  %1339 = call noundef zeroext i1 @_ZN11alglib_impl15derivativecheckEdddddddPNS_8ae_stateE(double noundef %1321, double noundef %1322, double noundef %1323, double noundef %1324, double noundef %1327, double noundef %1334, double noundef %1337, ptr noundef %1338)
  br i1 %1339, label %1348, label %1340

1340:                                             ; preds = %1311
  %1341 = load i64, ptr %20, align 8, !tbaa !82
  %1342 = load ptr, ptr %4, align 8, !tbaa !5
  %1343 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1342, i32 0, i32 62
  store i64 %1341, ptr %1343, align 8, !tbaa !87
  %1344 = load ptr, ptr %4, align 8, !tbaa !5
  %1345 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1344, i32 0, i32 61
  store i64 -7, ptr %1345, align 8, !tbaa !113
  store i8 0, ptr %24, align 1, !tbaa !114
  %1346 = load i8, ptr %24, align 1, !tbaa !114, !range !99, !noundef !100
  %1347 = trunc i8 %1346 to i1
  store i1 %1347, ptr %3, align 1
  store i32 1, ptr %25, align 4
  br label %3848

1348:                                             ; preds = %1311
  %1349 = load i64, ptr %21, align 8, !tbaa !82
  %1350 = add nsw i64 %1349, 1
  store i64 %1350, ptr %21, align 8, !tbaa !82
  br label %1054

1351:                                             ; preds = %1059
  br label %1352

1352:                                             ; preds = %1351, %1040
  %1353 = load i64, ptr %20, align 8, !tbaa !82
  %1354 = add nsw i64 %1353, 1
  store i64 %1354, ptr %20, align 8, !tbaa !82
  br label %585

1355:                                             ; preds = %590
  br label %1356

1356:                                             ; preds = %1355, %494
  %1357 = load ptr, ptr %4, align 8, !tbaa !5
  %1358 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1357, i32 0, i32 52
  %1359 = load i64, ptr %12, align 8, !tbaa !82
  %1360 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1358, i64 noundef %1359, ptr noundef %1360)
  %1361 = load i64, ptr %12, align 8, !tbaa !82
  %1362 = load i64, ptr %14, align 8, !tbaa !82
  %1363 = mul nsw i64 %1361, %1362
  %1364 = load ptr, ptr %4, align 8, !tbaa !5
  %1365 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1364, i32 0, i32 53
  %1366 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1363, ptr noundef %1365, ptr noundef %1366)
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %1367

1367:                                             ; preds = %1425, %1356
  %1368 = load i64, ptr %20, align 8, !tbaa !82
  %1369 = load i64, ptr %12, align 8, !tbaa !82
  %1370 = sub nsw i64 %1369, 1
  %1371 = icmp sle i64 %1368, %1370
  br i1 %1371, label %1372, label %1428

1372:                                             ; preds = %1367
  %1373 = load ptr, ptr %4, align 8, !tbaa !5
  %1374 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1373, i32 0, i32 52
  %1375 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1374, i32 0, i32 4
  %1376 = load ptr, ptr %1375, align 8, !tbaa !81
  %1377 = load i64, ptr %20, align 8, !tbaa !82
  %1378 = getelementptr inbounds double, ptr %1376, i64 %1377
  store double 1.000000e+00, ptr %1378, align 8, !tbaa !83
  %1379 = load ptr, ptr %4, align 8, !tbaa !5
  %1380 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1379, i32 0, i32 18
  %1381 = load i64, ptr %1380, align 8, !tbaa !84
  %1382 = icmp eq i64 %1381, 1
  br i1 %1382, label %1383, label %1397

1383:                                             ; preds = %1372
  %1384 = load ptr, ptr %4, align 8, !tbaa !5
  %1385 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1384, i32 0, i32 16
  %1386 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1385, i32 0, i32 4
  %1387 = load ptr, ptr %1386, align 8, !tbaa !81
  %1388 = load i64, ptr %20, align 8, !tbaa !82
  %1389 = getelementptr inbounds double, ptr %1387, i64 %1388
  %1390 = load double, ptr %1389, align 8, !tbaa !83
  %1391 = load ptr, ptr %4, align 8, !tbaa !5
  %1392 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1391, i32 0, i32 52
  %1393 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1392, i32 0, i32 4
  %1394 = load ptr, ptr %1393, align 8, !tbaa !81
  %1395 = load i64, ptr %20, align 8, !tbaa !82
  %1396 = getelementptr inbounds double, ptr %1394, i64 %1395
  store double %1390, ptr %1396, align 8, !tbaa !83
  br label %1397

1397:                                             ; preds = %1383, %1372
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %1398

1398:                                             ; preds = %1421, %1397
  %1399 = load i64, ptr %21, align 8, !tbaa !82
  %1400 = load i64, ptr %14, align 8, !tbaa !82
  %1401 = sub nsw i64 %1400, 1
  %1402 = icmp sle i64 %1399, %1401
  br i1 %1402, label %1403, label %1424

1403:                                             ; preds = %1398
  %1404 = load ptr, ptr %4, align 8, !tbaa !5
  %1405 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1404, i32 0, i32 52
  %1406 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1405, i32 0, i32 4
  %1407 = load ptr, ptr %1406, align 8, !tbaa !81
  %1408 = load i64, ptr %20, align 8, !tbaa !82
  %1409 = getelementptr inbounds double, ptr %1407, i64 %1408
  %1410 = load double, ptr %1409, align 8, !tbaa !83
  %1411 = load ptr, ptr %4, align 8, !tbaa !5
  %1412 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1411, i32 0, i32 53
  %1413 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1412, i32 0, i32 4
  %1414 = load ptr, ptr %1413, align 8, !tbaa !81
  %1415 = load i64, ptr %20, align 8, !tbaa !82
  %1416 = load i64, ptr %14, align 8, !tbaa !82
  %1417 = mul nsw i64 %1415, %1416
  %1418 = load i64, ptr %21, align 8, !tbaa !82
  %1419 = add nsw i64 %1417, %1418
  %1420 = getelementptr inbounds double, ptr %1414, i64 %1419
  store double %1410, ptr %1420, align 8, !tbaa !83
  br label %1421

1421:                                             ; preds = %1403
  %1422 = load i64, ptr %21, align 8, !tbaa !82
  %1423 = add nsw i64 %1422, 1
  store i64 %1423, ptr %21, align 8, !tbaa !82
  br label %1398, !llvm.loop !116

1424:                                             ; preds = %1398
  br label %1425

1425:                                             ; preds = %1424
  %1426 = load i64, ptr %20, align 8, !tbaa !82
  %1427 = add nsw i64 %1426, 1
  store i64 %1427, ptr %20, align 8, !tbaa !82
  br label %1367, !llvm.loop !117

1428:                                             ; preds = %1367
  %1429 = load ptr, ptr %4, align 8, !tbaa !5
  %1430 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1429, i32 0, i32 0
  %1431 = load i64, ptr %1430, align 8, !tbaa !103
  %1432 = icmp eq i64 %1431, 1
  br i1 %1432, label %1433, label %1437

1433:                                             ; preds = %1428
  %1434 = load ptr, ptr %4, align 8, !tbaa !5
  %1435 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1434, i32 0, i32 69
  %1436 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl18minlmsetprotocolv1EPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %1435, ptr noundef %1436)
  br label %1446

1437:                                             ; preds = %1428
  %1438 = load ptr, ptr %4, align 8, !tbaa !5
  %1439 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1438, i32 0, i32 0
  %1440 = load i64, ptr %1439, align 8, !tbaa !103
  %1441 = icmp eq i64 %1440, 2
  %1442 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1441, ptr noundef @.str.641, ptr noundef %1442)
  %1443 = load ptr, ptr %4, align 8, !tbaa !5
  %1444 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1443, i32 0, i32 69
  %1445 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl18minlmsetprotocolv2EPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %1444, ptr noundef %1445)
  br label %1446

1446:                                             ; preds = %1437, %1433
  br label %1447

1447:                                             ; preds = %2518, %2492, %2323, %2096, %1963, %1924, %1888, %1782, %1640, %1546, %1446
  %1448 = load ptr, ptr %4, align 8, !tbaa !5
  %1449 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1448, i32 0, i32 69
  %1450 = load ptr, ptr %5, align 8, !tbaa !5
  %1451 = call noundef zeroext i1 @_ZN11alglib_impl14minlmiterationEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef %1449, ptr noundef %1450)
  br i1 %1451, label %1453, label %1452

1452:                                             ; preds = %1447
  br label %2520

1453:                                             ; preds = %1447
  %1454 = load ptr, ptr %4, align 8, !tbaa !5
  %1455 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1454, i32 0, i32 0
  %1456 = load i64, ptr %1455, align 8, !tbaa !103
  %1457 = icmp ne i64 %1456, 1
  br i1 %1457, label %1458, label %1459

1458:                                             ; preds = %1453
  br label %1928

1459:                                             ; preds = %1453
  %1460 = load ptr, ptr %4, align 8, !tbaa !5
  %1461 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1460, i32 0, i32 69
  %1462 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1461, i32 0, i32 22
  %1463 = load i8, ptr %1462, align 4, !tbaa !118, !range !99, !noundef !100
  %1464 = trunc i8 %1463 to i1
  br i1 %1464, label %1466, label %1465

1465:                                             ; preds = %1459
  br label %1547

1466:                                             ; preds = %1459
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %1467

1467:                                             ; preds = %1514, %1466
  %1468 = load i64, ptr %20, align 8, !tbaa !82
  %1469 = load i64, ptr %12, align 8, !tbaa !82
  %1470 = sub nsw i64 %1469, 1
  %1471 = icmp sgt i64 %1468, %1470
  br i1 %1471, label %1472, label %1473

1472:                                             ; preds = %1467
  br label %1546

1473:                                             ; preds = %1467
  %1474 = load ptr, ptr %4, align 8, !tbaa !5
  %1475 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1474, i32 0, i32 31
  %1476 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1475, i32 0, i32 4
  %1477 = load ptr, ptr %1476, align 8, !tbaa !81
  %1478 = getelementptr inbounds double, ptr %1477, i64 0
  %1479 = load ptr, ptr %4, align 8, !tbaa !5
  %1480 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1479, i32 0, i32 69
  %1481 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1480, i32 0, i32 12
  %1482 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1481, i32 0, i32 4
  %1483 = load ptr, ptr %1482, align 8, !tbaa !81
  %1484 = getelementptr inbounds double, ptr %1483, i64 0
  %1485 = load i64, ptr %14, align 8, !tbaa !82
  %1486 = sub nsw i64 %1485, 1
  %1487 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1486)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1478, i64 noundef 1, ptr noundef %1484, i64 noundef 1, i64 noundef %1487)
  %1488 = load ptr, ptr %4, align 8, !tbaa !5
  %1489 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1488, i32 0, i32 30
  %1490 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1489, i32 0, i32 4
  %1491 = load ptr, ptr %1490, align 8, !tbaa !81
  %1492 = getelementptr inbounds double, ptr %1491, i64 0
  %1493 = load ptr, ptr %4, align 8, !tbaa !5
  %1494 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1493, i32 0, i32 13
  %1495 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1494, i32 0, i32 6
  %1496 = load ptr, ptr %1495, align 8, !tbaa !81
  %1497 = load i64, ptr %20, align 8, !tbaa !82
  %1498 = getelementptr inbounds ptr, ptr %1496, i64 %1497
  %1499 = load ptr, ptr %1498, align 8, !tbaa !5
  %1500 = getelementptr inbounds double, ptr %1499, i64 0
  %1501 = load i64, ptr %13, align 8, !tbaa !82
  %1502 = sub nsw i64 %1501, 1
  %1503 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1502)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1492, i64 noundef 1, ptr noundef %1500, i64 noundef 1, i64 noundef %1503)
  %1504 = load i64, ptr %20, align 8, !tbaa !82
  %1505 = load ptr, ptr %4, align 8, !tbaa !5
  %1506 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1505, i32 0, i32 29
  store i64 %1504, ptr %1506, align 8, !tbaa !119
  %1507 = load ptr, ptr %4, align 8, !tbaa !5
  %1508 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef %1507, ptr noundef %1508)
  %1509 = load ptr, ptr %4, align 8, !tbaa !5
  %1510 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1509, i32 0, i32 27
  store i8 1, ptr %1510, align 1, !tbaa !120
  %1511 = load ptr, ptr %4, align 8, !tbaa !5
  %1512 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1511, i32 0, i32 73
  %1513 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1512, i32 0, i32 0
  store i32 6, ptr %1513, align 8, !tbaa !9
  br label %3719

1514:                                             ; preds = %207
  %1515 = load ptr, ptr %4, align 8, !tbaa !5
  %1516 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1515, i32 0, i32 27
  store i8 0, ptr %1516, align 1, !tbaa !120
  %1517 = load ptr, ptr %4, align 8, !tbaa !5
  %1518 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1517, i32 0, i32 52
  %1519 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1518, i32 0, i32 4
  %1520 = load ptr, ptr %1519, align 8, !tbaa !81
  %1521 = load i64, ptr %20, align 8, !tbaa !82
  %1522 = getelementptr inbounds double, ptr %1520, i64 %1521
  %1523 = load double, ptr %1522, align 8, !tbaa !83
  store double %1523, ptr %16, align 8, !tbaa !83
  %1524 = load double, ptr %16, align 8, !tbaa !83
  %1525 = load ptr, ptr %4, align 8, !tbaa !5
  %1526 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1525, i32 0, i32 32
  %1527 = load double, ptr %1526, align 8, !tbaa !115
  %1528 = load ptr, ptr %4, align 8, !tbaa !5
  %1529 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1528, i32 0, i32 14
  %1530 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1529, i32 0, i32 4
  %1531 = load ptr, ptr %1530, align 8, !tbaa !81
  %1532 = load i64, ptr %20, align 8, !tbaa !82
  %1533 = getelementptr inbounds double, ptr %1531, i64 %1532
  %1534 = load double, ptr %1533, align 8, !tbaa !83
  %1535 = fsub double %1527, %1534
  %1536 = fmul double %1524, %1535
  %1537 = load ptr, ptr %4, align 8, !tbaa !5
  %1538 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1537, i32 0, i32 69
  %1539 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1538, i32 0, i32 14
  %1540 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1539, i32 0, i32 4
  %1541 = load ptr, ptr %1540, align 8, !tbaa !81
  %1542 = load i64, ptr %20, align 8, !tbaa !82
  %1543 = getelementptr inbounds double, ptr %1541, i64 %1542
  store double %1536, ptr %1543, align 8, !tbaa !83
  %1544 = load i64, ptr %20, align 8, !tbaa !82
  %1545 = add nsw i64 %1544, 1
  store i64 %1545, ptr %20, align 8, !tbaa !82
  br label %1467

1546:                                             ; preds = %1472
  br label %1447

1547:                                             ; preds = %1465
  %1548 = load ptr, ptr %4, align 8, !tbaa !5
  %1549 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1548, i32 0, i32 69
  %1550 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1549, i32 0, i32 18
  %1551 = load i8, ptr %1550, align 8, !tbaa !121, !range !99, !noundef !100
  %1552 = trunc i8 %1551 to i1
  br i1 %1552, label %1554, label %1553

1553:                                             ; preds = %1547
  br label %1641

1554:                                             ; preds = %1547
  %1555 = load ptr, ptr %4, align 8, !tbaa !5
  %1556 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1555, i32 0, i32 69
  %1557 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1556, i32 0, i32 13
  store double 0.000000e+00, ptr %1557, align 8, !tbaa !122
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %1558

1558:                                             ; preds = %1605, %1554
  %1559 = load i64, ptr %20, align 8, !tbaa !82
  %1560 = load i64, ptr %12, align 8, !tbaa !82
  %1561 = sub nsw i64 %1560, 1
  %1562 = icmp sgt i64 %1559, %1561
  br i1 %1562, label %1563, label %1564

1563:                                             ; preds = %1558
  br label %1640

1564:                                             ; preds = %1558
  %1565 = load ptr, ptr %4, align 8, !tbaa !5
  %1566 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1565, i32 0, i32 31
  %1567 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1566, i32 0, i32 4
  %1568 = load ptr, ptr %1567, align 8, !tbaa !81
  %1569 = getelementptr inbounds double, ptr %1568, i64 0
  %1570 = load ptr, ptr %4, align 8, !tbaa !5
  %1571 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1570, i32 0, i32 69
  %1572 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1571, i32 0, i32 12
  %1573 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1572, i32 0, i32 4
  %1574 = load ptr, ptr %1573, align 8, !tbaa !81
  %1575 = getelementptr inbounds double, ptr %1574, i64 0
  %1576 = load i64, ptr %14, align 8, !tbaa !82
  %1577 = sub nsw i64 %1576, 1
  %1578 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1577)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1569, i64 noundef 1, ptr noundef %1575, i64 noundef 1, i64 noundef %1578)
  %1579 = load ptr, ptr %4, align 8, !tbaa !5
  %1580 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1579, i32 0, i32 30
  %1581 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1580, i32 0, i32 4
  %1582 = load ptr, ptr %1581, align 8, !tbaa !81
  %1583 = getelementptr inbounds double, ptr %1582, i64 0
  %1584 = load ptr, ptr %4, align 8, !tbaa !5
  %1585 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1584, i32 0, i32 13
  %1586 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1585, i32 0, i32 6
  %1587 = load ptr, ptr %1586, align 8, !tbaa !81
  %1588 = load i64, ptr %20, align 8, !tbaa !82
  %1589 = getelementptr inbounds ptr, ptr %1587, i64 %1588
  %1590 = load ptr, ptr %1589, align 8, !tbaa !5
  %1591 = getelementptr inbounds double, ptr %1590, i64 0
  %1592 = load i64, ptr %13, align 8, !tbaa !82
  %1593 = sub nsw i64 %1592, 1
  %1594 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1593)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1583, i64 noundef 1, ptr noundef %1591, i64 noundef 1, i64 noundef %1594)
  %1595 = load i64, ptr %20, align 8, !tbaa !82
  %1596 = load ptr, ptr %4, align 8, !tbaa !5
  %1597 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1596, i32 0, i32 29
  store i64 %1595, ptr %1597, align 8, !tbaa !119
  %1598 = load ptr, ptr %4, align 8, !tbaa !5
  %1599 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef %1598, ptr noundef %1599)
  %1600 = load ptr, ptr %4, align 8, !tbaa !5
  %1601 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1600, i32 0, i32 27
  store i8 1, ptr %1601, align 1, !tbaa !120
  %1602 = load ptr, ptr %4, align 8, !tbaa !5
  %1603 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1602, i32 0, i32 73
  %1604 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1603, i32 0, i32 0
  store i32 7, ptr %1604, align 8, !tbaa !9
  br label %3719

1605:                                             ; preds = %214
  %1606 = load ptr, ptr %4, align 8, !tbaa !5
  %1607 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1606, i32 0, i32 27
  store i8 0, ptr %1607, align 1, !tbaa !120
  %1608 = load ptr, ptr %4, align 8, !tbaa !5
  %1609 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1608, i32 0, i32 52
  %1610 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1609, i32 0, i32 4
  %1611 = load ptr, ptr %1610, align 8, !tbaa !81
  %1612 = load i64, ptr %20, align 8, !tbaa !82
  %1613 = getelementptr inbounds double, ptr %1611, i64 %1612
  %1614 = load double, ptr %1613, align 8, !tbaa !83
  store double %1614, ptr %16, align 8, !tbaa !83
  %1615 = load ptr, ptr %4, align 8, !tbaa !5
  %1616 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1615, i32 0, i32 69
  %1617 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1616, i32 0, i32 13
  %1618 = load double, ptr %1617, align 8, !tbaa !122
  %1619 = load double, ptr %16, align 8, !tbaa !83
  %1620 = load ptr, ptr %4, align 8, !tbaa !5
  %1621 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1620, i32 0, i32 32
  %1622 = load double, ptr %1621, align 8, !tbaa !115
  %1623 = load ptr, ptr %4, align 8, !tbaa !5
  %1624 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1623, i32 0, i32 14
  %1625 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1624, i32 0, i32 4
  %1626 = load ptr, ptr %1625, align 8, !tbaa !81
  %1627 = load i64, ptr %20, align 8, !tbaa !82
  %1628 = getelementptr inbounds double, ptr %1626, i64 %1627
  %1629 = load double, ptr %1628, align 8, !tbaa !83
  %1630 = fsub double %1622, %1629
  %1631 = fmul double %1619, %1630
  %1632 = load ptr, ptr %5, align 8, !tbaa !5
  %1633 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1631, ptr noundef %1632)
  %1634 = fadd double %1618, %1633
  %1635 = load ptr, ptr %4, align 8, !tbaa !5
  %1636 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1635, i32 0, i32 69
  %1637 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1636, i32 0, i32 13
  store double %1634, ptr %1637, align 8, !tbaa !122
  %1638 = load i64, ptr %20, align 8, !tbaa !82
  %1639 = add nsw i64 %1638, 1
  store i64 %1639, ptr %20, align 8, !tbaa !82
  br label %1558

1640:                                             ; preds = %1563
  br label %1447

1641:                                             ; preds = %1553
  %1642 = load ptr, ptr %4, align 8, !tbaa !5
  %1643 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1642, i32 0, i32 69
  %1644 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1643, i32 0, i32 19
  %1645 = load i8, ptr %1644, align 1, !tbaa !123, !range !99, !noundef !100
  %1646 = trunc i8 %1645 to i1
  br i1 %1646, label %1648, label %1647

1647:                                             ; preds = %1641
  br label %1783

1648:                                             ; preds = %1641
  %1649 = load ptr, ptr %4, align 8, !tbaa !5
  %1650 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1649, i32 0, i32 69
  %1651 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1650, i32 0, i32 13
  store double 0.000000e+00, ptr %1651, align 8, !tbaa !122
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %1652

1652:                                             ; preds = %1665, %1648
  %1653 = load i64, ptr %20, align 8, !tbaa !82
  %1654 = load i64, ptr %14, align 8, !tbaa !82
  %1655 = sub nsw i64 %1654, 1
  %1656 = icmp sle i64 %1653, %1655
  br i1 %1656, label %1657, label %1668

1657:                                             ; preds = %1652
  %1658 = load ptr, ptr %4, align 8, !tbaa !5
  %1659 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1658, i32 0, i32 69
  %1660 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1659, i32 0, i32 17
  %1661 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1660, i32 0, i32 4
  %1662 = load ptr, ptr %1661, align 8, !tbaa !81
  %1663 = load i64, ptr %20, align 8, !tbaa !82
  %1664 = getelementptr inbounds double, ptr %1662, i64 %1663
  store double 0.000000e+00, ptr %1664, align 8, !tbaa !83
  br label %1665

1665:                                             ; preds = %1657
  %1666 = load i64, ptr %20, align 8, !tbaa !82
  %1667 = add nsw i64 %1666, 1
  store i64 %1667, ptr %20, align 8, !tbaa !82
  br label %1652, !llvm.loop !124

1668:                                             ; preds = %1652
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %1669

1669:                                             ; preds = %1716, %1668
  %1670 = load i64, ptr %20, align 8, !tbaa !82
  %1671 = load i64, ptr %12, align 8, !tbaa !82
  %1672 = sub nsw i64 %1671, 1
  %1673 = icmp sgt i64 %1670, %1672
  br i1 %1673, label %1674, label %1675

1674:                                             ; preds = %1669
  br label %1782

1675:                                             ; preds = %1669
  %1676 = load ptr, ptr %4, align 8, !tbaa !5
  %1677 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1676, i32 0, i32 31
  %1678 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1677, i32 0, i32 4
  %1679 = load ptr, ptr %1678, align 8, !tbaa !81
  %1680 = getelementptr inbounds double, ptr %1679, i64 0
  %1681 = load ptr, ptr %4, align 8, !tbaa !5
  %1682 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1681, i32 0, i32 69
  %1683 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1682, i32 0, i32 12
  %1684 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1683, i32 0, i32 4
  %1685 = load ptr, ptr %1684, align 8, !tbaa !81
  %1686 = getelementptr inbounds double, ptr %1685, i64 0
  %1687 = load i64, ptr %14, align 8, !tbaa !82
  %1688 = sub nsw i64 %1687, 1
  %1689 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1688)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1680, i64 noundef 1, ptr noundef %1686, i64 noundef 1, i64 noundef %1689)
  %1690 = load ptr, ptr %4, align 8, !tbaa !5
  %1691 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1690, i32 0, i32 30
  %1692 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1691, i32 0, i32 4
  %1693 = load ptr, ptr %1692, align 8, !tbaa !81
  %1694 = getelementptr inbounds double, ptr %1693, i64 0
  %1695 = load ptr, ptr %4, align 8, !tbaa !5
  %1696 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1695, i32 0, i32 13
  %1697 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1696, i32 0, i32 6
  %1698 = load ptr, ptr %1697, align 8, !tbaa !81
  %1699 = load i64, ptr %20, align 8, !tbaa !82
  %1700 = getelementptr inbounds ptr, ptr %1698, i64 %1699
  %1701 = load ptr, ptr %1700, align 8, !tbaa !5
  %1702 = getelementptr inbounds double, ptr %1701, i64 0
  %1703 = load i64, ptr %13, align 8, !tbaa !82
  %1704 = sub nsw i64 %1703, 1
  %1705 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1704)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1694, i64 noundef 1, ptr noundef %1702, i64 noundef 1, i64 noundef %1705)
  %1706 = load i64, ptr %20, align 8, !tbaa !82
  %1707 = load ptr, ptr %4, align 8, !tbaa !5
  %1708 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1707, i32 0, i32 29
  store i64 %1706, ptr %1708, align 8, !tbaa !119
  %1709 = load ptr, ptr %4, align 8, !tbaa !5
  %1710 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef %1709, ptr noundef %1710)
  %1711 = load ptr, ptr %4, align 8, !tbaa !5
  %1712 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1711, i32 0, i32 28
  store i8 1, ptr %1712, align 2, !tbaa !112
  %1713 = load ptr, ptr %4, align 8, !tbaa !5
  %1714 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1713, i32 0, i32 73
  %1715 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1714, i32 0, i32 0
  store i32 8, ptr %1715, align 8, !tbaa !9
  br label %3719

1716:                                             ; preds = %221
  %1717 = load ptr, ptr %4, align 8, !tbaa !5
  %1718 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1717, i32 0, i32 28
  store i8 0, ptr %1718, align 2, !tbaa !112
  %1719 = load ptr, ptr %4, align 8, !tbaa !5
  %1720 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1719, i32 0, i32 52
  %1721 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1720, i32 0, i32 4
  %1722 = load ptr, ptr %1721, align 8, !tbaa !81
  %1723 = load i64, ptr %20, align 8, !tbaa !82
  %1724 = getelementptr inbounds double, ptr %1722, i64 %1723
  %1725 = load double, ptr %1724, align 8, !tbaa !83
  store double %1725, ptr %16, align 8, !tbaa !83
  %1726 = load ptr, ptr %4, align 8, !tbaa !5
  %1727 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1726, i32 0, i32 69
  %1728 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1727, i32 0, i32 13
  %1729 = load double, ptr %1728, align 8, !tbaa !122
  %1730 = load double, ptr %16, align 8, !tbaa !83
  %1731 = load ptr, ptr %4, align 8, !tbaa !5
  %1732 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1731, i32 0, i32 32
  %1733 = load double, ptr %1732, align 8, !tbaa !115
  %1734 = load ptr, ptr %4, align 8, !tbaa !5
  %1735 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1734, i32 0, i32 14
  %1736 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1735, i32 0, i32 4
  %1737 = load ptr, ptr %1736, align 8, !tbaa !81
  %1738 = load i64, ptr %20, align 8, !tbaa !82
  %1739 = getelementptr inbounds double, ptr %1737, i64 %1738
  %1740 = load double, ptr %1739, align 8, !tbaa !83
  %1741 = fsub double %1733, %1740
  %1742 = fmul double %1730, %1741
  %1743 = load ptr, ptr %5, align 8, !tbaa !5
  %1744 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1742, ptr noundef %1743)
  %1745 = fadd double %1729, %1744
  %1746 = load ptr, ptr %4, align 8, !tbaa !5
  %1747 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1746, i32 0, i32 69
  %1748 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1747, i32 0, i32 13
  store double %1745, ptr %1748, align 8, !tbaa !122
  %1749 = load double, ptr %16, align 8, !tbaa !83
  %1750 = load ptr, ptr %5, align 8, !tbaa !5
  %1751 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1749, ptr noundef %1750)
  %1752 = fmul double %1751, 2.000000e+00
  %1753 = load ptr, ptr %4, align 8, !tbaa !5
  %1754 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1753, i32 0, i32 32
  %1755 = load double, ptr %1754, align 8, !tbaa !115
  %1756 = load ptr, ptr %4, align 8, !tbaa !5
  %1757 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1756, i32 0, i32 14
  %1758 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1757, i32 0, i32 4
  %1759 = load ptr, ptr %1758, align 8, !tbaa !81
  %1760 = load i64, ptr %20, align 8, !tbaa !82
  %1761 = getelementptr inbounds double, ptr %1759, i64 %1760
  %1762 = load double, ptr %1761, align 8, !tbaa !83
  %1763 = fsub double %1755, %1762
  %1764 = fmul double %1752, %1763
  store double %1764, ptr %15, align 8, !tbaa !83
  %1765 = load ptr, ptr %4, align 8, !tbaa !5
  %1766 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1765, i32 0, i32 69
  %1767 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1766, i32 0, i32 17
  %1768 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1767, i32 0, i32 4
  %1769 = load ptr, ptr %1768, align 8, !tbaa !81
  %1770 = getelementptr inbounds double, ptr %1769, i64 0
  %1771 = load ptr, ptr %4, align 8, !tbaa !5
  %1772 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1771, i32 0, i32 33
  %1773 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1772, i32 0, i32 4
  %1774 = load ptr, ptr %1773, align 8, !tbaa !81
  %1775 = getelementptr inbounds double, ptr %1774, i64 0
  %1776 = load i64, ptr %14, align 8, !tbaa !82
  %1777 = sub nsw i64 %1776, 1
  %1778 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1777)
  %1779 = load double, ptr %15, align 8, !tbaa !83
  call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %1770, i64 noundef 1, ptr noundef %1775, i64 noundef 1, i64 noundef %1778, double noundef %1779)
  %1780 = load i64, ptr %20, align 8, !tbaa !82
  %1781 = add nsw i64 %1780, 1
  store i64 %1781, ptr %20, align 8, !tbaa !82
  br label %1669

1782:                                             ; preds = %1674
  br label %1447

1783:                                             ; preds = %1647
  %1784 = load ptr, ptr %4, align 8, !tbaa !5
  %1785 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1784, i32 0, i32 69
  %1786 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1785, i32 0, i32 21
  %1787 = load i8, ptr %1786, align 1, !tbaa !125, !range !99, !noundef !100
  %1788 = trunc i8 %1787 to i1
  br i1 %1788, label %1790, label %1789

1789:                                             ; preds = %1783
  br label %1889

1790:                                             ; preds = %1783
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %1791

1791:                                             ; preds = %1838, %1790
  %1792 = load i64, ptr %20, align 8, !tbaa !82
  %1793 = load i64, ptr %12, align 8, !tbaa !82
  %1794 = sub nsw i64 %1793, 1
  %1795 = icmp sgt i64 %1792, %1794
  br i1 %1795, label %1796, label %1797

1796:                                             ; preds = %1791
  br label %1888

1797:                                             ; preds = %1791
  %1798 = load ptr, ptr %4, align 8, !tbaa !5
  %1799 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1798, i32 0, i32 31
  %1800 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1799, i32 0, i32 4
  %1801 = load ptr, ptr %1800, align 8, !tbaa !81
  %1802 = getelementptr inbounds double, ptr %1801, i64 0
  %1803 = load ptr, ptr %4, align 8, !tbaa !5
  %1804 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1803, i32 0, i32 69
  %1805 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1804, i32 0, i32 12
  %1806 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1805, i32 0, i32 4
  %1807 = load ptr, ptr %1806, align 8, !tbaa !81
  %1808 = getelementptr inbounds double, ptr %1807, i64 0
  %1809 = load i64, ptr %14, align 8, !tbaa !82
  %1810 = sub nsw i64 %1809, 1
  %1811 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1810)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1802, i64 noundef 1, ptr noundef %1808, i64 noundef 1, i64 noundef %1811)
  %1812 = load ptr, ptr %4, align 8, !tbaa !5
  %1813 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1812, i32 0, i32 30
  %1814 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1813, i32 0, i32 4
  %1815 = load ptr, ptr %1814, align 8, !tbaa !81
  %1816 = getelementptr inbounds double, ptr %1815, i64 0
  %1817 = load ptr, ptr %4, align 8, !tbaa !5
  %1818 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1817, i32 0, i32 13
  %1819 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1818, i32 0, i32 6
  %1820 = load ptr, ptr %1819, align 8, !tbaa !81
  %1821 = load i64, ptr %20, align 8, !tbaa !82
  %1822 = getelementptr inbounds ptr, ptr %1820, i64 %1821
  %1823 = load ptr, ptr %1822, align 8, !tbaa !5
  %1824 = getelementptr inbounds double, ptr %1823, i64 0
  %1825 = load i64, ptr %13, align 8, !tbaa !82
  %1826 = sub nsw i64 %1825, 1
  %1827 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1826)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1816, i64 noundef 1, ptr noundef %1824, i64 noundef 1, i64 noundef %1827)
  %1828 = load i64, ptr %20, align 8, !tbaa !82
  %1829 = load ptr, ptr %4, align 8, !tbaa !5
  %1830 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1829, i32 0, i32 29
  store i64 %1828, ptr %1830, align 8, !tbaa !119
  %1831 = load ptr, ptr %4, align 8, !tbaa !5
  %1832 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef %1831, ptr noundef %1832)
  %1833 = load ptr, ptr %4, align 8, !tbaa !5
  %1834 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1833, i32 0, i32 28
  store i8 1, ptr %1834, align 2, !tbaa !112
  %1835 = load ptr, ptr %4, align 8, !tbaa !5
  %1836 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1835, i32 0, i32 73
  %1837 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1836, i32 0, i32 0
  store i32 9, ptr %1837, align 8, !tbaa !9
  br label %3719

1838:                                             ; preds = %228
  %1839 = load ptr, ptr %4, align 8, !tbaa !5
  %1840 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1839, i32 0, i32 28
  store i8 0, ptr %1840, align 2, !tbaa !112
  %1841 = load ptr, ptr %4, align 8, !tbaa !5
  %1842 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1841, i32 0, i32 52
  %1843 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1842, i32 0, i32 4
  %1844 = load ptr, ptr %1843, align 8, !tbaa !81
  %1845 = load i64, ptr %20, align 8, !tbaa !82
  %1846 = getelementptr inbounds double, ptr %1844, i64 %1845
  %1847 = load double, ptr %1846, align 8, !tbaa !83
  store double %1847, ptr %16, align 8, !tbaa !83
  %1848 = load double, ptr %16, align 8, !tbaa !83
  %1849 = load ptr, ptr %4, align 8, !tbaa !5
  %1850 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1849, i32 0, i32 32
  %1851 = load double, ptr %1850, align 8, !tbaa !115
  %1852 = load ptr, ptr %4, align 8, !tbaa !5
  %1853 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1852, i32 0, i32 14
  %1854 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1853, i32 0, i32 4
  %1855 = load ptr, ptr %1854, align 8, !tbaa !81
  %1856 = load i64, ptr %20, align 8, !tbaa !82
  %1857 = getelementptr inbounds double, ptr %1855, i64 %1856
  %1858 = load double, ptr %1857, align 8, !tbaa !83
  %1859 = fsub double %1851, %1858
  %1860 = fmul double %1848, %1859
  %1861 = load ptr, ptr %4, align 8, !tbaa !5
  %1862 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1861, i32 0, i32 69
  %1863 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1862, i32 0, i32 14
  %1864 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1863, i32 0, i32 4
  %1865 = load ptr, ptr %1864, align 8, !tbaa !81
  %1866 = load i64, ptr %20, align 8, !tbaa !82
  %1867 = getelementptr inbounds double, ptr %1865, i64 %1866
  store double %1860, ptr %1867, align 8, !tbaa !83
  %1868 = load ptr, ptr %4, align 8, !tbaa !5
  %1869 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1868, i32 0, i32 69
  %1870 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1869, i32 0, i32 15
  %1871 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1870, i32 0, i32 6
  %1872 = load ptr, ptr %1871, align 8, !tbaa !81
  %1873 = load i64, ptr %20, align 8, !tbaa !82
  %1874 = getelementptr inbounds ptr, ptr %1872, i64 %1873
  %1875 = load ptr, ptr %1874, align 8, !tbaa !5
  %1876 = getelementptr inbounds double, ptr %1875, i64 0
  %1877 = load ptr, ptr %4, align 8, !tbaa !5
  %1878 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1877, i32 0, i32 33
  %1879 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1878, i32 0, i32 4
  %1880 = load ptr, ptr %1879, align 8, !tbaa !81
  %1881 = getelementptr inbounds double, ptr %1880, i64 0
  %1882 = load i64, ptr %14, align 8, !tbaa !82
  %1883 = sub nsw i64 %1882, 1
  %1884 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1883)
  %1885 = load double, ptr %16, align 8, !tbaa !83
  call void @_ZN11alglib_impl10ae_v_movedEPdlPKdlld(ptr noundef %1876, i64 noundef 1, ptr noundef %1881, i64 noundef 1, i64 noundef %1884, double noundef %1885)
  %1886 = load i64, ptr %20, align 8, !tbaa !82
  %1887 = add nsw i64 %1886, 1
  store i64 %1887, ptr %20, align 8, !tbaa !82
  br label %1791

1888:                                             ; preds = %1796
  br label %1447

1889:                                             ; preds = %1789
  %1890 = load ptr, ptr %4, align 8, !tbaa !5
  %1891 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1890, i32 0, i32 69
  %1892 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1891, i32 0, i32 23
  %1893 = load i8, ptr %1892, align 1, !tbaa !126, !range !99, !noundef !100
  %1894 = trunc i8 %1893 to i1
  br i1 %1894, label %1896, label %1895

1895:                                             ; preds = %1889
  br label %1927

1896:                                             ; preds = %1889
  %1897 = load ptr, ptr %4, align 8, !tbaa !5
  %1898 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1897, i32 0, i32 31
  %1899 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1898, i32 0, i32 4
  %1900 = load ptr, ptr %1899, align 8, !tbaa !81
  %1901 = getelementptr inbounds double, ptr %1900, i64 0
  %1902 = load ptr, ptr %4, align 8, !tbaa !5
  %1903 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1902, i32 0, i32 69
  %1904 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1903, i32 0, i32 12
  %1905 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1904, i32 0, i32 4
  %1906 = load ptr, ptr %1905, align 8, !tbaa !81
  %1907 = getelementptr inbounds double, ptr %1906, i64 0
  %1908 = load i64, ptr %14, align 8, !tbaa !82
  %1909 = sub nsw i64 %1908, 1
  %1910 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1909)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1901, i64 noundef 1, ptr noundef %1907, i64 noundef 1, i64 noundef %1910)
  %1911 = load ptr, ptr %4, align 8, !tbaa !5
  %1912 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1911, i32 0, i32 69
  %1913 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1912, i32 0, i32 13
  %1914 = load double, ptr %1913, align 8, !tbaa !122
  %1915 = load ptr, ptr %4, align 8, !tbaa !5
  %1916 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1915, i32 0, i32 32
  store double %1914, ptr %1916, align 8, !tbaa !115
  %1917 = load ptr, ptr %4, align 8, !tbaa !5
  %1918 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef %1917, ptr noundef %1918)
  %1919 = load ptr, ptr %4, align 8, !tbaa !5
  %1920 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1919, i32 0, i32 26
  store i8 1, ptr %1920, align 8, !tbaa !127
  %1921 = load ptr, ptr %4, align 8, !tbaa !5
  %1922 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1921, i32 0, i32 73
  %1923 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1922, i32 0, i32 0
  store i32 10, ptr %1923, align 8, !tbaa !9
  br label %3719

1924:                                             ; preds = %235
  %1925 = load ptr, ptr %4, align 8, !tbaa !5
  %1926 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1925, i32 0, i32 26
  store i8 0, ptr %1926, align 8, !tbaa !127
  br label %1447

1927:                                             ; preds = %1895
  br label %1928

1928:                                             ; preds = %1927, %1458
  %1929 = load ptr, ptr %4, align 8, !tbaa !5
  %1930 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1929, i32 0, i32 0
  %1931 = load i64, ptr %1930, align 8, !tbaa !103
  %1932 = icmp ne i64 %1931, 2
  br i1 %1932, label %1933, label %1934

1933:                                             ; preds = %1928
  br label %2518

1934:                                             ; preds = %1928
  %1935 = load ptr, ptr %4, align 8, !tbaa !5
  %1936 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1935, i32 0, i32 69
  %1937 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1936, i32 0, i32 24
  %1938 = load i64, ptr %1937, align 8, !tbaa !128
  %1939 = icmp ne i64 %1938, -1
  br i1 %1939, label %1940, label %1941

1940:                                             ; preds = %1934
  br label %1964

1941:                                             ; preds = %1934
  %1942 = load ptr, ptr %4, align 8, !tbaa !5
  %1943 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1942, i32 0, i32 34
  store i64 -1, ptr %1943, align 8, !tbaa !102
  %1944 = load i64, ptr %14, align 8, !tbaa !82
  %1945 = load ptr, ptr %4, align 8, !tbaa !5
  %1946 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1945, i32 0, i32 39
  store i64 %1944, ptr %1946, align 8, !tbaa !109
  %1947 = load ptr, ptr %4, align 8, !tbaa !5
  %1948 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1947, i32 0, i32 69
  %1949 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1948, i32 0, i32 26
  %1950 = load double, ptr %1949, align 8, !tbaa !129
  %1951 = load ptr, ptr %4, align 8, !tbaa !5
  %1952 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1951, i32 0, i32 36
  store double %1950, ptr %1952, align 8, !tbaa !130
  %1953 = load i64, ptr %14, align 8, !tbaa !82
  %1954 = load ptr, ptr %4, align 8, !tbaa !5
  %1955 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1954, i32 0, i32 69
  %1956 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1955, i32 0, i32 25
  %1957 = load ptr, ptr %4, align 8, !tbaa !5
  %1958 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1957, i32 0, i32 35
  %1959 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1953, ptr noundef %1956, ptr noundef %1958, ptr noundef %1959)
  %1960 = load ptr, ptr %4, align 8, !tbaa !5
  %1961 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1960, i32 0, i32 73
  %1962 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1961, i32 0, i32 0
  store i32 11, ptr %1962, align 8, !tbaa !9
  br label %3719

1963:                                             ; preds = %242
  br label %1447

1964:                                             ; preds = %1940
  %1965 = load ptr, ptr %4, align 8, !tbaa !5
  %1966 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1965, i32 0, i32 69
  %1967 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1966, i32 0, i32 24
  %1968 = load i64, ptr %1967, align 8, !tbaa !128
  %1969 = icmp ne i64 %1968, 2
  br i1 %1969, label %1970, label %1971

1970:                                             ; preds = %1964
  br label %2139

1971:                                             ; preds = %1964
  %1972 = load ptr, ptr %4, align 8, !tbaa !5
  %1973 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1972, i32 0, i32 69
  %1974 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1973, i32 0, i32 27
  %1975 = load i64, ptr %1974, align 8, !tbaa !131
  %1976 = icmp eq i64 %1975, 1
  %1977 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1976, ptr noundef @.str.642, ptr noundef %1977)
  %1978 = load ptr, ptr %4, align 8, !tbaa !5
  %1979 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1978, i32 0, i32 69
  %1980 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1979, i32 0, i32 28
  %1981 = load i64, ptr %1980, align 8, !tbaa !132
  %1982 = load i64, ptr %12, align 8, !tbaa !82
  %1983 = icmp eq i64 %1981, %1982
  %1984 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1983, ptr noundef @.str.643, ptr noundef %1984)
  %1985 = load ptr, ptr %4, align 8, !tbaa !5
  %1986 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1985, i32 0, i32 69
  %1987 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1986, i32 0, i32 29
  %1988 = load i64, ptr %1987, align 8, !tbaa !133
  %1989 = load i64, ptr %14, align 8, !tbaa !82
  %1990 = icmp eq i64 %1988, %1989
  %1991 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1990, ptr noundef @.str.644, ptr noundef %1991)
  %1992 = load ptr, ptr %4, align 8, !tbaa !5
  %1993 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1992, i32 0, i32 69
  %1994 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %1993, i32 0, i32 30
  %1995 = load i64, ptr %1994, align 8, !tbaa !134
  %1996 = icmp eq i64 %1995, 0
  %1997 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1996, ptr noundef @.str.645, ptr noundef %1997)
  %1998 = load ptr, ptr %4, align 8, !tbaa !5
  %1999 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %1998, i32 0, i32 34
  store i64 2, ptr %1999, align 8, !tbaa !102
  %2000 = load i64, ptr %12, align 8, !tbaa !82
  %2001 = load ptr, ptr %4, align 8, !tbaa !5
  %2002 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2001, i32 0, i32 37
  store i64 %2000, ptr %2002, align 8, !tbaa !107
  %2003 = load ptr, ptr %4, align 8, !tbaa !5
  %2004 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2003, i32 0, i32 38
  store i64 1, ptr %2004, align 8, !tbaa !108
  %2005 = load i64, ptr %14, align 8, !tbaa !82
  %2006 = load ptr, ptr %4, align 8, !tbaa !5
  %2007 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2006, i32 0, i32 39
  store i64 %2005, ptr %2007, align 8, !tbaa !109
  %2008 = load i64, ptr %13, align 8, !tbaa !82
  %2009 = load ptr, ptr %4, align 8, !tbaa !5
  %2010 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2009, i32 0, i32 40
  store i64 %2008, ptr %2010, align 8, !tbaa !110
  %2011 = load i64, ptr %12, align 8, !tbaa !82
  %2012 = load i64, ptr %14, align 8, !tbaa !82
  %2013 = load i64, ptr %13, align 8, !tbaa !82
  %2014 = add nsw i64 %2012, %2013
  %2015 = mul nsw i64 %2011, %2014
  %2016 = load ptr, ptr %4, align 8, !tbaa !5
  %2017 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2016, i32 0, i32 42
  %2018 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2015, ptr noundef %2017, ptr noundef %2018)
  store i64 0, ptr %23, align 8, !tbaa !82
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %2019

2019:                                             ; preds = %2079, %1971
  %2020 = load i64, ptr %20, align 8, !tbaa !82
  %2021 = load i64, ptr %12, align 8, !tbaa !82
  %2022 = sub nsw i64 %2021, 1
  %2023 = icmp sle i64 %2020, %2022
  br i1 %2023, label %2024, label %2082

2024:                                             ; preds = %2019
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %2025

2025:                                             ; preds = %2047, %2024
  %2026 = load i64, ptr %21, align 8, !tbaa !82
  %2027 = load i64, ptr %14, align 8, !tbaa !82
  %2028 = sub nsw i64 %2027, 1
  %2029 = icmp sle i64 %2026, %2028
  br i1 %2029, label %2030, label %2050

2030:                                             ; preds = %2025
  %2031 = load ptr, ptr %4, align 8, !tbaa !5
  %2032 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2031, i32 0, i32 69
  %2033 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2032, i32 0, i32 32
  %2034 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2033, i32 0, i32 4
  %2035 = load ptr, ptr %2034, align 8, !tbaa !81
  %2036 = load i64, ptr %21, align 8, !tbaa !82
  %2037 = getelementptr inbounds double, ptr %2035, i64 %2036
  %2038 = load double, ptr %2037, align 8, !tbaa !83
  %2039 = load ptr, ptr %4, align 8, !tbaa !5
  %2040 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2039, i32 0, i32 42
  %2041 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2040, i32 0, i32 4
  %2042 = load ptr, ptr %2041, align 8, !tbaa !81
  %2043 = load i64, ptr %23, align 8, !tbaa !82
  %2044 = getelementptr inbounds double, ptr %2042, i64 %2043
  store double %2038, ptr %2044, align 8, !tbaa !83
  %2045 = load i64, ptr %23, align 8, !tbaa !82
  %2046 = add nsw i64 %2045, 1
  store i64 %2046, ptr %23, align 8, !tbaa !82
  br label %2047

2047:                                             ; preds = %2030
  %2048 = load i64, ptr %21, align 8, !tbaa !82
  %2049 = add nsw i64 %2048, 1
  store i64 %2049, ptr %21, align 8, !tbaa !82
  br label %2025, !llvm.loop !135

2050:                                             ; preds = %2025
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %2051

2051:                                             ; preds = %2075, %2050
  %2052 = load i64, ptr %21, align 8, !tbaa !82
  %2053 = load i64, ptr %13, align 8, !tbaa !82
  %2054 = sub nsw i64 %2053, 1
  %2055 = icmp sle i64 %2052, %2054
  br i1 %2055, label %2056, label %2078

2056:                                             ; preds = %2051
  %2057 = load ptr, ptr %4, align 8, !tbaa !5
  %2058 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2057, i32 0, i32 13
  %2059 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2058, i32 0, i32 6
  %2060 = load ptr, ptr %2059, align 8, !tbaa !81
  %2061 = load i64, ptr %20, align 8, !tbaa !82
  %2062 = getelementptr inbounds ptr, ptr %2060, i64 %2061
  %2063 = load ptr, ptr %2062, align 8, !tbaa !5
  %2064 = load i64, ptr %21, align 8, !tbaa !82
  %2065 = getelementptr inbounds double, ptr %2063, i64 %2064
  %2066 = load double, ptr %2065, align 8, !tbaa !83
  %2067 = load ptr, ptr %4, align 8, !tbaa !5
  %2068 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2067, i32 0, i32 42
  %2069 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2068, i32 0, i32 4
  %2070 = load ptr, ptr %2069, align 8, !tbaa !81
  %2071 = load i64, ptr %23, align 8, !tbaa !82
  %2072 = getelementptr inbounds double, ptr %2070, i64 %2071
  store double %2066, ptr %2072, align 8, !tbaa !83
  %2073 = load i64, ptr %23, align 8, !tbaa !82
  %2074 = add nsw i64 %2073, 1
  store i64 %2074, ptr %23, align 8, !tbaa !82
  br label %2075

2075:                                             ; preds = %2056
  %2076 = load i64, ptr %21, align 8, !tbaa !82
  %2077 = add nsw i64 %2076, 1
  store i64 %2077, ptr %21, align 8, !tbaa !82
  br label %2051, !llvm.loop !136

2078:                                             ; preds = %2051
  br label %2079

2079:                                             ; preds = %2078
  %2080 = load i64, ptr %20, align 8, !tbaa !82
  %2081 = add nsw i64 %2080, 1
  store i64 %2081, ptr %20, align 8, !tbaa !82
  br label %2019, !llvm.loop !137

2082:                                             ; preds = %2019
  %2083 = load i64, ptr %12, align 8, !tbaa !82
  %2084 = load ptr, ptr %4, align 8, !tbaa !5
  %2085 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2084, i32 0, i32 43
  %2086 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2083, ptr noundef %2085, ptr noundef %2086)
  %2087 = load i64, ptr %12, align 8, !tbaa !82
  %2088 = load i64, ptr %14, align 8, !tbaa !82
  %2089 = mul nsw i64 %2087, %2088
  %2090 = load ptr, ptr %4, align 8, !tbaa !5
  %2091 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2090, i32 0, i32 44
  %2092 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2089, ptr noundef %2091, ptr noundef %2092)
  %2093 = load ptr, ptr %4, align 8, !tbaa !5
  %2094 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2093, i32 0, i32 73
  %2095 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2094, i32 0, i32 0
  store i32 12, ptr %2095, align 8, !tbaa !9
  br label %3719

2096:                                             ; preds = %249
  %2097 = load ptr, ptr %4, align 8, !tbaa !5
  %2098 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2097, i32 0, i32 69
  %2099 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2098, i32 0, i32 24
  store i64 0, ptr %2099, align 8, !tbaa !128
  %2100 = load i64, ptr %12, align 8, !tbaa !82
  %2101 = load ptr, ptr %4, align 8, !tbaa !5
  %2102 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2101, i32 0, i32 43
  %2103 = load ptr, ptr %4, align 8, !tbaa !5
  %2104 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2103, i32 0, i32 69
  %2105 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2104, i32 0, i32 33
  %2106 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2100, ptr noundef %2102, ptr noundef %2105, ptr noundef %2106)
  %2107 = load i64, ptr %12, align 8, !tbaa !82
  %2108 = load ptr, ptr %4, align 8, !tbaa !5
  %2109 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2108, i32 0, i32 14
  %2110 = load ptr, ptr %4, align 8, !tbaa !5
  %2111 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2110, i32 0, i32 69
  %2112 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2111, i32 0, i32 33
  %2113 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2107, double noundef -1.000000e+00, ptr noundef %2109, ptr noundef %2112, ptr noundef %2113)
  %2114 = load i64, ptr %12, align 8, !tbaa !82
  %2115 = load ptr, ptr %4, align 8, !tbaa !5
  %2116 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2115, i32 0, i32 52
  %2117 = load ptr, ptr %4, align 8, !tbaa !5
  %2118 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2117, i32 0, i32 69
  %2119 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2118, i32 0, i32 33
  %2120 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rmergemulvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2114, ptr noundef %2116, ptr noundef %2119, ptr noundef %2120)
  %2121 = load i64, ptr %12, align 8, !tbaa !82
  %2122 = load i64, ptr %14, align 8, !tbaa !82
  %2123 = mul nsw i64 %2121, %2122
  %2124 = load ptr, ptr %4, align 8, !tbaa !5
  %2125 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2124, i32 0, i32 44
  %2126 = load ptr, ptr %4, align 8, !tbaa !5
  %2127 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2126, i32 0, i32 69
  %2128 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2127, i32 0, i32 34
  %2129 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2123, ptr noundef %2125, ptr noundef %2128, ptr noundef %2129)
  %2130 = load i64, ptr %12, align 8, !tbaa !82
  %2131 = load i64, ptr %14, align 8, !tbaa !82
  %2132 = mul nsw i64 %2130, %2131
  %2133 = load ptr, ptr %4, align 8, !tbaa !5
  %2134 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2133, i32 0, i32 53
  %2135 = load ptr, ptr %4, align 8, !tbaa !5
  %2136 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2135, i32 0, i32 69
  %2137 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2136, i32 0, i32 34
  %2138 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rmergemulvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2132, ptr noundef %2134, ptr noundef %2137, ptr noundef %2138)
  br label %1447

2139:                                             ; preds = %1970
  %2140 = load ptr, ptr %4, align 8, !tbaa !5
  %2141 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2140, i32 0, i32 69
  %2142 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2141, i32 0, i32 24
  %2143 = load i64, ptr %2142, align 8, !tbaa !128
  %2144 = icmp ne i64 %2143, 3
  br i1 %2144, label %2145, label %2146

2145:                                             ; preds = %2139
  br label %2366

2146:                                             ; preds = %2139
  %2147 = load ptr, ptr %4, align 8, !tbaa !5
  %2148 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2147, i32 0, i32 69
  %2149 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2148, i32 0, i32 27
  %2150 = load i64, ptr %2149, align 8, !tbaa !131
  %2151 = icmp eq i64 %2150, 1
  %2152 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2151, ptr noundef @.str.646, ptr noundef %2152)
  %2153 = load ptr, ptr %4, align 8, !tbaa !5
  %2154 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2153, i32 0, i32 69
  %2155 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2154, i32 0, i32 28
  %2156 = load i64, ptr %2155, align 8, !tbaa !132
  %2157 = load i64, ptr %12, align 8, !tbaa !82
  %2158 = icmp eq i64 %2156, %2157
  %2159 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2158, ptr noundef @.str.647, ptr noundef %2159)
  %2160 = load ptr, ptr %4, align 8, !tbaa !5
  %2161 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2160, i32 0, i32 69
  %2162 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2161, i32 0, i32 29
  %2163 = load i64, ptr %2162, align 8, !tbaa !133
  %2164 = load i64, ptr %14, align 8, !tbaa !82
  %2165 = icmp eq i64 %2163, %2164
  %2166 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2165, ptr noundef @.str.648, ptr noundef %2166)
  %2167 = load ptr, ptr %4, align 8, !tbaa !5
  %2168 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2167, i32 0, i32 69
  %2169 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2168, i32 0, i32 30
  %2170 = load i64, ptr %2169, align 8, !tbaa !134
  %2171 = icmp eq i64 %2170, 0
  %2172 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2171, ptr noundef @.str.649, ptr noundef %2172)
  %2173 = load ptr, ptr %4, align 8, !tbaa !5
  %2174 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2173, i32 0, i32 69
  %2175 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2174, i32 0, i32 31
  %2176 = load i64, ptr %2175, align 8, !tbaa !138
  %2177 = icmp sge i64 %2176, 2
  %2178 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2177, ptr noundef @.str.650, ptr noundef %2178)
  %2179 = load ptr, ptr %4, align 8, !tbaa !5
  %2180 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2179, i32 0, i32 34
  store i64 3, ptr %2180, align 8, !tbaa !102
  %2181 = load i64, ptr %12, align 8, !tbaa !82
  %2182 = load ptr, ptr %4, align 8, !tbaa !5
  %2183 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2182, i32 0, i32 37
  store i64 %2181, ptr %2183, align 8, !tbaa !107
  %2184 = load ptr, ptr %4, align 8, !tbaa !5
  %2185 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2184, i32 0, i32 38
  store i64 1, ptr %2185, align 8, !tbaa !108
  %2186 = load i64, ptr %14, align 8, !tbaa !82
  %2187 = load ptr, ptr %4, align 8, !tbaa !5
  %2188 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2187, i32 0, i32 39
  store i64 %2186, ptr %2188, align 8, !tbaa !109
  %2189 = load i64, ptr %13, align 8, !tbaa !82
  %2190 = load ptr, ptr %4, align 8, !tbaa !5
  %2191 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2190, i32 0, i32 40
  store i64 %2189, ptr %2191, align 8, !tbaa !110
  %2192 = load ptr, ptr %4, align 8, !tbaa !5
  %2193 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2192, i32 0, i32 69
  %2194 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2193, i32 0, i32 31
  %2195 = load i64, ptr %2194, align 8, !tbaa !138
  %2196 = load ptr, ptr %4, align 8, !tbaa !5
  %2197 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2196, i32 0, i32 41
  store i64 %2195, ptr %2197, align 8, !tbaa !139
  %2198 = load i64, ptr %12, align 8, !tbaa !82
  %2199 = load i64, ptr %14, align 8, !tbaa !82
  %2200 = load i64, ptr %13, align 8, !tbaa !82
  %2201 = add nsw i64 %2199, %2200
  %2202 = load i64, ptr %14, align 8, !tbaa !82
  %2203 = mul nsw i64 %2202, 2
  %2204 = load ptr, ptr %4, align 8, !tbaa !5
  %2205 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2204, i32 0, i32 41
  %2206 = load i64, ptr %2205, align 8, !tbaa !139
  %2207 = mul nsw i64 %2203, %2206
  %2208 = add nsw i64 %2201, %2207
  %2209 = mul nsw i64 %2198, %2208
  %2210 = load ptr, ptr %4, align 8, !tbaa !5
  %2211 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2210, i32 0, i32 42
  %2212 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2209, ptr noundef %2211, ptr noundef %2212)
  store i64 0, ptr %23, align 8, !tbaa !82
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %2213

2213:                                             ; preds = %2306, %2146
  %2214 = load i64, ptr %20, align 8, !tbaa !82
  %2215 = load i64, ptr %12, align 8, !tbaa !82
  %2216 = sub nsw i64 %2215, 1
  %2217 = icmp sle i64 %2214, %2216
  br i1 %2217, label %2218, label %2309

2218:                                             ; preds = %2213
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %2219

2219:                                             ; preds = %2241, %2218
  %2220 = load i64, ptr %21, align 8, !tbaa !82
  %2221 = load i64, ptr %14, align 8, !tbaa !82
  %2222 = sub nsw i64 %2221, 1
  %2223 = icmp sle i64 %2220, %2222
  br i1 %2223, label %2224, label %2244

2224:                                             ; preds = %2219
  %2225 = load ptr, ptr %4, align 8, !tbaa !5
  %2226 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2225, i32 0, i32 69
  %2227 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2226, i32 0, i32 32
  %2228 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2227, i32 0, i32 4
  %2229 = load ptr, ptr %2228, align 8, !tbaa !81
  %2230 = load i64, ptr %21, align 8, !tbaa !82
  %2231 = getelementptr inbounds double, ptr %2229, i64 %2230
  %2232 = load double, ptr %2231, align 8, !tbaa !83
  %2233 = load ptr, ptr %4, align 8, !tbaa !5
  %2234 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2233, i32 0, i32 42
  %2235 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2234, i32 0, i32 4
  %2236 = load ptr, ptr %2235, align 8, !tbaa !81
  %2237 = load i64, ptr %23, align 8, !tbaa !82
  %2238 = getelementptr inbounds double, ptr %2236, i64 %2237
  store double %2232, ptr %2238, align 8, !tbaa !83
  %2239 = load i64, ptr %23, align 8, !tbaa !82
  %2240 = add nsw i64 %2239, 1
  store i64 %2240, ptr %23, align 8, !tbaa !82
  br label %2241

2241:                                             ; preds = %2224
  %2242 = load i64, ptr %21, align 8, !tbaa !82
  %2243 = add nsw i64 %2242, 1
  store i64 %2243, ptr %21, align 8, !tbaa !82
  br label %2219, !llvm.loop !140

2244:                                             ; preds = %2219
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %2245

2245:                                             ; preds = %2269, %2244
  %2246 = load i64, ptr %21, align 8, !tbaa !82
  %2247 = load i64, ptr %13, align 8, !tbaa !82
  %2248 = sub nsw i64 %2247, 1
  %2249 = icmp sle i64 %2246, %2248
  br i1 %2249, label %2250, label %2272

2250:                                             ; preds = %2245
  %2251 = load ptr, ptr %4, align 8, !tbaa !5
  %2252 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2251, i32 0, i32 13
  %2253 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2252, i32 0, i32 6
  %2254 = load ptr, ptr %2253, align 8, !tbaa !81
  %2255 = load i64, ptr %20, align 8, !tbaa !82
  %2256 = getelementptr inbounds ptr, ptr %2254, i64 %2255
  %2257 = load ptr, ptr %2256, align 8, !tbaa !5
  %2258 = load i64, ptr %21, align 8, !tbaa !82
  %2259 = getelementptr inbounds double, ptr %2257, i64 %2258
  %2260 = load double, ptr %2259, align 8, !tbaa !83
  %2261 = load ptr, ptr %4, align 8, !tbaa !5
  %2262 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2261, i32 0, i32 42
  %2263 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2262, i32 0, i32 4
  %2264 = load ptr, ptr %2263, align 8, !tbaa !81
  %2265 = load i64, ptr %23, align 8, !tbaa !82
  %2266 = getelementptr inbounds double, ptr %2264, i64 %2265
  store double %2260, ptr %2266, align 8, !tbaa !83
  %2267 = load i64, ptr %23, align 8, !tbaa !82
  %2268 = add nsw i64 %2267, 1
  store i64 %2268, ptr %23, align 8, !tbaa !82
  br label %2269

2269:                                             ; preds = %2250
  %2270 = load i64, ptr %21, align 8, !tbaa !82
  %2271 = add nsw i64 %2270, 1
  store i64 %2271, ptr %21, align 8, !tbaa !82
  br label %2245, !llvm.loop !141

2272:                                             ; preds = %2245
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %2273

2273:                                             ; preds = %2302, %2272
  %2274 = load i64, ptr %21, align 8, !tbaa !82
  %2275 = load i64, ptr %14, align 8, !tbaa !82
  %2276 = mul nsw i64 %2275, 2
  %2277 = load ptr, ptr %4, align 8, !tbaa !5
  %2278 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2277, i32 0, i32 41
  %2279 = load i64, ptr %2278, align 8, !tbaa !139
  %2280 = mul nsw i64 %2276, %2279
  %2281 = sub nsw i64 %2280, 1
  %2282 = icmp sle i64 %2274, %2281
  br i1 %2282, label %2283, label %2305

2283:                                             ; preds = %2273
  %2284 = load ptr, ptr %4, align 8, !tbaa !5
  %2285 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2284, i32 0, i32 69
  %2286 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2285, i32 0, i32 32
  %2287 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2286, i32 0, i32 4
  %2288 = load ptr, ptr %2287, align 8, !tbaa !81
  %2289 = load i64, ptr %14, align 8, !tbaa !82
  %2290 = load i64, ptr %21, align 8, !tbaa !82
  %2291 = add nsw i64 %2289, %2290
  %2292 = getelementptr inbounds double, ptr %2288, i64 %2291
  %2293 = load double, ptr %2292, align 8, !tbaa !83
  %2294 = load ptr, ptr %4, align 8, !tbaa !5
  %2295 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2294, i32 0, i32 42
  %2296 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2295, i32 0, i32 4
  %2297 = load ptr, ptr %2296, align 8, !tbaa !81
  %2298 = load i64, ptr %23, align 8, !tbaa !82
  %2299 = getelementptr inbounds double, ptr %2297, i64 %2298
  store double %2293, ptr %2299, align 8, !tbaa !83
  %2300 = load i64, ptr %23, align 8, !tbaa !82
  %2301 = add nsw i64 %2300, 1
  store i64 %2301, ptr %23, align 8, !tbaa !82
  br label %2302

2302:                                             ; preds = %2283
  %2303 = load i64, ptr %21, align 8, !tbaa !82
  %2304 = add nsw i64 %2303, 1
  store i64 %2304, ptr %21, align 8, !tbaa !82
  br label %2273, !llvm.loop !142

2305:                                             ; preds = %2273
  br label %2306

2306:                                             ; preds = %2305
  %2307 = load i64, ptr %20, align 8, !tbaa !82
  %2308 = add nsw i64 %2307, 1
  store i64 %2308, ptr %20, align 8, !tbaa !82
  br label %2213, !llvm.loop !143

2309:                                             ; preds = %2213
  %2310 = load i64, ptr %12, align 8, !tbaa !82
  %2311 = load ptr, ptr %4, align 8, !tbaa !5
  %2312 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2311, i32 0, i32 43
  %2313 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2310, ptr noundef %2312, ptr noundef %2313)
  %2314 = load i64, ptr %12, align 8, !tbaa !82
  %2315 = load i64, ptr %14, align 8, !tbaa !82
  %2316 = mul nsw i64 %2314, %2315
  %2317 = load ptr, ptr %4, align 8, !tbaa !5
  %2318 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2317, i32 0, i32 44
  %2319 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2316, ptr noundef %2318, ptr noundef %2319)
  %2320 = load ptr, ptr %4, align 8, !tbaa !5
  %2321 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2320, i32 0, i32 73
  %2322 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2321, i32 0, i32 0
  store i32 13, ptr %2322, align 8, !tbaa !9
  br label %3719

2323:                                             ; preds = %256
  %2324 = load ptr, ptr %4, align 8, !tbaa !5
  %2325 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2324, i32 0, i32 69
  %2326 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2325, i32 0, i32 24
  store i64 0, ptr %2326, align 8, !tbaa !128
  %2327 = load i64, ptr %12, align 8, !tbaa !82
  %2328 = load ptr, ptr %4, align 8, !tbaa !5
  %2329 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2328, i32 0, i32 43
  %2330 = load ptr, ptr %4, align 8, !tbaa !5
  %2331 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2330, i32 0, i32 69
  %2332 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2331, i32 0, i32 33
  %2333 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2327, ptr noundef %2329, ptr noundef %2332, ptr noundef %2333)
  %2334 = load i64, ptr %12, align 8, !tbaa !82
  %2335 = load ptr, ptr %4, align 8, !tbaa !5
  %2336 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2335, i32 0, i32 14
  %2337 = load ptr, ptr %4, align 8, !tbaa !5
  %2338 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2337, i32 0, i32 69
  %2339 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2338, i32 0, i32 33
  %2340 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2334, double noundef -1.000000e+00, ptr noundef %2336, ptr noundef %2339, ptr noundef %2340)
  %2341 = load i64, ptr %12, align 8, !tbaa !82
  %2342 = load ptr, ptr %4, align 8, !tbaa !5
  %2343 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2342, i32 0, i32 52
  %2344 = load ptr, ptr %4, align 8, !tbaa !5
  %2345 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2344, i32 0, i32 69
  %2346 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2345, i32 0, i32 33
  %2347 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rmergemulvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2341, ptr noundef %2343, ptr noundef %2346, ptr noundef %2347)
  %2348 = load i64, ptr %12, align 8, !tbaa !82
  %2349 = load i64, ptr %14, align 8, !tbaa !82
  %2350 = mul nsw i64 %2348, %2349
  %2351 = load ptr, ptr %4, align 8, !tbaa !5
  %2352 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2351, i32 0, i32 44
  %2353 = load ptr, ptr %4, align 8, !tbaa !5
  %2354 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2353, i32 0, i32 69
  %2355 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2354, i32 0, i32 34
  %2356 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2350, ptr noundef %2352, ptr noundef %2355, ptr noundef %2356)
  %2357 = load i64, ptr %12, align 8, !tbaa !82
  %2358 = load i64, ptr %14, align 8, !tbaa !82
  %2359 = mul nsw i64 %2357, %2358
  %2360 = load ptr, ptr %4, align 8, !tbaa !5
  %2361 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2360, i32 0, i32 53
  %2362 = load ptr, ptr %4, align 8, !tbaa !5
  %2363 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2362, i32 0, i32 69
  %2364 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2363, i32 0, i32 34
  %2365 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rmergemulvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2359, ptr noundef %2361, ptr noundef %2364, ptr noundef %2365)
  br label %1447

2366:                                             ; preds = %2145
  %2367 = load ptr, ptr %4, align 8, !tbaa !5
  %2368 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2367, i32 0, i32 69
  %2369 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2368, i32 0, i32 24
  %2370 = load i64, ptr %2369, align 8, !tbaa !128
  %2371 = icmp ne i64 %2370, 4
  br i1 %2371, label %2372, label %2373

2372:                                             ; preds = %2366
  br label %2517

2373:                                             ; preds = %2366
  %2374 = load ptr, ptr %4, align 8, !tbaa !5
  %2375 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2374, i32 0, i32 69
  %2376 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2375, i32 0, i32 27
  %2377 = load i64, ptr %2376, align 8, !tbaa !131
  %2378 = icmp eq i64 %2377, 1
  %2379 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2378, ptr noundef @.str.642, ptr noundef %2379)
  %2380 = load ptr, ptr %4, align 8, !tbaa !5
  %2381 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2380, i32 0, i32 69
  %2382 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2381, i32 0, i32 28
  %2383 = load i64, ptr %2382, align 8, !tbaa !132
  %2384 = load i64, ptr %12, align 8, !tbaa !82
  %2385 = icmp eq i64 %2383, %2384
  %2386 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2385, ptr noundef @.str.643, ptr noundef %2386)
  %2387 = load ptr, ptr %4, align 8, !tbaa !5
  %2388 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2387, i32 0, i32 69
  %2389 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2388, i32 0, i32 29
  %2390 = load i64, ptr %2389, align 8, !tbaa !133
  %2391 = load i64, ptr %14, align 8, !tbaa !82
  %2392 = icmp eq i64 %2390, %2391
  %2393 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2392, ptr noundef @.str.644, ptr noundef %2393)
  %2394 = load ptr, ptr %4, align 8, !tbaa !5
  %2395 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2394, i32 0, i32 69
  %2396 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2395, i32 0, i32 30
  %2397 = load i64, ptr %2396, align 8, !tbaa !134
  %2398 = icmp eq i64 %2397, 0
  %2399 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2398, ptr noundef @.str.645, ptr noundef %2399)
  %2400 = load ptr, ptr %4, align 8, !tbaa !5
  %2401 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2400, i32 0, i32 34
  store i64 4, ptr %2401, align 8, !tbaa !102
  %2402 = load i64, ptr %12, align 8, !tbaa !82
  %2403 = load ptr, ptr %4, align 8, !tbaa !5
  %2404 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2403, i32 0, i32 37
  store i64 %2402, ptr %2404, align 8, !tbaa !107
  %2405 = load ptr, ptr %4, align 8, !tbaa !5
  %2406 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2405, i32 0, i32 38
  store i64 1, ptr %2406, align 8, !tbaa !108
  %2407 = load i64, ptr %14, align 8, !tbaa !82
  %2408 = load ptr, ptr %4, align 8, !tbaa !5
  %2409 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2408, i32 0, i32 39
  store i64 %2407, ptr %2409, align 8, !tbaa !109
  %2410 = load i64, ptr %13, align 8, !tbaa !82
  %2411 = load ptr, ptr %4, align 8, !tbaa !5
  %2412 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2411, i32 0, i32 40
  store i64 %2410, ptr %2412, align 8, !tbaa !110
  %2413 = load i64, ptr %12, align 8, !tbaa !82
  %2414 = load i64, ptr %14, align 8, !tbaa !82
  %2415 = load i64, ptr %13, align 8, !tbaa !82
  %2416 = add nsw i64 %2414, %2415
  %2417 = mul nsw i64 %2413, %2416
  %2418 = load ptr, ptr %4, align 8, !tbaa !5
  %2419 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2418, i32 0, i32 42
  %2420 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2417, ptr noundef %2419, ptr noundef %2420)
  store i64 0, ptr %23, align 8, !tbaa !82
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %2421

2421:                                             ; preds = %2481, %2373
  %2422 = load i64, ptr %20, align 8, !tbaa !82
  %2423 = load i64, ptr %12, align 8, !tbaa !82
  %2424 = sub nsw i64 %2423, 1
  %2425 = icmp sle i64 %2422, %2424
  br i1 %2425, label %2426, label %2484

2426:                                             ; preds = %2421
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %2427

2427:                                             ; preds = %2449, %2426
  %2428 = load i64, ptr %21, align 8, !tbaa !82
  %2429 = load i64, ptr %14, align 8, !tbaa !82
  %2430 = sub nsw i64 %2429, 1
  %2431 = icmp sle i64 %2428, %2430
  br i1 %2431, label %2432, label %2452

2432:                                             ; preds = %2427
  %2433 = load ptr, ptr %4, align 8, !tbaa !5
  %2434 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2433, i32 0, i32 69
  %2435 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2434, i32 0, i32 32
  %2436 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2435, i32 0, i32 4
  %2437 = load ptr, ptr %2436, align 8, !tbaa !81
  %2438 = load i64, ptr %21, align 8, !tbaa !82
  %2439 = getelementptr inbounds double, ptr %2437, i64 %2438
  %2440 = load double, ptr %2439, align 8, !tbaa !83
  %2441 = load ptr, ptr %4, align 8, !tbaa !5
  %2442 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2441, i32 0, i32 42
  %2443 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2442, i32 0, i32 4
  %2444 = load ptr, ptr %2443, align 8, !tbaa !81
  %2445 = load i64, ptr %23, align 8, !tbaa !82
  %2446 = getelementptr inbounds double, ptr %2444, i64 %2445
  store double %2440, ptr %2446, align 8, !tbaa !83
  %2447 = load i64, ptr %23, align 8, !tbaa !82
  %2448 = add nsw i64 %2447, 1
  store i64 %2448, ptr %23, align 8, !tbaa !82
  br label %2449

2449:                                             ; preds = %2432
  %2450 = load i64, ptr %21, align 8, !tbaa !82
  %2451 = add nsw i64 %2450, 1
  store i64 %2451, ptr %21, align 8, !tbaa !82
  br label %2427, !llvm.loop !144

2452:                                             ; preds = %2427
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %2453

2453:                                             ; preds = %2477, %2452
  %2454 = load i64, ptr %21, align 8, !tbaa !82
  %2455 = load i64, ptr %13, align 8, !tbaa !82
  %2456 = sub nsw i64 %2455, 1
  %2457 = icmp sle i64 %2454, %2456
  br i1 %2457, label %2458, label %2480

2458:                                             ; preds = %2453
  %2459 = load ptr, ptr %4, align 8, !tbaa !5
  %2460 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2459, i32 0, i32 13
  %2461 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2460, i32 0, i32 6
  %2462 = load ptr, ptr %2461, align 8, !tbaa !81
  %2463 = load i64, ptr %20, align 8, !tbaa !82
  %2464 = getelementptr inbounds ptr, ptr %2462, i64 %2463
  %2465 = load ptr, ptr %2464, align 8, !tbaa !5
  %2466 = load i64, ptr %21, align 8, !tbaa !82
  %2467 = getelementptr inbounds double, ptr %2465, i64 %2466
  %2468 = load double, ptr %2467, align 8, !tbaa !83
  %2469 = load ptr, ptr %4, align 8, !tbaa !5
  %2470 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2469, i32 0, i32 42
  %2471 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2470, i32 0, i32 4
  %2472 = load ptr, ptr %2471, align 8, !tbaa !81
  %2473 = load i64, ptr %23, align 8, !tbaa !82
  %2474 = getelementptr inbounds double, ptr %2472, i64 %2473
  store double %2468, ptr %2474, align 8, !tbaa !83
  %2475 = load i64, ptr %23, align 8, !tbaa !82
  %2476 = add nsw i64 %2475, 1
  store i64 %2476, ptr %23, align 8, !tbaa !82
  br label %2477

2477:                                             ; preds = %2458
  %2478 = load i64, ptr %21, align 8, !tbaa !82
  %2479 = add nsw i64 %2478, 1
  store i64 %2479, ptr %21, align 8, !tbaa !82
  br label %2453, !llvm.loop !145

2480:                                             ; preds = %2453
  br label %2481

2481:                                             ; preds = %2480
  %2482 = load i64, ptr %20, align 8, !tbaa !82
  %2483 = add nsw i64 %2482, 1
  store i64 %2483, ptr %20, align 8, !tbaa !82
  br label %2421, !llvm.loop !146

2484:                                             ; preds = %2421
  %2485 = load i64, ptr %12, align 8, !tbaa !82
  %2486 = load ptr, ptr %4, align 8, !tbaa !5
  %2487 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2486, i32 0, i32 43
  %2488 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2485, ptr noundef %2487, ptr noundef %2488)
  %2489 = load ptr, ptr %4, align 8, !tbaa !5
  %2490 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2489, i32 0, i32 73
  %2491 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2490, i32 0, i32 0
  store i32 14, ptr %2491, align 8, !tbaa !9
  br label %3719

2492:                                             ; preds = %263
  %2493 = load ptr, ptr %4, align 8, !tbaa !5
  %2494 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2493, i32 0, i32 69
  %2495 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2494, i32 0, i32 24
  store i64 0, ptr %2495, align 8, !tbaa !128
  %2496 = load i64, ptr %12, align 8, !tbaa !82
  %2497 = load ptr, ptr %4, align 8, !tbaa !5
  %2498 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2497, i32 0, i32 43
  %2499 = load ptr, ptr %4, align 8, !tbaa !5
  %2500 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2499, i32 0, i32 69
  %2501 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2500, i32 0, i32 33
  %2502 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2496, ptr noundef %2498, ptr noundef %2501, ptr noundef %2502)
  %2503 = load i64, ptr %12, align 8, !tbaa !82
  %2504 = load ptr, ptr %4, align 8, !tbaa !5
  %2505 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2504, i32 0, i32 14
  %2506 = load ptr, ptr %4, align 8, !tbaa !5
  %2507 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2506, i32 0, i32 69
  %2508 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2507, i32 0, i32 33
  %2509 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2503, double noundef -1.000000e+00, ptr noundef %2505, ptr noundef %2508, ptr noundef %2509)
  %2510 = load i64, ptr %12, align 8, !tbaa !82
  %2511 = load ptr, ptr %4, align 8, !tbaa !5
  %2512 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2511, i32 0, i32 52
  %2513 = load ptr, ptr %4, align 8, !tbaa !5
  %2514 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2513, i32 0, i32 69
  %2515 = getelementptr inbounds %"struct.alglib_impl::minlmstate", ptr %2514, i32 0, i32 33
  %2516 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rmergemulvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2510, ptr noundef %2512, ptr noundef %2515, ptr noundef %2516)
  br label %1447

2517:                                             ; preds = %2372
  br label %2518

2518:                                             ; preds = %2517, %1933
  %2519 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.651, ptr noundef %2519)
  br label %1447

2520:                                             ; preds = %1452
  %2521 = load ptr, ptr %4, align 8, !tbaa !5
  %2522 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2521, i32 0, i32 69
  %2523 = load ptr, ptr %4, align 8, !tbaa !5
  %2524 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2523, i32 0, i32 9
  %2525 = load ptr, ptr %4, align 8, !tbaa !5
  %2526 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2525, i32 0, i32 70
  %2527 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl12minlmresultsEPKNS_10minlmstateEPNS_9ae_vectorEPNS_11minlmreportEPNS_8ae_stateE(ptr noundef %2522, ptr noundef %2524, ptr noundef %2526, ptr noundef %2527)
  %2528 = load ptr, ptr %4, align 8, !tbaa !5
  %2529 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2528, i32 0, i32 70
  %2530 = getelementptr inbounds %"struct.alglib_impl::minlmreport", ptr %2529, i32 0, i32 1
  %2531 = load i64, ptr %2530, align 8, !tbaa !147
  %2532 = load ptr, ptr %4, align 8, !tbaa !5
  %2533 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2532, i32 0, i32 61
  store i64 %2531, ptr %2533, align 8, !tbaa !113
  %2534 = load ptr, ptr %4, align 8, !tbaa !5
  %2535 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2534, i32 0, i32 70
  %2536 = getelementptr inbounds %"struct.alglib_impl::minlmreport", ptr %2535, i32 0, i32 0
  %2537 = load i64, ptr %2536, align 8, !tbaa !148
  %2538 = load ptr, ptr %4, align 8, !tbaa !5
  %2539 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2538, i32 0, i32 60
  store i64 %2537, ptr %2539, align 8, !tbaa !149
  %2540 = load ptr, ptr %4, align 8, !tbaa !5
  %2541 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2540, i32 0, i32 61
  %2542 = load i64, ptr %2541, align 8, !tbaa !113
  %2543 = icmp sle i64 %2542, 0
  br i1 %2543, label %2544, label %2545

2544:                                             ; preds = %2520
  br label %3716

2545:                                             ; preds = %2520
  %2546 = load ptr, ptr %4, align 8, !tbaa !5
  %2547 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2546, i32 0, i32 63
  store double 0.000000e+00, ptr %2547, align 8, !tbaa !150
  %2548 = load ptr, ptr %4, align 8, !tbaa !5
  %2549 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2548, i32 0, i32 67
  store double 0.000000e+00, ptr %2549, align 8, !tbaa !151
  %2550 = load ptr, ptr %4, align 8, !tbaa !5
  %2551 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2550, i32 0, i32 64
  store double 0.000000e+00, ptr %2551, align 8, !tbaa !152
  %2552 = load ptr, ptr %4, align 8, !tbaa !5
  %2553 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2552, i32 0, i32 65
  store double 0.000000e+00, ptr %2553, align 8, !tbaa !153
  %2554 = load ptr, ptr %4, align 8, !tbaa !5
  %2555 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2554, i32 0, i32 66
  store double 0.000000e+00, ptr %2555, align 8, !tbaa !154
  %2556 = load ptr, ptr %4, align 8, !tbaa !5
  %2557 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2556, i32 0, i32 0
  %2558 = load i64, ptr %2557, align 8, !tbaa !103
  %2559 = icmp ne i64 %2558, 1
  br i1 %2559, label %2560, label %2561

2560:                                             ; preds = %2545
  br label %2627

2561:                                             ; preds = %2545
  %2562 = load i64, ptr %12, align 8, !tbaa !82
  %2563 = load ptr, ptr %4, align 8, !tbaa !5
  %2564 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2563, i32 0, i32 43
  %2565 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2562, ptr noundef %2564, ptr noundef %2565)
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %2566

2566:                                             ; preds = %2612, %2561
  %2567 = load i64, ptr %20, align 8, !tbaa !82
  %2568 = load i64, ptr %12, align 8, !tbaa !82
  %2569 = sub nsw i64 %2568, 1
  %2570 = icmp sgt i64 %2567, %2569
  br i1 %2570, label %2571, label %2572

2571:                                             ; preds = %2566
  br label %2626

2572:                                             ; preds = %2566
  %2573 = load ptr, ptr %4, align 8, !tbaa !5
  %2574 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2573, i32 0, i32 31
  %2575 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2574, i32 0, i32 4
  %2576 = load ptr, ptr %2575, align 8, !tbaa !81
  %2577 = getelementptr inbounds double, ptr %2576, i64 0
  %2578 = load ptr, ptr %4, align 8, !tbaa !5
  %2579 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2578, i32 0, i32 9
  %2580 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2579, i32 0, i32 4
  %2581 = load ptr, ptr %2580, align 8, !tbaa !81
  %2582 = getelementptr inbounds double, ptr %2581, i64 0
  %2583 = load i64, ptr %14, align 8, !tbaa !82
  %2584 = sub nsw i64 %2583, 1
  %2585 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2584)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2577, i64 noundef 1, ptr noundef %2582, i64 noundef 1, i64 noundef %2585)
  %2586 = load ptr, ptr %4, align 8, !tbaa !5
  %2587 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2586, i32 0, i32 30
  %2588 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2587, i32 0, i32 4
  %2589 = load ptr, ptr %2588, align 8, !tbaa !81
  %2590 = getelementptr inbounds double, ptr %2589, i64 0
  %2591 = load ptr, ptr %4, align 8, !tbaa !5
  %2592 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2591, i32 0, i32 13
  %2593 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2592, i32 0, i32 6
  %2594 = load ptr, ptr %2593, align 8, !tbaa !81
  %2595 = load i64, ptr %20, align 8, !tbaa !82
  %2596 = getelementptr inbounds ptr, ptr %2594, i64 %2595
  %2597 = load ptr, ptr %2596, align 8, !tbaa !5
  %2598 = getelementptr inbounds double, ptr %2597, i64 0
  %2599 = load i64, ptr %13, align 8, !tbaa !82
  %2600 = sub nsw i64 %2599, 1
  %2601 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2600)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2590, i64 noundef 1, ptr noundef %2598, i64 noundef 1, i64 noundef %2601)
  %2602 = load i64, ptr %20, align 8, !tbaa !82
  %2603 = load ptr, ptr %4, align 8, !tbaa !5
  %2604 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2603, i32 0, i32 29
  store i64 %2602, ptr %2604, align 8, !tbaa !119
  %2605 = load ptr, ptr %4, align 8, !tbaa !5
  %2606 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef %2605, ptr noundef %2606)
  %2607 = load ptr, ptr %4, align 8, !tbaa !5
  %2608 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2607, i32 0, i32 27
  store i8 1, ptr %2608, align 1, !tbaa !120
  %2609 = load ptr, ptr %4, align 8, !tbaa !5
  %2610 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2609, i32 0, i32 73
  %2611 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2610, i32 0, i32 0
  store i32 15, ptr %2611, align 8, !tbaa !9
  br label %3719

2612:                                             ; preds = %270
  %2613 = load ptr, ptr %4, align 8, !tbaa !5
  %2614 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2613, i32 0, i32 27
  store i8 0, ptr %2614, align 1, !tbaa !120
  %2615 = load ptr, ptr %4, align 8, !tbaa !5
  %2616 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2615, i32 0, i32 32
  %2617 = load double, ptr %2616, align 8, !tbaa !115
  %2618 = load ptr, ptr %4, align 8, !tbaa !5
  %2619 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2618, i32 0, i32 43
  %2620 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2619, i32 0, i32 4
  %2621 = load ptr, ptr %2620, align 8, !tbaa !81
  %2622 = load i64, ptr %20, align 8, !tbaa !82
  %2623 = getelementptr inbounds double, ptr %2621, i64 %2622
  store double %2617, ptr %2623, align 8, !tbaa !83
  %2624 = load i64, ptr %20, align 8, !tbaa !82
  %2625 = add nsw i64 %2624, 1
  store i64 %2625, ptr %20, align 8, !tbaa !82
  br label %2566

2626:                                             ; preds = %2571
  br label %2725

2627:                                             ; preds = %2560
  %2628 = load ptr, ptr %4, align 8, !tbaa !5
  %2629 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2628, i32 0, i32 0
  %2630 = load i64, ptr %2629, align 8, !tbaa !103
  %2631 = icmp eq i64 %2630, 2
  %2632 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2631, ptr noundef @.str.652, ptr noundef %2632)
  %2633 = load ptr, ptr %4, align 8, !tbaa !5
  %2634 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2633, i32 0, i32 34
  store i64 4, ptr %2634, align 8, !tbaa !102
  %2635 = load i64, ptr %12, align 8, !tbaa !82
  %2636 = load ptr, ptr %4, align 8, !tbaa !5
  %2637 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2636, i32 0, i32 37
  store i64 %2635, ptr %2637, align 8, !tbaa !107
  %2638 = load ptr, ptr %4, align 8, !tbaa !5
  %2639 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2638, i32 0, i32 38
  store i64 1, ptr %2639, align 8, !tbaa !108
  %2640 = load i64, ptr %14, align 8, !tbaa !82
  %2641 = load ptr, ptr %4, align 8, !tbaa !5
  %2642 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2641, i32 0, i32 39
  store i64 %2640, ptr %2642, align 8, !tbaa !109
  %2643 = load i64, ptr %13, align 8, !tbaa !82
  %2644 = load ptr, ptr %4, align 8, !tbaa !5
  %2645 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2644, i32 0, i32 40
  store i64 %2643, ptr %2645, align 8, !tbaa !110
  %2646 = load i64, ptr %12, align 8, !tbaa !82
  %2647 = load i64, ptr %14, align 8, !tbaa !82
  %2648 = load i64, ptr %13, align 8, !tbaa !82
  %2649 = add nsw i64 %2647, %2648
  %2650 = mul nsw i64 %2646, %2649
  %2651 = load ptr, ptr %4, align 8, !tbaa !5
  %2652 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2651, i32 0, i32 42
  %2653 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2650, ptr noundef %2652, ptr noundef %2653)
  store i64 0, ptr %23, align 8, !tbaa !82
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %2654

2654:                                             ; preds = %2713, %2627
  %2655 = load i64, ptr %20, align 8, !tbaa !82
  %2656 = load i64, ptr %12, align 8, !tbaa !82
  %2657 = sub nsw i64 %2656, 1
  %2658 = icmp sle i64 %2655, %2657
  br i1 %2658, label %2659, label %2716

2659:                                             ; preds = %2654
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %2660

2660:                                             ; preds = %2681, %2659
  %2661 = load i64, ptr %21, align 8, !tbaa !82
  %2662 = load i64, ptr %14, align 8, !tbaa !82
  %2663 = sub nsw i64 %2662, 1
  %2664 = icmp sle i64 %2661, %2663
  br i1 %2664, label %2665, label %2684

2665:                                             ; preds = %2660
  %2666 = load ptr, ptr %4, align 8, !tbaa !5
  %2667 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2666, i32 0, i32 9
  %2668 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2667, i32 0, i32 4
  %2669 = load ptr, ptr %2668, align 8, !tbaa !81
  %2670 = load i64, ptr %21, align 8, !tbaa !82
  %2671 = getelementptr inbounds double, ptr %2669, i64 %2670
  %2672 = load double, ptr %2671, align 8, !tbaa !83
  %2673 = load ptr, ptr %4, align 8, !tbaa !5
  %2674 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2673, i32 0, i32 42
  %2675 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2674, i32 0, i32 4
  %2676 = load ptr, ptr %2675, align 8, !tbaa !81
  %2677 = load i64, ptr %23, align 8, !tbaa !82
  %2678 = getelementptr inbounds double, ptr %2676, i64 %2677
  store double %2672, ptr %2678, align 8, !tbaa !83
  %2679 = load i64, ptr %23, align 8, !tbaa !82
  %2680 = add nsw i64 %2679, 1
  store i64 %2680, ptr %23, align 8, !tbaa !82
  br label %2681

2681:                                             ; preds = %2665
  %2682 = load i64, ptr %21, align 8, !tbaa !82
  %2683 = add nsw i64 %2682, 1
  store i64 %2683, ptr %21, align 8, !tbaa !82
  br label %2660, !llvm.loop !155

2684:                                             ; preds = %2660
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %2685

2685:                                             ; preds = %2709, %2684
  %2686 = load i64, ptr %21, align 8, !tbaa !82
  %2687 = load i64, ptr %13, align 8, !tbaa !82
  %2688 = sub nsw i64 %2687, 1
  %2689 = icmp sle i64 %2686, %2688
  br i1 %2689, label %2690, label %2712

2690:                                             ; preds = %2685
  %2691 = load ptr, ptr %4, align 8, !tbaa !5
  %2692 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2691, i32 0, i32 13
  %2693 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2692, i32 0, i32 6
  %2694 = load ptr, ptr %2693, align 8, !tbaa !81
  %2695 = load i64, ptr %20, align 8, !tbaa !82
  %2696 = getelementptr inbounds ptr, ptr %2694, i64 %2695
  %2697 = load ptr, ptr %2696, align 8, !tbaa !5
  %2698 = load i64, ptr %21, align 8, !tbaa !82
  %2699 = getelementptr inbounds double, ptr %2697, i64 %2698
  %2700 = load double, ptr %2699, align 8, !tbaa !83
  %2701 = load ptr, ptr %4, align 8, !tbaa !5
  %2702 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2701, i32 0, i32 42
  %2703 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2702, i32 0, i32 4
  %2704 = load ptr, ptr %2703, align 8, !tbaa !81
  %2705 = load i64, ptr %23, align 8, !tbaa !82
  %2706 = getelementptr inbounds double, ptr %2704, i64 %2705
  store double %2700, ptr %2706, align 8, !tbaa !83
  %2707 = load i64, ptr %23, align 8, !tbaa !82
  %2708 = add nsw i64 %2707, 1
  store i64 %2708, ptr %23, align 8, !tbaa !82
  br label %2709

2709:                                             ; preds = %2690
  %2710 = load i64, ptr %21, align 8, !tbaa !82
  %2711 = add nsw i64 %2710, 1
  store i64 %2711, ptr %21, align 8, !tbaa !82
  br label %2685, !llvm.loop !156

2712:                                             ; preds = %2685
  br label %2713

2713:                                             ; preds = %2712
  %2714 = load i64, ptr %20, align 8, !tbaa !82
  %2715 = add nsw i64 %2714, 1
  store i64 %2715, ptr %20, align 8, !tbaa !82
  br label %2654, !llvm.loop !157

2716:                                             ; preds = %2654
  %2717 = load i64, ptr %12, align 8, !tbaa !82
  %2718 = load ptr, ptr %4, align 8, !tbaa !5
  %2719 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2718, i32 0, i32 43
  %2720 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2717, ptr noundef %2719, ptr noundef %2720)
  %2721 = load ptr, ptr %4, align 8, !tbaa !5
  %2722 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2721, i32 0, i32 73
  %2723 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2722, i32 0, i32 0
  store i32 16, ptr %2723, align 8, !tbaa !9
  br label %3719

2724:                                             ; preds = %277
  br label %2725

2725:                                             ; preds = %2724, %2626
  store double 0.000000e+00, ptr %19, align 8, !tbaa !83
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %2726

2726:                                             ; preds = %2856, %2725
  %2727 = load i64, ptr %20, align 8, !tbaa !82
  %2728 = load i64, ptr %12, align 8, !tbaa !82
  %2729 = sub nsw i64 %2728, 1
  %2730 = icmp sle i64 %2727, %2729
  br i1 %2730, label %2731, label %2859

2731:                                             ; preds = %2726
  %2732 = load ptr, ptr %4, align 8, !tbaa !5
  %2733 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2732, i32 0, i32 43
  %2734 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2733, i32 0, i32 4
  %2735 = load ptr, ptr %2734, align 8, !tbaa !81
  %2736 = load i64, ptr %20, align 8, !tbaa !82
  %2737 = getelementptr inbounds double, ptr %2735, i64 %2736
  %2738 = load double, ptr %2737, align 8, !tbaa !83
  store double %2738, ptr %15, align 8, !tbaa !83
  %2739 = load ptr, ptr %4, align 8, !tbaa !5
  %2740 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2739, i32 0, i32 52
  %2741 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2740, i32 0, i32 4
  %2742 = load ptr, ptr %2741, align 8, !tbaa !81
  %2743 = load i64, ptr %20, align 8, !tbaa !82
  %2744 = getelementptr inbounds double, ptr %2742, i64 %2743
  %2745 = load double, ptr %2744, align 8, !tbaa !83
  store double %2745, ptr %16, align 8, !tbaa !83
  %2746 = load ptr, ptr %4, align 8, !tbaa !5
  %2747 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2746, i32 0, i32 63
  %2748 = load double, ptr %2747, align 8, !tbaa !150
  %2749 = load double, ptr %15, align 8, !tbaa !83
  %2750 = load ptr, ptr %4, align 8, !tbaa !5
  %2751 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2750, i32 0, i32 14
  %2752 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2751, i32 0, i32 4
  %2753 = load ptr, ptr %2752, align 8, !tbaa !81
  %2754 = load i64, ptr %20, align 8, !tbaa !82
  %2755 = getelementptr inbounds double, ptr %2753, i64 %2754
  %2756 = load double, ptr %2755, align 8, !tbaa !83
  %2757 = fsub double %2749, %2756
  %2758 = load ptr, ptr %5, align 8, !tbaa !5
  %2759 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2757, ptr noundef %2758)
  %2760 = fadd double %2748, %2759
  %2761 = load ptr, ptr %4, align 8, !tbaa !5
  %2762 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2761, i32 0, i32 63
  store double %2760, ptr %2762, align 8, !tbaa !150
  %2763 = load ptr, ptr %4, align 8, !tbaa !5
  %2764 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2763, i32 0, i32 67
  %2765 = load double, ptr %2764, align 8, !tbaa !151
  %2766 = load double, ptr %16, align 8, !tbaa !83
  %2767 = load double, ptr %15, align 8, !tbaa !83
  %2768 = load ptr, ptr %4, align 8, !tbaa !5
  %2769 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2768, i32 0, i32 14
  %2770 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2769, i32 0, i32 4
  %2771 = load ptr, ptr %2770, align 8, !tbaa !81
  %2772 = load i64, ptr %20, align 8, !tbaa !82
  %2773 = getelementptr inbounds double, ptr %2771, i64 %2772
  %2774 = load double, ptr %2773, align 8, !tbaa !83
  %2775 = fsub double %2767, %2774
  %2776 = fmul double %2766, %2775
  %2777 = load ptr, ptr %5, align 8, !tbaa !5
  %2778 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2776, ptr noundef %2777)
  %2779 = fadd double %2765, %2778
  %2780 = load ptr, ptr %4, align 8, !tbaa !5
  %2781 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2780, i32 0, i32 67
  store double %2779, ptr %2781, align 8, !tbaa !151
  %2782 = load ptr, ptr %4, align 8, !tbaa !5
  %2783 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2782, i32 0, i32 64
  %2784 = load double, ptr %2783, align 8, !tbaa !152
  %2785 = load double, ptr %15, align 8, !tbaa !83
  %2786 = load ptr, ptr %4, align 8, !tbaa !5
  %2787 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2786, i32 0, i32 14
  %2788 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2787, i32 0, i32 4
  %2789 = load ptr, ptr %2788, align 8, !tbaa !81
  %2790 = load i64, ptr %20, align 8, !tbaa !82
  %2791 = getelementptr inbounds double, ptr %2789, i64 %2790
  %2792 = load double, ptr %2791, align 8, !tbaa !83
  %2793 = fsub double %2785, %2792
  %2794 = load ptr, ptr %5, align 8, !tbaa !5
  %2795 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2793, ptr noundef %2794)
  %2796 = fadd double %2784, %2795
  %2797 = load ptr, ptr %4, align 8, !tbaa !5
  %2798 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2797, i32 0, i32 64
  store double %2796, ptr %2798, align 8, !tbaa !152
  %2799 = load ptr, ptr %4, align 8, !tbaa !5
  %2800 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2799, i32 0, i32 14
  %2801 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2800, i32 0, i32 4
  %2802 = load ptr, ptr %2801, align 8, !tbaa !81
  %2803 = load i64, ptr %20, align 8, !tbaa !82
  %2804 = getelementptr inbounds double, ptr %2802, i64 %2803
  %2805 = load double, ptr %2804, align 8, !tbaa !83
  %2806 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %2805, double noundef 0.000000e+00)
  br i1 %2806, label %2807, label %2837

2807:                                             ; preds = %2731
  %2808 = load ptr, ptr %4, align 8, !tbaa !5
  %2809 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2808, i32 0, i32 65
  %2810 = load double, ptr %2809, align 8, !tbaa !153
  %2811 = load double, ptr %15, align 8, !tbaa !83
  %2812 = load ptr, ptr %4, align 8, !tbaa !5
  %2813 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2812, i32 0, i32 14
  %2814 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2813, i32 0, i32 4
  %2815 = load ptr, ptr %2814, align 8, !tbaa !81
  %2816 = load i64, ptr %20, align 8, !tbaa !82
  %2817 = getelementptr inbounds double, ptr %2815, i64 %2816
  %2818 = load double, ptr %2817, align 8, !tbaa !83
  %2819 = fsub double %2811, %2818
  %2820 = load ptr, ptr %5, align 8, !tbaa !5
  %2821 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2819, ptr noundef %2820)
  %2822 = load ptr, ptr %4, align 8, !tbaa !5
  %2823 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2822, i32 0, i32 14
  %2824 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2823, i32 0, i32 4
  %2825 = load ptr, ptr %2824, align 8, !tbaa !81
  %2826 = load i64, ptr %20, align 8, !tbaa !82
  %2827 = getelementptr inbounds double, ptr %2825, i64 %2826
  %2828 = load double, ptr %2827, align 8, !tbaa !83
  %2829 = load ptr, ptr %5, align 8, !tbaa !5
  %2830 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2828, ptr noundef %2829)
  %2831 = fdiv double %2821, %2830
  %2832 = fadd double %2810, %2831
  %2833 = load ptr, ptr %4, align 8, !tbaa !5
  %2834 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2833, i32 0, i32 65
  store double %2832, ptr %2834, align 8, !tbaa !153
  %2835 = load double, ptr %19, align 8, !tbaa !83
  %2836 = fadd double %2835, 1.000000e+00
  store double %2836, ptr %19, align 8, !tbaa !83
  br label %2837

2837:                                             ; preds = %2807, %2731
  %2838 = load ptr, ptr %4, align 8, !tbaa !5
  %2839 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2838, i32 0, i32 66
  %2840 = load double, ptr %2839, align 8, !tbaa !154
  %2841 = load double, ptr %15, align 8, !tbaa !83
  %2842 = load ptr, ptr %4, align 8, !tbaa !5
  %2843 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2842, i32 0, i32 14
  %2844 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2843, i32 0, i32 4
  %2845 = load ptr, ptr %2844, align 8, !tbaa !81
  %2846 = load i64, ptr %20, align 8, !tbaa !82
  %2847 = getelementptr inbounds double, ptr %2845, i64 %2846
  %2848 = load double, ptr %2847, align 8, !tbaa !83
  %2849 = fsub double %2841, %2848
  %2850 = load ptr, ptr %5, align 8, !tbaa !5
  %2851 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2849, ptr noundef %2850)
  %2852 = load ptr, ptr %5, align 8, !tbaa !5
  %2853 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2840, double noundef %2851, ptr noundef %2852)
  %2854 = load ptr, ptr %4, align 8, !tbaa !5
  %2855 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2854, i32 0, i32 66
  store double %2853, ptr %2855, align 8, !tbaa !154
  br label %2856

2856:                                             ; preds = %2837
  %2857 = load i64, ptr %20, align 8, !tbaa !82
  %2858 = add nsw i64 %2857, 1
  store i64 %2858, ptr %20, align 8, !tbaa !82
  br label %2726, !llvm.loop !158

2859:                                             ; preds = %2726
  %2860 = load ptr, ptr %4, align 8, !tbaa !5
  %2861 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2860, i32 0, i32 63
  %2862 = load double, ptr %2861, align 8, !tbaa !150
  %2863 = load i64, ptr %12, align 8, !tbaa !82
  %2864 = sitofp i64 %2863 to double
  %2865 = fdiv double %2862, %2864
  %2866 = load ptr, ptr %5, align 8, !tbaa !5
  %2867 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2865, ptr noundef %2866)
  %2868 = load ptr, ptr %4, align 8, !tbaa !5
  %2869 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2868, i32 0, i32 63
  store double %2867, ptr %2869, align 8, !tbaa !150
  %2870 = load ptr, ptr %4, align 8, !tbaa !5
  %2871 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2870, i32 0, i32 67
  %2872 = load double, ptr %2871, align 8, !tbaa !151
  %2873 = load i64, ptr %12, align 8, !tbaa !82
  %2874 = sitofp i64 %2873 to double
  %2875 = fdiv double %2872, %2874
  %2876 = load ptr, ptr %5, align 8, !tbaa !5
  %2877 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2875, ptr noundef %2876)
  %2878 = load ptr, ptr %4, align 8, !tbaa !5
  %2879 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2878, i32 0, i32 67
  store double %2877, ptr %2879, align 8, !tbaa !151
  %2880 = load ptr, ptr %4, align 8, !tbaa !5
  %2881 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2880, i32 0, i32 64
  %2882 = load double, ptr %2881, align 8, !tbaa !152
  %2883 = load i64, ptr %12, align 8, !tbaa !82
  %2884 = sitofp i64 %2883 to double
  %2885 = fdiv double %2882, %2884
  %2886 = load ptr, ptr %4, align 8, !tbaa !5
  %2887 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2886, i32 0, i32 64
  store double %2885, ptr %2887, align 8, !tbaa !152
  %2888 = load double, ptr %19, align 8, !tbaa !83
  %2889 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %2888, double noundef 0.000000e+00)
  br i1 %2889, label %2890, label %2898

2890:                                             ; preds = %2859
  %2891 = load ptr, ptr %4, align 8, !tbaa !5
  %2892 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2891, i32 0, i32 65
  %2893 = load double, ptr %2892, align 8, !tbaa !153
  %2894 = load double, ptr %19, align 8, !tbaa !83
  %2895 = fdiv double %2893, %2894
  %2896 = load ptr, ptr %4, align 8, !tbaa !5
  %2897 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2896, i32 0, i32 65
  store double %2895, ptr %2897, align 8, !tbaa !153
  br label %2898

2898:                                             ; preds = %2890, %2859
  %2899 = load ptr, ptr %4, align 8, !tbaa !5
  %2900 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2899, i32 0, i32 57
  %2901 = load i64, ptr %12, align 8, !tbaa !82
  %2902 = load i64, ptr %14, align 8, !tbaa !82
  %2903 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rmatrixsetlengthatleastEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef %2900, i64 noundef %2901, i64 noundef %2902, ptr noundef %2903)
  %2904 = load ptr, ptr %4, align 8, !tbaa !5
  %2905 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2904, i32 0, i32 56
  %2906 = load i64, ptr %12, align 8, !tbaa !82
  %2907 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %2905, i64 noundef %2906, ptr noundef %2907)
  %2908 = load ptr, ptr %4, align 8, !tbaa !5
  %2909 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2908, i32 0, i32 55
  %2910 = load i64, ptr %14, align 8, !tbaa !82
  %2911 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %2909, i64 noundef %2910, ptr noundef %2911)
  %2912 = load ptr, ptr %4, align 8, !tbaa !5
  %2913 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2912, i32 0, i32 20
  %2914 = load double, ptr %2913, align 8, !tbaa !159
  %2915 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2914, double noundef 0.000000e+00)
  br i1 %2915, label %2916, label %2917

2916:                                             ; preds = %2898
  br label %3448

2917:                                             ; preds = %2898
  %2918 = load ptr, ptr %4, align 8, !tbaa !5
  %2919 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2918, i32 0, i32 0
  %2920 = load i64, ptr %2919, align 8, !tbaa !103
  %2921 = icmp ne i64 %2920, 1
  br i1 %2921, label %2922, label %2923

2922:                                             ; preds = %2917
  br label %3146

2923:                                             ; preds = %2917
  %2924 = load ptr, ptr %4, align 8, !tbaa !5
  %2925 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef %2924, ptr noundef %2925)
  %2926 = load ptr, ptr %4, align 8, !tbaa !5
  %2927 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2926, i32 0, i32 27
  store i8 1, ptr %2927, align 1, !tbaa !120
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %2928

2928:                                             ; preds = %3140, %2923
  %2929 = load i64, ptr %20, align 8, !tbaa !82
  %2930 = load i64, ptr %12, align 8, !tbaa !82
  %2931 = sub nsw i64 %2930, 1
  %2932 = icmp sgt i64 %2929, %2931
  br i1 %2932, label %2933, label %2934

2933:                                             ; preds = %2928
  br label %3143

2934:                                             ; preds = %2928
  %2935 = load ptr, ptr %4, align 8, !tbaa !5
  %2936 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2935, i32 0, i32 30
  %2937 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2936, i32 0, i32 4
  %2938 = load ptr, ptr %2937, align 8, !tbaa !81
  %2939 = getelementptr inbounds double, ptr %2938, i64 0
  %2940 = load ptr, ptr %4, align 8, !tbaa !5
  %2941 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2940, i32 0, i32 13
  %2942 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2941, i32 0, i32 6
  %2943 = load ptr, ptr %2942, align 8, !tbaa !81
  %2944 = load i64, ptr %20, align 8, !tbaa !82
  %2945 = getelementptr inbounds ptr, ptr %2943, i64 %2944
  %2946 = load ptr, ptr %2945, align 8, !tbaa !5
  %2947 = getelementptr inbounds double, ptr %2946, i64 0
  %2948 = load i64, ptr %13, align 8, !tbaa !82
  %2949 = sub nsw i64 %2948, 1
  %2950 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %2949)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %2939, i64 noundef 1, ptr noundef %2947, i64 noundef 1, i64 noundef %2950)
  %2951 = load i64, ptr %20, align 8, !tbaa !82
  %2952 = load ptr, ptr %4, align 8, !tbaa !5
  %2953 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2952, i32 0, i32 29
  store i64 %2951, ptr %2953, align 8, !tbaa !119
  %2954 = load ptr, ptr %4, align 8, !tbaa !5
  %2955 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2954, i32 0, i32 73
  %2956 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2955, i32 0, i32 0
  store i32 17, ptr %2956, align 8, !tbaa !9
  br label %3719

2957:                                             ; preds = %284
  %2958 = load ptr, ptr %4, align 8, !tbaa !5
  %2959 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2958, i32 0, i32 32
  %2960 = load double, ptr %2959, align 8, !tbaa !115
  %2961 = load ptr, ptr %4, align 8, !tbaa !5
  %2962 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2961, i32 0, i32 56
  %2963 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2962, i32 0, i32 4
  %2964 = load ptr, ptr %2963, align 8, !tbaa !81
  %2965 = load i64, ptr %20, align 8, !tbaa !82
  %2966 = getelementptr inbounds double, ptr %2964, i64 %2965
  store double %2960, ptr %2966, align 8, !tbaa !83
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %2967

2967:                                             ; preds = %3137, %2957
  %2968 = load i64, ptr %21, align 8, !tbaa !82
  %2969 = load i64, ptr %14, align 8, !tbaa !82
  %2970 = sub nsw i64 %2969, 1
  %2971 = icmp sgt i64 %2968, %2970
  br i1 %2971, label %2972, label %2973

2972:                                             ; preds = %2967
  br label %3140

2973:                                             ; preds = %2967
  %2974 = load ptr, ptr %4, align 8, !tbaa !5
  %2975 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2974, i32 0, i32 31
  %2976 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2975, i32 0, i32 4
  %2977 = load ptr, ptr %2976, align 8, !tbaa !81
  %2978 = load i64, ptr %21, align 8, !tbaa !82
  %2979 = getelementptr inbounds double, ptr %2977, i64 %2978
  %2980 = load double, ptr %2979, align 8, !tbaa !83
  store double %2980, ptr %15, align 8, !tbaa !83
  %2981 = load double, ptr %15, align 8, !tbaa !83
  %2982 = load ptr, ptr %4, align 8, !tbaa !5
  %2983 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2982, i32 0, i32 20
  %2984 = load double, ptr %2983, align 8, !tbaa !159
  %2985 = load ptr, ptr %4, align 8, !tbaa !5
  %2986 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2985, i32 0, i32 10
  %2987 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2986, i32 0, i32 4
  %2988 = load ptr, ptr %2987, align 8, !tbaa !81
  %2989 = load i64, ptr %21, align 8, !tbaa !82
  %2990 = getelementptr inbounds double, ptr %2988, i64 %2989
  %2991 = load double, ptr %2990, align 8, !tbaa !83
  %2992 = fneg double %2984
  %2993 = call double @llvm.fmuladd.f64(double %2992, double %2991, double %2981)
  store double %2993, ptr %6, align 8, !tbaa !83
  %2994 = load double, ptr %6, align 8, !tbaa !83
  %2995 = load ptr, ptr %4, align 8, !tbaa !5
  %2996 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %2995, i32 0, i32 31
  %2997 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2996, i32 0, i32 4
  %2998 = load ptr, ptr %2997, align 8, !tbaa !81
  %2999 = load i64, ptr %21, align 8, !tbaa !82
  %3000 = getelementptr inbounds double, ptr %2998, i64 %2999
  store double %2994, ptr %3000, align 8, !tbaa !83
  %3001 = load ptr, ptr %4, align 8, !tbaa !5
  %3002 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3001, i32 0, i32 11
  %3003 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3002, i32 0, i32 4
  %3004 = load ptr, ptr %3003, align 8, !tbaa !81
  %3005 = load i64, ptr %21, align 8, !tbaa !82
  %3006 = getelementptr inbounds double, ptr %3004, i64 %3005
  %3007 = load double, ptr %3006, align 8, !tbaa !83
  %3008 = load ptr, ptr %5, align 8, !tbaa !5
  %3009 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %3007, ptr noundef %3008)
  br i1 %3009, label %3010, label %3033

3010:                                             ; preds = %2973
  %3011 = load ptr, ptr %4, align 8, !tbaa !5
  %3012 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3011, i32 0, i32 31
  %3013 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3012, i32 0, i32 4
  %3014 = load ptr, ptr %3013, align 8, !tbaa !81
  %3015 = load i64, ptr %21, align 8, !tbaa !82
  %3016 = getelementptr inbounds double, ptr %3014, i64 %3015
  %3017 = load double, ptr %3016, align 8, !tbaa !83
  %3018 = load ptr, ptr %4, align 8, !tbaa !5
  %3019 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3018, i32 0, i32 11
  %3020 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3019, i32 0, i32 4
  %3021 = load ptr, ptr %3020, align 8, !tbaa !81
  %3022 = load i64, ptr %21, align 8, !tbaa !82
  %3023 = getelementptr inbounds double, ptr %3021, i64 %3022
  %3024 = load double, ptr %3023, align 8, !tbaa !83
  %3025 = load ptr, ptr %5, align 8, !tbaa !5
  %3026 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %3017, double noundef %3024, ptr noundef %3025)
  %3027 = load ptr, ptr %4, align 8, !tbaa !5
  %3028 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3027, i32 0, i32 31
  %3029 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3028, i32 0, i32 4
  %3030 = load ptr, ptr %3029, align 8, !tbaa !81
  %3031 = load i64, ptr %21, align 8, !tbaa !82
  %3032 = getelementptr inbounds double, ptr %3030, i64 %3031
  store double %3026, ptr %3032, align 8, !tbaa !83
  br label %3033

3033:                                             ; preds = %3010, %2973
  %3034 = load ptr, ptr %4, align 8, !tbaa !5
  %3035 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3034, i32 0, i32 73
  %3036 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3035, i32 0, i32 0
  store i32 18, ptr %3036, align 8, !tbaa !9
  br label %3719

3037:                                             ; preds = %291
  %3038 = load ptr, ptr %4, align 8, !tbaa !5
  %3039 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3038, i32 0, i32 32
  %3040 = load double, ptr %3039, align 8, !tbaa !115
  store double %3040, ptr %7, align 8, !tbaa !83
  %3041 = load double, ptr %15, align 8, !tbaa !83
  %3042 = load ptr, ptr %4, align 8, !tbaa !5
  %3043 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3042, i32 0, i32 20
  %3044 = load double, ptr %3043, align 8, !tbaa !159
  %3045 = load ptr, ptr %4, align 8, !tbaa !5
  %3046 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3045, i32 0, i32 10
  %3047 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3046, i32 0, i32 4
  %3048 = load ptr, ptr %3047, align 8, !tbaa !81
  %3049 = load i64, ptr %21, align 8, !tbaa !82
  %3050 = getelementptr inbounds double, ptr %3048, i64 %3049
  %3051 = load double, ptr %3050, align 8, !tbaa !83
  %3052 = call double @llvm.fmuladd.f64(double %3044, double %3051, double %3041)
  store double %3052, ptr %9, align 8, !tbaa !83
  %3053 = load double, ptr %9, align 8, !tbaa !83
  %3054 = load ptr, ptr %4, align 8, !tbaa !5
  %3055 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3054, i32 0, i32 31
  %3056 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3055, i32 0, i32 4
  %3057 = load ptr, ptr %3056, align 8, !tbaa !81
  %3058 = load i64, ptr %21, align 8, !tbaa !82
  %3059 = getelementptr inbounds double, ptr %3057, i64 %3058
  store double %3053, ptr %3059, align 8, !tbaa !83
  %3060 = load ptr, ptr %4, align 8, !tbaa !5
  %3061 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3060, i32 0, i32 12
  %3062 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3061, i32 0, i32 4
  %3063 = load ptr, ptr %3062, align 8, !tbaa !81
  %3064 = load i64, ptr %21, align 8, !tbaa !82
  %3065 = getelementptr inbounds double, ptr %3063, i64 %3064
  %3066 = load double, ptr %3065, align 8, !tbaa !83
  %3067 = load ptr, ptr %5, align 8, !tbaa !5
  %3068 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %3066, ptr noundef %3067)
  br i1 %3068, label %3069, label %3092

3069:                                             ; preds = %3037
  %3070 = load ptr, ptr %4, align 8, !tbaa !5
  %3071 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3070, i32 0, i32 31
  %3072 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3071, i32 0, i32 4
  %3073 = load ptr, ptr %3072, align 8, !tbaa !81
  %3074 = load i64, ptr %21, align 8, !tbaa !82
  %3075 = getelementptr inbounds double, ptr %3073, i64 %3074
  %3076 = load double, ptr %3075, align 8, !tbaa !83
  %3077 = load ptr, ptr %4, align 8, !tbaa !5
  %3078 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3077, i32 0, i32 12
  %3079 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3078, i32 0, i32 4
  %3080 = load ptr, ptr %3079, align 8, !tbaa !81
  %3081 = load i64, ptr %21, align 8, !tbaa !82
  %3082 = getelementptr inbounds double, ptr %3080, i64 %3081
  %3083 = load double, ptr %3082, align 8, !tbaa !83
  %3084 = load ptr, ptr %5, align 8, !tbaa !5
  %3085 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %3076, double noundef %3083, ptr noundef %3084)
  %3086 = load ptr, ptr %4, align 8, !tbaa !5
  %3087 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3086, i32 0, i32 31
  %3088 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3087, i32 0, i32 4
  %3089 = load ptr, ptr %3088, align 8, !tbaa !81
  %3090 = load i64, ptr %21, align 8, !tbaa !82
  %3091 = getelementptr inbounds double, ptr %3089, i64 %3090
  store double %3085, ptr %3091, align 8, !tbaa !83
  br label %3092

3092:                                             ; preds = %3069, %3037
  %3093 = load ptr, ptr %4, align 8, !tbaa !5
  %3094 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3093, i32 0, i32 73
  %3095 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3094, i32 0, i32 0
  store i32 19, ptr %3095, align 8, !tbaa !9
  br label %3719

3096:                                             ; preds = %298
  %3097 = load ptr, ptr %4, align 8, !tbaa !5
  %3098 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3097, i32 0, i32 32
  %3099 = load double, ptr %3098, align 8, !tbaa !115
  store double %3099, ptr %10, align 8, !tbaa !83
  %3100 = load double, ptr %15, align 8, !tbaa !83
  %3101 = load ptr, ptr %4, align 8, !tbaa !5
  %3102 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3101, i32 0, i32 31
  %3103 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3102, i32 0, i32 4
  %3104 = load ptr, ptr %3103, align 8, !tbaa !81
  %3105 = load i64, ptr %21, align 8, !tbaa !82
  %3106 = getelementptr inbounds double, ptr %3104, i64 %3105
  store double %3100, ptr %3106, align 8, !tbaa !83
  %3107 = load double, ptr %9, align 8, !tbaa !83
  %3108 = load double, ptr %6, align 8, !tbaa !83
  %3109 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %3107, double noundef %3108)
  br i1 %3109, label %3110, label %3127

3110:                                             ; preds = %3096
  %3111 = load double, ptr %10, align 8, !tbaa !83
  %3112 = load double, ptr %7, align 8, !tbaa !83
  %3113 = fsub double %3111, %3112
  %3114 = load double, ptr %9, align 8, !tbaa !83
  %3115 = load double, ptr %6, align 8, !tbaa !83
  %3116 = fsub double %3114, %3115
  %3117 = fdiv double %3113, %3116
  %3118 = load ptr, ptr %4, align 8, !tbaa !5
  %3119 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3118, i32 0, i32 57
  %3120 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3119, i32 0, i32 6
  %3121 = load ptr, ptr %3120, align 8, !tbaa !81
  %3122 = load i64, ptr %20, align 8, !tbaa !82
  %3123 = getelementptr inbounds ptr, ptr %3121, i64 %3122
  %3124 = load ptr, ptr %3123, align 8, !tbaa !5
  %3125 = load i64, ptr %21, align 8, !tbaa !82
  %3126 = getelementptr inbounds double, ptr %3124, i64 %3125
  store double %3117, ptr %3126, align 8, !tbaa !83
  br label %3137

3127:                                             ; preds = %3096
  %3128 = load ptr, ptr %4, align 8, !tbaa !5
  %3129 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3128, i32 0, i32 57
  %3130 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3129, i32 0, i32 6
  %3131 = load ptr, ptr %3130, align 8, !tbaa !81
  %3132 = load i64, ptr %20, align 8, !tbaa !82
  %3133 = getelementptr inbounds ptr, ptr %3131, i64 %3132
  %3134 = load ptr, ptr %3133, align 8, !tbaa !5
  %3135 = load i64, ptr %21, align 8, !tbaa !82
  %3136 = getelementptr inbounds double, ptr %3134, i64 %3135
  store double 0.000000e+00, ptr %3136, align 8, !tbaa !83
  br label %3137

3137:                                             ; preds = %3127, %3110
  %3138 = load i64, ptr %21, align 8, !tbaa !82
  %3139 = add nsw i64 %3138, 1
  store i64 %3139, ptr %21, align 8, !tbaa !82
  br label %2967

3140:                                             ; preds = %2972
  %3141 = load i64, ptr %20, align 8, !tbaa !82
  %3142 = add nsw i64 %3141, 1
  store i64 %3142, ptr %20, align 8, !tbaa !82
  br label %2928

3143:                                             ; preds = %2933
  %3144 = load ptr, ptr %4, align 8, !tbaa !5
  %3145 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3144, i32 0, i32 27
  store i8 0, ptr %3145, align 1, !tbaa !120
  br label %3447

3146:                                             ; preds = %2922
  %3147 = load ptr, ptr %4, align 8, !tbaa !5
  %3148 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3147, i32 0, i32 34
  store i64 3, ptr %3148, align 8, !tbaa !102
  %3149 = load i64, ptr %12, align 8, !tbaa !82
  %3150 = load ptr, ptr %4, align 8, !tbaa !5
  %3151 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3150, i32 0, i32 37
  store i64 %3149, ptr %3151, align 8, !tbaa !107
  %3152 = load ptr, ptr %4, align 8, !tbaa !5
  %3153 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3152, i32 0, i32 38
  store i64 1, ptr %3153, align 8, !tbaa !108
  %3154 = load i64, ptr %14, align 8, !tbaa !82
  %3155 = load ptr, ptr %4, align 8, !tbaa !5
  %3156 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3155, i32 0, i32 39
  store i64 %3154, ptr %3156, align 8, !tbaa !109
  %3157 = load i64, ptr %13, align 8, !tbaa !82
  %3158 = load ptr, ptr %4, align 8, !tbaa !5
  %3159 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3158, i32 0, i32 40
  store i64 %3157, ptr %3159, align 8, !tbaa !110
  %3160 = load ptr, ptr %4, align 8, !tbaa !5
  %3161 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3160, i32 0, i32 41
  store i64 2, ptr %3161, align 8, !tbaa !139
  %3162 = load i64, ptr %12, align 8, !tbaa !82
  %3163 = load i64, ptr %14, align 8, !tbaa !82
  %3164 = load i64, ptr %13, align 8, !tbaa !82
  %3165 = add nsw i64 %3163, %3164
  %3166 = load i64, ptr %14, align 8, !tbaa !82
  %3167 = mul nsw i64 %3166, 2
  %3168 = load ptr, ptr %4, align 8, !tbaa !5
  %3169 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3168, i32 0, i32 41
  %3170 = load i64, ptr %3169, align 8, !tbaa !139
  %3171 = mul nsw i64 %3167, %3170
  %3172 = add nsw i64 %3165, %3171
  %3173 = mul nsw i64 %3162, %3172
  %3174 = load ptr, ptr %4, align 8, !tbaa !5
  %3175 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3174, i32 0, i32 42
  %3176 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %3173, ptr noundef %3175, ptr noundef %3176)
  store i64 0, ptr %23, align 8, !tbaa !82
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %3177

3177:                                             ; preds = %3383, %3146
  %3178 = load i64, ptr %20, align 8, !tbaa !82
  %3179 = load i64, ptr %12, align 8, !tbaa !82
  %3180 = sub nsw i64 %3179, 1
  %3181 = icmp sle i64 %3178, %3180
  br i1 %3181, label %3182, label %3386

3182:                                             ; preds = %3177
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %3183

3183:                                             ; preds = %3204, %3182
  %3184 = load i64, ptr %21, align 8, !tbaa !82
  %3185 = load i64, ptr %14, align 8, !tbaa !82
  %3186 = sub nsw i64 %3185, 1
  %3187 = icmp sle i64 %3184, %3186
  br i1 %3187, label %3188, label %3207

3188:                                             ; preds = %3183
  %3189 = load ptr, ptr %4, align 8, !tbaa !5
  %3190 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3189, i32 0, i32 9
  %3191 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3190, i32 0, i32 4
  %3192 = load ptr, ptr %3191, align 8, !tbaa !81
  %3193 = load i64, ptr %21, align 8, !tbaa !82
  %3194 = getelementptr inbounds double, ptr %3192, i64 %3193
  %3195 = load double, ptr %3194, align 8, !tbaa !83
  %3196 = load ptr, ptr %4, align 8, !tbaa !5
  %3197 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3196, i32 0, i32 42
  %3198 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3197, i32 0, i32 4
  %3199 = load ptr, ptr %3198, align 8, !tbaa !81
  %3200 = load i64, ptr %23, align 8, !tbaa !82
  %3201 = getelementptr inbounds double, ptr %3199, i64 %3200
  store double %3195, ptr %3201, align 8, !tbaa !83
  %3202 = load i64, ptr %23, align 8, !tbaa !82
  %3203 = add nsw i64 %3202, 1
  store i64 %3203, ptr %23, align 8, !tbaa !82
  br label %3204

3204:                                             ; preds = %3188
  %3205 = load i64, ptr %21, align 8, !tbaa !82
  %3206 = add nsw i64 %3205, 1
  store i64 %3206, ptr %21, align 8, !tbaa !82
  br label %3183, !llvm.loop !160

3207:                                             ; preds = %3183
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %3208

3208:                                             ; preds = %3232, %3207
  %3209 = load i64, ptr %21, align 8, !tbaa !82
  %3210 = load i64, ptr %13, align 8, !tbaa !82
  %3211 = sub nsw i64 %3210, 1
  %3212 = icmp sle i64 %3209, %3211
  br i1 %3212, label %3213, label %3235

3213:                                             ; preds = %3208
  %3214 = load ptr, ptr %4, align 8, !tbaa !5
  %3215 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3214, i32 0, i32 13
  %3216 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3215, i32 0, i32 6
  %3217 = load ptr, ptr %3216, align 8, !tbaa !81
  %3218 = load i64, ptr %20, align 8, !tbaa !82
  %3219 = getelementptr inbounds ptr, ptr %3217, i64 %3218
  %3220 = load ptr, ptr %3219, align 8, !tbaa !5
  %3221 = load i64, ptr %21, align 8, !tbaa !82
  %3222 = getelementptr inbounds double, ptr %3220, i64 %3221
  %3223 = load double, ptr %3222, align 8, !tbaa !83
  %3224 = load ptr, ptr %4, align 8, !tbaa !5
  %3225 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3224, i32 0, i32 42
  %3226 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3225, i32 0, i32 4
  %3227 = load ptr, ptr %3226, align 8, !tbaa !81
  %3228 = load i64, ptr %23, align 8, !tbaa !82
  %3229 = getelementptr inbounds double, ptr %3227, i64 %3228
  store double %3223, ptr %3229, align 8, !tbaa !83
  %3230 = load i64, ptr %23, align 8, !tbaa !82
  %3231 = add nsw i64 %3230, 1
  store i64 %3231, ptr %23, align 8, !tbaa !82
  br label %3232

3232:                                             ; preds = %3213
  %3233 = load i64, ptr %21, align 8, !tbaa !82
  %3234 = add nsw i64 %3233, 1
  store i64 %3234, ptr %21, align 8, !tbaa !82
  br label %3208, !llvm.loop !161

3235:                                             ; preds = %3208
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %3236

3236:                                             ; preds = %3379, %3235
  %3237 = load i64, ptr %21, align 8, !tbaa !82
  %3238 = load i64, ptr %14, align 8, !tbaa !82
  %3239 = sub nsw i64 %3238, 1
  %3240 = icmp sle i64 %3237, %3239
  br i1 %3240, label %3241, label %3382

3241:                                             ; preds = %3236
  %3242 = load ptr, ptr %4, align 8, !tbaa !5
  %3243 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3242, i32 0, i32 20
  %3244 = load double, ptr %3243, align 8, !tbaa !159
  %3245 = load ptr, ptr %4, align 8, !tbaa !5
  %3246 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3245, i32 0, i32 10
  %3247 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3246, i32 0, i32 4
  %3248 = load ptr, ptr %3247, align 8, !tbaa !81
  %3249 = load i64, ptr %21, align 8, !tbaa !82
  %3250 = getelementptr inbounds double, ptr %3248, i64 %3249
  %3251 = load double, ptr %3250, align 8, !tbaa !83
  %3252 = fmul double %3244, %3251
  store double %3252, ptr %15, align 8, !tbaa !83
  %3253 = load ptr, ptr %4, align 8, !tbaa !5
  %3254 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3253, i32 0, i32 9
  %3255 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3254, i32 0, i32 4
  %3256 = load ptr, ptr %3255, align 8, !tbaa !81
  %3257 = load i64, ptr %21, align 8, !tbaa !82
  %3258 = getelementptr inbounds double, ptr %3256, i64 %3257
  %3259 = load double, ptr %3258, align 8, !tbaa !83
  %3260 = load double, ptr %15, align 8, !tbaa !83
  %3261 = fsub double %3259, %3260
  store double %3261, ptr %17, align 8, !tbaa !83
  %3262 = load ptr, ptr %4, align 8, !tbaa !5
  %3263 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3262, i32 0, i32 11
  %3264 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3263, i32 0, i32 4
  %3265 = load ptr, ptr %3264, align 8, !tbaa !81
  %3266 = load i64, ptr %21, align 8, !tbaa !82
  %3267 = getelementptr inbounds double, ptr %3265, i64 %3266
  %3268 = load double, ptr %3267, align 8, !tbaa !83
  %3269 = load ptr, ptr %5, align 8, !tbaa !5
  %3270 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %3268, ptr noundef %3269)
  br i1 %3270, label %3271, label %3289

3271:                                             ; preds = %3241
  %3272 = load double, ptr %17, align 8, !tbaa !83
  %3273 = load ptr, ptr %4, align 8, !tbaa !5
  %3274 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3273, i32 0, i32 11
  %3275 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3274, i32 0, i32 4
  %3276 = load ptr, ptr %3275, align 8, !tbaa !81
  %3277 = load i64, ptr %21, align 8, !tbaa !82
  %3278 = getelementptr inbounds double, ptr %3276, i64 %3277
  %3279 = load double, ptr %3278, align 8, !tbaa !83
  %3280 = fcmp olt double %3272, %3279
  br i1 %3280, label %3281, label %3289

3281:                                             ; preds = %3271
  %3282 = load ptr, ptr %4, align 8, !tbaa !5
  %3283 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3282, i32 0, i32 11
  %3284 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3283, i32 0, i32 4
  %3285 = load ptr, ptr %3284, align 8, !tbaa !81
  %3286 = load i64, ptr %21, align 8, !tbaa !82
  %3287 = getelementptr inbounds double, ptr %3285, i64 %3286
  %3288 = load double, ptr %3287, align 8, !tbaa !83
  store double %3288, ptr %17, align 8, !tbaa !83
  br label %3289

3289:                                             ; preds = %3281, %3271, %3241
  %3290 = load ptr, ptr %4, align 8, !tbaa !5
  %3291 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3290, i32 0, i32 9
  %3292 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3291, i32 0, i32 4
  %3293 = load ptr, ptr %3292, align 8, !tbaa !81
  %3294 = load i64, ptr %21, align 8, !tbaa !82
  %3295 = getelementptr inbounds double, ptr %3293, i64 %3294
  %3296 = load double, ptr %3295, align 8, !tbaa !83
  %3297 = load double, ptr %15, align 8, !tbaa !83
  %3298 = fadd double %3296, %3297
  store double %3298, ptr %18, align 8, !tbaa !83
  %3299 = load ptr, ptr %4, align 8, !tbaa !5
  %3300 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3299, i32 0, i32 12
  %3301 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3300, i32 0, i32 4
  %3302 = load ptr, ptr %3301, align 8, !tbaa !81
  %3303 = load i64, ptr %21, align 8, !tbaa !82
  %3304 = getelementptr inbounds double, ptr %3302, i64 %3303
  %3305 = load double, ptr %3304, align 8, !tbaa !83
  %3306 = load ptr, ptr %5, align 8, !tbaa !5
  %3307 = call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %3305, ptr noundef %3306)
  br i1 %3307, label %3308, label %3326

3308:                                             ; preds = %3289
  %3309 = load double, ptr %18, align 8, !tbaa !83
  %3310 = load ptr, ptr %4, align 8, !tbaa !5
  %3311 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3310, i32 0, i32 12
  %3312 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3311, i32 0, i32 4
  %3313 = load ptr, ptr %3312, align 8, !tbaa !81
  %3314 = load i64, ptr %21, align 8, !tbaa !82
  %3315 = getelementptr inbounds double, ptr %3313, i64 %3314
  %3316 = load double, ptr %3315, align 8, !tbaa !83
  %3317 = fcmp ogt double %3309, %3316
  br i1 %3317, label %3318, label %3326

3318:                                             ; preds = %3308
  %3319 = load ptr, ptr %4, align 8, !tbaa !5
  %3320 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3319, i32 0, i32 12
  %3321 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3320, i32 0, i32 4
  %3322 = load ptr, ptr %3321, align 8, !tbaa !81
  %3323 = load i64, ptr %21, align 8, !tbaa !82
  %3324 = getelementptr inbounds double, ptr %3322, i64 %3323
  %3325 = load double, ptr %3324, align 8, !tbaa !83
  store double %3325, ptr %18, align 8, !tbaa !83
  br label %3326

3326:                                             ; preds = %3318, %3308, %3289
  store double 0.000000e+00, ptr %15, align 8, !tbaa !83
  %3327 = load double, ptr %17, align 8, !tbaa !83
  %3328 = load double, ptr %18, align 8, !tbaa !83
  %3329 = fcmp olt double %3327, %3328
  br i1 %3329, label %3330, label %3335

3330:                                             ; preds = %3326
  %3331 = load double, ptr %18, align 8, !tbaa !83
  %3332 = load double, ptr %17, align 8, !tbaa !83
  %3333 = fsub double %3331, %3332
  %3334 = fdiv double 1.000000e+00, %3333
  store double %3334, ptr %15, align 8, !tbaa !83
  br label %3335

3335:                                             ; preds = %3330, %3326
  %3336 = load double, ptr %17, align 8, !tbaa !83
  %3337 = load ptr, ptr %4, align 8, !tbaa !5
  %3338 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3337, i32 0, i32 42
  %3339 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3338, i32 0, i32 4
  %3340 = load ptr, ptr %3339, align 8, !tbaa !81
  %3341 = load i64, ptr %23, align 8, !tbaa !82
  %3342 = add nsw i64 %3341, 0
  %3343 = add nsw i64 %3342, 0
  %3344 = getelementptr inbounds double, ptr %3340, i64 %3343
  store double %3336, ptr %3344, align 8, !tbaa !83
  %3345 = load double, ptr %15, align 8, !tbaa !83
  %3346 = fneg double %3345
  %3347 = load ptr, ptr %4, align 8, !tbaa !5
  %3348 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3347, i32 0, i32 42
  %3349 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3348, i32 0, i32 4
  %3350 = load ptr, ptr %3349, align 8, !tbaa !81
  %3351 = load i64, ptr %23, align 8, !tbaa !82
  %3352 = add nsw i64 %3351, 0
  %3353 = add nsw i64 %3352, 1
  %3354 = getelementptr inbounds double, ptr %3350, i64 %3353
  store double %3346, ptr %3354, align 8, !tbaa !83
  %3355 = load double, ptr %18, align 8, !tbaa !83
  %3356 = load ptr, ptr %4, align 8, !tbaa !5
  %3357 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3356, i32 0, i32 42
  %3358 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3357, i32 0, i32 4
  %3359 = load ptr, ptr %3358, align 8, !tbaa !81
  %3360 = load i64, ptr %23, align 8, !tbaa !82
  %3361 = add nsw i64 %3360, 2
  %3362 = add nsw i64 %3361, 0
  %3363 = getelementptr inbounds double, ptr %3359, i64 %3362
  store double %3355, ptr %3363, align 8, !tbaa !83
  %3364 = load double, ptr %15, align 8, !tbaa !83
  %3365 = load ptr, ptr %4, align 8, !tbaa !5
  %3366 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3365, i32 0, i32 42
  %3367 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3366, i32 0, i32 4
  %3368 = load ptr, ptr %3367, align 8, !tbaa !81
  %3369 = load i64, ptr %23, align 8, !tbaa !82
  %3370 = add nsw i64 %3369, 2
  %3371 = add nsw i64 %3370, 1
  %3372 = getelementptr inbounds double, ptr %3368, i64 %3371
  store double %3364, ptr %3372, align 8, !tbaa !83
  %3373 = load i64, ptr %23, align 8, !tbaa !82
  %3374 = load ptr, ptr %4, align 8, !tbaa !5
  %3375 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3374, i32 0, i32 41
  %3376 = load i64, ptr %3375, align 8, !tbaa !139
  %3377 = mul nsw i64 2, %3376
  %3378 = add nsw i64 %3373, %3377
  store i64 %3378, ptr %23, align 8, !tbaa !82
  br label %3379

3379:                                             ; preds = %3335
  %3380 = load i64, ptr %21, align 8, !tbaa !82
  %3381 = add nsw i64 %3380, 1
  store i64 %3381, ptr %21, align 8, !tbaa !82
  br label %3236, !llvm.loop !162

3382:                                             ; preds = %3236
  br label %3383

3383:                                             ; preds = %3382
  %3384 = load i64, ptr %20, align 8, !tbaa !82
  %3385 = add nsw i64 %3384, 1
  store i64 %3385, ptr %20, align 8, !tbaa !82
  br label %3177, !llvm.loop !163

3386:                                             ; preds = %3177
  %3387 = load i64, ptr %12, align 8, !tbaa !82
  %3388 = load ptr, ptr %4, align 8, !tbaa !5
  %3389 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3388, i32 0, i32 43
  %3390 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %3387, ptr noundef %3389, ptr noundef %3390)
  %3391 = load i64, ptr %12, align 8, !tbaa !82
  %3392 = load i64, ptr %14, align 8, !tbaa !82
  %3393 = mul nsw i64 %3391, %3392
  %3394 = load ptr, ptr %4, align 8, !tbaa !5
  %3395 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3394, i32 0, i32 44
  %3396 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %3393, ptr noundef %3395, ptr noundef %3396)
  %3397 = load ptr, ptr %4, align 8, !tbaa !5
  %3398 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3397, i32 0, i32 73
  %3399 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3398, i32 0, i32 0
  store i32 20, ptr %3399, align 8, !tbaa !9
  br label %3719

3400:                                             ; preds = %305
  %3401 = load i64, ptr %12, align 8, !tbaa !82
  %3402 = load ptr, ptr %4, align 8, !tbaa !5
  %3403 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3402, i32 0, i32 43
  %3404 = load ptr, ptr %4, align 8, !tbaa !5
  %3405 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3404, i32 0, i32 56
  %3406 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %3401, ptr noundef %3403, ptr noundef %3405, ptr noundef %3406)
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %3407

3407:                                             ; preds = %3443, %3400
  %3408 = load i64, ptr %20, align 8, !tbaa !82
  %3409 = load i64, ptr %12, align 8, !tbaa !82
  %3410 = sub nsw i64 %3409, 1
  %3411 = icmp sle i64 %3408, %3410
  br i1 %3411, label %3412, label %3446

3412:                                             ; preds = %3407
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %3413

3413:                                             ; preds = %3439, %3412
  %3414 = load i64, ptr %21, align 8, !tbaa !82
  %3415 = load i64, ptr %14, align 8, !tbaa !82
  %3416 = sub nsw i64 %3415, 1
  %3417 = icmp sle i64 %3414, %3416
  br i1 %3417, label %3418, label %3442

3418:                                             ; preds = %3413
  %3419 = load ptr, ptr %4, align 8, !tbaa !5
  %3420 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3419, i32 0, i32 44
  %3421 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3420, i32 0, i32 4
  %3422 = load ptr, ptr %3421, align 8, !tbaa !81
  %3423 = load i64, ptr %20, align 8, !tbaa !82
  %3424 = load i64, ptr %14, align 8, !tbaa !82
  %3425 = mul nsw i64 %3423, %3424
  %3426 = load i64, ptr %21, align 8, !tbaa !82
  %3427 = add nsw i64 %3425, %3426
  %3428 = getelementptr inbounds double, ptr %3422, i64 %3427
  %3429 = load double, ptr %3428, align 8, !tbaa !83
  %3430 = load ptr, ptr %4, align 8, !tbaa !5
  %3431 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3430, i32 0, i32 57
  %3432 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3431, i32 0, i32 6
  %3433 = load ptr, ptr %3432, align 8, !tbaa !81
  %3434 = load i64, ptr %20, align 8, !tbaa !82
  %3435 = getelementptr inbounds ptr, ptr %3433, i64 %3434
  %3436 = load ptr, ptr %3435, align 8, !tbaa !5
  %3437 = load i64, ptr %21, align 8, !tbaa !82
  %3438 = getelementptr inbounds double, ptr %3436, i64 %3437
  store double %3429, ptr %3438, align 8, !tbaa !83
  br label %3439

3439:                                             ; preds = %3418
  %3440 = load i64, ptr %21, align 8, !tbaa !82
  %3441 = add nsw i64 %3440, 1
  store i64 %3441, ptr %21, align 8, !tbaa !82
  br label %3413, !llvm.loop !164

3442:                                             ; preds = %3413
  br label %3443

3443:                                             ; preds = %3442
  %3444 = load i64, ptr %20, align 8, !tbaa !82
  %3445 = add nsw i64 %3444, 1
  store i64 %3445, ptr %20, align 8, !tbaa !82
  br label %3407, !llvm.loop !165

3446:                                             ; preds = %3407
  br label %3447

3447:                                             ; preds = %3446, %3143
  br label %3680

3448:                                             ; preds = %2916
  %3449 = load ptr, ptr %4, align 8, !tbaa !5
  %3450 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3449, i32 0, i32 0
  %3451 = load i64, ptr %3450, align 8, !tbaa !103
  %3452 = icmp ne i64 %3451, 1
  br i1 %3452, label %3453, label %3454

3453:                                             ; preds = %3448
  br label %3529

3454:                                             ; preds = %3448
  %3455 = load ptr, ptr %4, align 8, !tbaa !5
  %3456 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef %3455, ptr noundef %3456)
  %3457 = load ptr, ptr %4, align 8, !tbaa !5
  %3458 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3457, i32 0, i32 28
  store i8 1, ptr %3458, align 2, !tbaa !112
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %3459

3459:                                             ; preds = %3523, %3454
  %3460 = load i64, ptr %20, align 8, !tbaa !82
  %3461 = load i64, ptr %12, align 8, !tbaa !82
  %3462 = sub nsw i64 %3461, 1
  %3463 = icmp sgt i64 %3460, %3462
  br i1 %3463, label %3464, label %3465

3464:                                             ; preds = %3459
  br label %3526

3465:                                             ; preds = %3459
  %3466 = load ptr, ptr %4, align 8, !tbaa !5
  %3467 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3466, i32 0, i32 30
  %3468 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3467, i32 0, i32 4
  %3469 = load ptr, ptr %3468, align 8, !tbaa !81
  %3470 = getelementptr inbounds double, ptr %3469, i64 0
  %3471 = load ptr, ptr %4, align 8, !tbaa !5
  %3472 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3471, i32 0, i32 13
  %3473 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3472, i32 0, i32 6
  %3474 = load ptr, ptr %3473, align 8, !tbaa !81
  %3475 = load i64, ptr %20, align 8, !tbaa !82
  %3476 = getelementptr inbounds ptr, ptr %3474, i64 %3475
  %3477 = load ptr, ptr %3476, align 8, !tbaa !5
  %3478 = getelementptr inbounds double, ptr %3477, i64 0
  %3479 = load i64, ptr %13, align 8, !tbaa !82
  %3480 = sub nsw i64 %3479, 1
  %3481 = call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %3480)
  call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %3470, i64 noundef 1, ptr noundef %3478, i64 noundef 1, i64 noundef %3481)
  %3482 = load i64, ptr %20, align 8, !tbaa !82
  %3483 = load ptr, ptr %4, align 8, !tbaa !5
  %3484 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3483, i32 0, i32 29
  store i64 %3482, ptr %3484, align 8, !tbaa !119
  %3485 = load ptr, ptr %4, align 8, !tbaa !5
  %3486 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3485, i32 0, i32 73
  %3487 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3486, i32 0, i32 0
  store i32 21, ptr %3487, align 8, !tbaa !9
  br label %3719

3488:                                             ; preds = %312
  %3489 = load ptr, ptr %4, align 8, !tbaa !5
  %3490 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3489, i32 0, i32 32
  %3491 = load double, ptr %3490, align 8, !tbaa !115
  %3492 = load ptr, ptr %4, align 8, !tbaa !5
  %3493 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3492, i32 0, i32 56
  %3494 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3493, i32 0, i32 4
  %3495 = load ptr, ptr %3494, align 8, !tbaa !81
  %3496 = load i64, ptr %20, align 8, !tbaa !82
  %3497 = getelementptr inbounds double, ptr %3495, i64 %3496
  store double %3491, ptr %3497, align 8, !tbaa !83
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %3498

3498:                                             ; preds = %3520, %3488
  %3499 = load i64, ptr %21, align 8, !tbaa !82
  %3500 = load i64, ptr %14, align 8, !tbaa !82
  %3501 = sub nsw i64 %3500, 1
  %3502 = icmp sle i64 %3499, %3501
  br i1 %3502, label %3503, label %3523

3503:                                             ; preds = %3498
  %3504 = load ptr, ptr %4, align 8, !tbaa !5
  %3505 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3504, i32 0, i32 33
  %3506 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3505, i32 0, i32 4
  %3507 = load ptr, ptr %3506, align 8, !tbaa !81
  %3508 = load i64, ptr %21, align 8, !tbaa !82
  %3509 = getelementptr inbounds double, ptr %3507, i64 %3508
  %3510 = load double, ptr %3509, align 8, !tbaa !83
  %3511 = load ptr, ptr %4, align 8, !tbaa !5
  %3512 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3511, i32 0, i32 57
  %3513 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3512, i32 0, i32 6
  %3514 = load ptr, ptr %3513, align 8, !tbaa !81
  %3515 = load i64, ptr %20, align 8, !tbaa !82
  %3516 = getelementptr inbounds ptr, ptr %3514, i64 %3515
  %3517 = load ptr, ptr %3516, align 8, !tbaa !5
  %3518 = load i64, ptr %21, align 8, !tbaa !82
  %3519 = getelementptr inbounds double, ptr %3517, i64 %3518
  store double %3510, ptr %3519, align 8, !tbaa !83
  br label %3520

3520:                                             ; preds = %3503
  %3521 = load i64, ptr %21, align 8, !tbaa !82
  %3522 = add nsw i64 %3521, 1
  store i64 %3522, ptr %21, align 8, !tbaa !82
  br label %3498, !llvm.loop !166

3523:                                             ; preds = %3498
  %3524 = load i64, ptr %20, align 8, !tbaa !82
  %3525 = add nsw i64 %3524, 1
  store i64 %3525, ptr %20, align 8, !tbaa !82
  br label %3459

3526:                                             ; preds = %3464
  %3527 = load ptr, ptr %4, align 8, !tbaa !5
  %3528 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3527, i32 0, i32 28
  store i8 0, ptr %3528, align 2, !tbaa !112
  br label %3679

3529:                                             ; preds = %3453
  %3530 = load ptr, ptr %4, align 8, !tbaa !5
  %3531 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3530, i32 0, i32 0
  %3532 = load i64, ptr %3531, align 8, !tbaa !103
  %3533 = icmp eq i64 %3532, 2
  %3534 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %3533, ptr noundef @.str.653, ptr noundef %3534)
  %3535 = load ptr, ptr %4, align 8, !tbaa !5
  %3536 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3535, i32 0, i32 34
  store i64 2, ptr %3536, align 8, !tbaa !102
  %3537 = load i64, ptr %12, align 8, !tbaa !82
  %3538 = load ptr, ptr %4, align 8, !tbaa !5
  %3539 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3538, i32 0, i32 37
  store i64 %3537, ptr %3539, align 8, !tbaa !107
  %3540 = load ptr, ptr %4, align 8, !tbaa !5
  %3541 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3540, i32 0, i32 38
  store i64 1, ptr %3541, align 8, !tbaa !108
  %3542 = load i64, ptr %14, align 8, !tbaa !82
  %3543 = load ptr, ptr %4, align 8, !tbaa !5
  %3544 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3543, i32 0, i32 39
  store i64 %3542, ptr %3544, align 8, !tbaa !109
  %3545 = load i64, ptr %13, align 8, !tbaa !82
  %3546 = load ptr, ptr %4, align 8, !tbaa !5
  %3547 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3546, i32 0, i32 40
  store i64 %3545, ptr %3547, align 8, !tbaa !110
  %3548 = load i64, ptr %12, align 8, !tbaa !82
  %3549 = load i64, ptr %14, align 8, !tbaa !82
  %3550 = load i64, ptr %13, align 8, !tbaa !82
  %3551 = add nsw i64 %3549, %3550
  %3552 = mul nsw i64 %3548, %3551
  %3553 = load ptr, ptr %4, align 8, !tbaa !5
  %3554 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3553, i32 0, i32 42
  %3555 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %3552, ptr noundef %3554, ptr noundef %3555)
  store i64 0, ptr %23, align 8, !tbaa !82
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %3556

3556:                                             ; preds = %3615, %3529
  %3557 = load i64, ptr %20, align 8, !tbaa !82
  %3558 = load i64, ptr %12, align 8, !tbaa !82
  %3559 = sub nsw i64 %3558, 1
  %3560 = icmp sle i64 %3557, %3559
  br i1 %3560, label %3561, label %3618

3561:                                             ; preds = %3556
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %3562

3562:                                             ; preds = %3583, %3561
  %3563 = load i64, ptr %21, align 8, !tbaa !82
  %3564 = load i64, ptr %14, align 8, !tbaa !82
  %3565 = sub nsw i64 %3564, 1
  %3566 = icmp sle i64 %3563, %3565
  br i1 %3566, label %3567, label %3586

3567:                                             ; preds = %3562
  %3568 = load ptr, ptr %4, align 8, !tbaa !5
  %3569 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3568, i32 0, i32 9
  %3570 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3569, i32 0, i32 4
  %3571 = load ptr, ptr %3570, align 8, !tbaa !81
  %3572 = load i64, ptr %21, align 8, !tbaa !82
  %3573 = getelementptr inbounds double, ptr %3571, i64 %3572
  %3574 = load double, ptr %3573, align 8, !tbaa !83
  %3575 = load ptr, ptr %4, align 8, !tbaa !5
  %3576 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3575, i32 0, i32 42
  %3577 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3576, i32 0, i32 4
  %3578 = load ptr, ptr %3577, align 8, !tbaa !81
  %3579 = load i64, ptr %23, align 8, !tbaa !82
  %3580 = getelementptr inbounds double, ptr %3578, i64 %3579
  store double %3574, ptr %3580, align 8, !tbaa !83
  %3581 = load i64, ptr %23, align 8, !tbaa !82
  %3582 = add nsw i64 %3581, 1
  store i64 %3582, ptr %23, align 8, !tbaa !82
  br label %3583

3583:                                             ; preds = %3567
  %3584 = load i64, ptr %21, align 8, !tbaa !82
  %3585 = add nsw i64 %3584, 1
  store i64 %3585, ptr %21, align 8, !tbaa !82
  br label %3562, !llvm.loop !167

3586:                                             ; preds = %3562
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %3587

3587:                                             ; preds = %3611, %3586
  %3588 = load i64, ptr %21, align 8, !tbaa !82
  %3589 = load i64, ptr %13, align 8, !tbaa !82
  %3590 = sub nsw i64 %3589, 1
  %3591 = icmp sle i64 %3588, %3590
  br i1 %3591, label %3592, label %3614

3592:                                             ; preds = %3587
  %3593 = load ptr, ptr %4, align 8, !tbaa !5
  %3594 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3593, i32 0, i32 13
  %3595 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3594, i32 0, i32 6
  %3596 = load ptr, ptr %3595, align 8, !tbaa !81
  %3597 = load i64, ptr %20, align 8, !tbaa !82
  %3598 = getelementptr inbounds ptr, ptr %3596, i64 %3597
  %3599 = load ptr, ptr %3598, align 8, !tbaa !5
  %3600 = load i64, ptr %21, align 8, !tbaa !82
  %3601 = getelementptr inbounds double, ptr %3599, i64 %3600
  %3602 = load double, ptr %3601, align 8, !tbaa !83
  %3603 = load ptr, ptr %4, align 8, !tbaa !5
  %3604 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3603, i32 0, i32 42
  %3605 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3604, i32 0, i32 4
  %3606 = load ptr, ptr %3605, align 8, !tbaa !81
  %3607 = load i64, ptr %23, align 8, !tbaa !82
  %3608 = getelementptr inbounds double, ptr %3606, i64 %3607
  store double %3602, ptr %3608, align 8, !tbaa !83
  %3609 = load i64, ptr %23, align 8, !tbaa !82
  %3610 = add nsw i64 %3609, 1
  store i64 %3610, ptr %23, align 8, !tbaa !82
  br label %3611

3611:                                             ; preds = %3592
  %3612 = load i64, ptr %21, align 8, !tbaa !82
  %3613 = add nsw i64 %3612, 1
  store i64 %3613, ptr %21, align 8, !tbaa !82
  br label %3587, !llvm.loop !168

3614:                                             ; preds = %3587
  br label %3615

3615:                                             ; preds = %3614
  %3616 = load i64, ptr %20, align 8, !tbaa !82
  %3617 = add nsw i64 %3616, 1
  store i64 %3617, ptr %20, align 8, !tbaa !82
  br label %3556, !llvm.loop !169

3618:                                             ; preds = %3556
  %3619 = load i64, ptr %12, align 8, !tbaa !82
  %3620 = load ptr, ptr %4, align 8, !tbaa !5
  %3621 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3620, i32 0, i32 43
  %3622 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %3619, ptr noundef %3621, ptr noundef %3622)
  %3623 = load i64, ptr %12, align 8, !tbaa !82
  %3624 = load i64, ptr %14, align 8, !tbaa !82
  %3625 = mul nsw i64 %3623, %3624
  %3626 = load ptr, ptr %4, align 8, !tbaa !5
  %3627 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3626, i32 0, i32 44
  %3628 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %3625, ptr noundef %3627, ptr noundef %3628)
  %3629 = load ptr, ptr %4, align 8, !tbaa !5
  %3630 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3629, i32 0, i32 73
  %3631 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3630, i32 0, i32 0
  store i32 22, ptr %3631, align 8, !tbaa !9
  br label %3719

3632:                                             ; preds = %319
  %3633 = load i64, ptr %12, align 8, !tbaa !82
  %3634 = load ptr, ptr %4, align 8, !tbaa !5
  %3635 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3634, i32 0, i32 43
  %3636 = load ptr, ptr %4, align 8, !tbaa !5
  %3637 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3636, i32 0, i32 56
  %3638 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %3633, ptr noundef %3635, ptr noundef %3637, ptr noundef %3638)
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %3639

3639:                                             ; preds = %3675, %3632
  %3640 = load i64, ptr %20, align 8, !tbaa !82
  %3641 = load i64, ptr %12, align 8, !tbaa !82
  %3642 = sub nsw i64 %3641, 1
  %3643 = icmp sle i64 %3640, %3642
  br i1 %3643, label %3644, label %3678

3644:                                             ; preds = %3639
  store i64 0, ptr %21, align 8, !tbaa !82
  br label %3645

3645:                                             ; preds = %3671, %3644
  %3646 = load i64, ptr %21, align 8, !tbaa !82
  %3647 = load i64, ptr %14, align 8, !tbaa !82
  %3648 = sub nsw i64 %3647, 1
  %3649 = icmp sle i64 %3646, %3648
  br i1 %3649, label %3650, label %3674

3650:                                             ; preds = %3645
  %3651 = load ptr, ptr %4, align 8, !tbaa !5
  %3652 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3651, i32 0, i32 44
  %3653 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3652, i32 0, i32 4
  %3654 = load ptr, ptr %3653, align 8, !tbaa !81
  %3655 = load i64, ptr %20, align 8, !tbaa !82
  %3656 = load i64, ptr %14, align 8, !tbaa !82
  %3657 = mul nsw i64 %3655, %3656
  %3658 = load i64, ptr %21, align 8, !tbaa !82
  %3659 = add nsw i64 %3657, %3658
  %3660 = getelementptr inbounds double, ptr %3654, i64 %3659
  %3661 = load double, ptr %3660, align 8, !tbaa !83
  %3662 = load ptr, ptr %4, align 8, !tbaa !5
  %3663 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3662, i32 0, i32 57
  %3664 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3663, i32 0, i32 6
  %3665 = load ptr, ptr %3664, align 8, !tbaa !81
  %3666 = load i64, ptr %20, align 8, !tbaa !82
  %3667 = getelementptr inbounds ptr, ptr %3665, i64 %3666
  %3668 = load ptr, ptr %3667, align 8, !tbaa !5
  %3669 = load i64, ptr %21, align 8, !tbaa !82
  %3670 = getelementptr inbounds double, ptr %3668, i64 %3669
  store double %3661, ptr %3670, align 8, !tbaa !83
  br label %3671

3671:                                             ; preds = %3650
  %3672 = load i64, ptr %21, align 8, !tbaa !82
  %3673 = add nsw i64 %3672, 1
  store i64 %3673, ptr %21, align 8, !tbaa !82
  br label %3645, !llvm.loop !170

3674:                                             ; preds = %3645
  br label %3675

3675:                                             ; preds = %3674
  %3676 = load i64, ptr %20, align 8, !tbaa !82
  %3677 = add nsw i64 %3676, 1
  store i64 %3677, ptr %20, align 8, !tbaa !82
  br label %3639, !llvm.loop !171

3678:                                             ; preds = %3639
  br label %3679

3679:                                             ; preds = %3678, %3526
  br label %3680

3680:                                             ; preds = %3679, %3447
  store i64 0, ptr %20, align 8, !tbaa !82
  br label %3681

3681:                                             ; preds = %3693, %3680
  %3682 = load i64, ptr %20, align 8, !tbaa !82
  %3683 = load i64, ptr %14, align 8, !tbaa !82
  %3684 = sub nsw i64 %3683, 1
  %3685 = icmp sle i64 %3682, %3684
  br i1 %3685, label %3686, label %3696

3686:                                             ; preds = %3681
  %3687 = load ptr, ptr %4, align 8, !tbaa !5
  %3688 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3687, i32 0, i32 55
  %3689 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3688, i32 0, i32 4
  %3690 = load ptr, ptr %3689, align 8, !tbaa !81
  %3691 = load i64, ptr %20, align 8, !tbaa !82
  %3692 = getelementptr inbounds double, ptr %3690, i64 %3691
  store double 0.000000e+00, ptr %3692, align 8, !tbaa !83
  br label %3693

3693:                                             ; preds = %3686
  %3694 = load i64, ptr %20, align 8, !tbaa !82
  %3695 = add nsw i64 %3694, 1
  store i64 %3695, ptr %20, align 8, !tbaa !82
  br label %3681, !llvm.loop !172

3696:                                             ; preds = %3681
  %3697 = load ptr, ptr %4, align 8, !tbaa !5
  %3698 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3697, i32 0, i32 57
  %3699 = load ptr, ptr %4, align 8, !tbaa !5
  %3700 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3699, i32 0, i32 56
  %3701 = load ptr, ptr %4, align 8, !tbaa !5
  %3702 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3701, i32 0, i32 14
  %3703 = load ptr, ptr %4, align 8, !tbaa !5
  %3704 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3703, i32 0, i32 52
  %3705 = load ptr, ptr %4, align 8, !tbaa !5
  %3706 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3705, i32 0, i32 55
  %3707 = load ptr, ptr %4, align 8, !tbaa !5
  %3708 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3707, i32 0, i32 10
  %3709 = load i64, ptr %12, align 8, !tbaa !82
  %3710 = load i64, ptr %14, align 8, !tbaa !82
  %3711 = load ptr, ptr %4, align 8, !tbaa !5
  %3712 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3711, i32 0, i32 68
  %3713 = load ptr, ptr %4, align 8, !tbaa !5
  %3714 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3713, i32 0, i32 58
  %3715 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL20lsfit_estimateerrorsEPKNS_9ae_matrixEPKNS_9ae_vectorES5_S5_S5_S5_llPNS_11lsfitreportEPS0_lPNS_8ae_stateE(ptr noundef %3698, ptr noundef %3700, ptr noundef %3702, ptr noundef %3704, ptr noundef %3706, ptr noundef %3708, i64 noundef %3709, i64 noundef %3710, ptr noundef %3712, ptr noundef %3714, i64 noundef 0, ptr noundef %3715)
  br label %3716

3716:                                             ; preds = %3696, %2544
  store i8 0, ptr %24, align 1, !tbaa !114
  %3717 = load i8, ptr %24, align 1, !tbaa !114, !range !99, !noundef !100
  %3718 = trunc i8 %3717 to i1
  store i1 %3718, ptr %3, align 1
  store i32 1, ptr %25, align 4
  br label %3848

3719:                                             ; preds = %3618, %3465, %3386, %3092, %3033, %2934, %2716, %2572, %2484, %2309, %2082, %1941, %1896, %1797, %1675, %1564, %1473, %1305, %1204, %1128, %1000, %868, %762
  store i8 1, ptr %24, align 1, !tbaa !114
  %3720 = load i64, ptr %12, align 8, !tbaa !82
  %3721 = load ptr, ptr %4, align 8, !tbaa !5
  %3722 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3721, i32 0, i32 73
  %3723 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3722, i32 0, i32 1
  %3724 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3723, i32 0, i32 4
  %3725 = load ptr, ptr %3724, align 8, !tbaa !81
  %3726 = getelementptr inbounds i64, ptr %3725, i64 0
  store i64 %3720, ptr %3726, align 8, !tbaa !82
  %3727 = load i64, ptr %13, align 8, !tbaa !82
  %3728 = load ptr, ptr %4, align 8, !tbaa !5
  %3729 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3728, i32 0, i32 73
  %3730 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3729, i32 0, i32 1
  %3731 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3730, i32 0, i32 4
  %3732 = load ptr, ptr %3731, align 8, !tbaa !81
  %3733 = getelementptr inbounds i64, ptr %3732, i64 1
  store i64 %3727, ptr %3733, align 8, !tbaa !82
  %3734 = load i64, ptr %14, align 8, !tbaa !82
  %3735 = load ptr, ptr %4, align 8, !tbaa !5
  %3736 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3735, i32 0, i32 73
  %3737 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3736, i32 0, i32 1
  %3738 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3737, i32 0, i32 4
  %3739 = load ptr, ptr %3738, align 8, !tbaa !81
  %3740 = getelementptr inbounds i64, ptr %3739, i64 2
  store i64 %3734, ptr %3740, align 8, !tbaa !82
  %3741 = load i64, ptr %20, align 8, !tbaa !82
  %3742 = load ptr, ptr %4, align 8, !tbaa !5
  %3743 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3742, i32 0, i32 73
  %3744 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3743, i32 0, i32 1
  %3745 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3744, i32 0, i32 4
  %3746 = load ptr, ptr %3745, align 8, !tbaa !81
  %3747 = getelementptr inbounds i64, ptr %3746, i64 3
  store i64 %3741, ptr %3747, align 8, !tbaa !82
  %3748 = load i64, ptr %21, align 8, !tbaa !82
  %3749 = load ptr, ptr %4, align 8, !tbaa !5
  %3750 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3749, i32 0, i32 73
  %3751 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3750, i32 0, i32 1
  %3752 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3751, i32 0, i32 4
  %3753 = load ptr, ptr %3752, align 8, !tbaa !81
  %3754 = getelementptr inbounds i64, ptr %3753, i64 4
  store i64 %3748, ptr %3754, align 8, !tbaa !82
  %3755 = load i64, ptr %22, align 8, !tbaa !82
  %3756 = load ptr, ptr %4, align 8, !tbaa !5
  %3757 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3756, i32 0, i32 73
  %3758 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3757, i32 0, i32 1
  %3759 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3758, i32 0, i32 4
  %3760 = load ptr, ptr %3759, align 8, !tbaa !81
  %3761 = getelementptr inbounds i64, ptr %3760, i64 5
  store i64 %3755, ptr %3761, align 8, !tbaa !82
  %3762 = load i64, ptr %23, align 8, !tbaa !82
  %3763 = load ptr, ptr %4, align 8, !tbaa !5
  %3764 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3763, i32 0, i32 73
  %3765 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3764, i32 0, i32 1
  %3766 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3765, i32 0, i32 4
  %3767 = load ptr, ptr %3766, align 8, !tbaa !81
  %3768 = getelementptr inbounds i64, ptr %3767, i64 6
  store i64 %3762, ptr %3768, align 8, !tbaa !82
  %3769 = load double, ptr %6, align 8, !tbaa !83
  %3770 = load ptr, ptr %4, align 8, !tbaa !5
  %3771 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3770, i32 0, i32 73
  %3772 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3771, i32 0, i32 3
  %3773 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3772, i32 0, i32 4
  %3774 = load ptr, ptr %3773, align 8, !tbaa !81
  %3775 = getelementptr inbounds double, ptr %3774, i64 0
  store double %3769, ptr %3775, align 8, !tbaa !83
  %3776 = load double, ptr %7, align 8, !tbaa !83
  %3777 = load ptr, ptr %4, align 8, !tbaa !5
  %3778 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3777, i32 0, i32 73
  %3779 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3778, i32 0, i32 3
  %3780 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3779, i32 0, i32 4
  %3781 = load ptr, ptr %3780, align 8, !tbaa !81
  %3782 = getelementptr inbounds double, ptr %3781, i64 1
  store double %3776, ptr %3782, align 8, !tbaa !83
  %3783 = load double, ptr %8, align 8, !tbaa !83
  %3784 = load ptr, ptr %4, align 8, !tbaa !5
  %3785 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3784, i32 0, i32 73
  %3786 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3785, i32 0, i32 3
  %3787 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3786, i32 0, i32 4
  %3788 = load ptr, ptr %3787, align 8, !tbaa !81
  %3789 = getelementptr inbounds double, ptr %3788, i64 2
  store double %3783, ptr %3789, align 8, !tbaa !83
  %3790 = load double, ptr %9, align 8, !tbaa !83
  %3791 = load ptr, ptr %4, align 8, !tbaa !5
  %3792 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3791, i32 0, i32 73
  %3793 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3792, i32 0, i32 3
  %3794 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3793, i32 0, i32 4
  %3795 = load ptr, ptr %3794, align 8, !tbaa !81
  %3796 = getelementptr inbounds double, ptr %3795, i64 3
  store double %3790, ptr %3796, align 8, !tbaa !83
  %3797 = load double, ptr %10, align 8, !tbaa !83
  %3798 = load ptr, ptr %4, align 8, !tbaa !5
  %3799 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3798, i32 0, i32 73
  %3800 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3799, i32 0, i32 3
  %3801 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3800, i32 0, i32 4
  %3802 = load ptr, ptr %3801, align 8, !tbaa !81
  %3803 = getelementptr inbounds double, ptr %3802, i64 4
  store double %3797, ptr %3803, align 8, !tbaa !83
  %3804 = load double, ptr %11, align 8, !tbaa !83
  %3805 = load ptr, ptr %4, align 8, !tbaa !5
  %3806 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3805, i32 0, i32 73
  %3807 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3806, i32 0, i32 3
  %3808 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3807, i32 0, i32 4
  %3809 = load ptr, ptr %3808, align 8, !tbaa !81
  %3810 = getelementptr inbounds double, ptr %3809, i64 5
  store double %3804, ptr %3810, align 8, !tbaa !83
  %3811 = load double, ptr %15, align 8, !tbaa !83
  %3812 = load ptr, ptr %4, align 8, !tbaa !5
  %3813 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3812, i32 0, i32 73
  %3814 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3813, i32 0, i32 3
  %3815 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3814, i32 0, i32 4
  %3816 = load ptr, ptr %3815, align 8, !tbaa !81
  %3817 = getelementptr inbounds double, ptr %3816, i64 6
  store double %3811, ptr %3817, align 8, !tbaa !83
  %3818 = load double, ptr %16, align 8, !tbaa !83
  %3819 = load ptr, ptr %4, align 8, !tbaa !5
  %3820 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3819, i32 0, i32 73
  %3821 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3820, i32 0, i32 3
  %3822 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3821, i32 0, i32 4
  %3823 = load ptr, ptr %3822, align 8, !tbaa !81
  %3824 = getelementptr inbounds double, ptr %3823, i64 7
  store double %3818, ptr %3824, align 8, !tbaa !83
  %3825 = load double, ptr %17, align 8, !tbaa !83
  %3826 = load ptr, ptr %4, align 8, !tbaa !5
  %3827 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3826, i32 0, i32 73
  %3828 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3827, i32 0, i32 3
  %3829 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3828, i32 0, i32 4
  %3830 = load ptr, ptr %3829, align 8, !tbaa !81
  %3831 = getelementptr inbounds double, ptr %3830, i64 8
  store double %3825, ptr %3831, align 8, !tbaa !83
  %3832 = load double, ptr %18, align 8, !tbaa !83
  %3833 = load ptr, ptr %4, align 8, !tbaa !5
  %3834 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3833, i32 0, i32 73
  %3835 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3834, i32 0, i32 3
  %3836 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3835, i32 0, i32 4
  %3837 = load ptr, ptr %3836, align 8, !tbaa !81
  %3838 = getelementptr inbounds double, ptr %3837, i64 9
  store double %3832, ptr %3838, align 8, !tbaa !83
  %3839 = load double, ptr %19, align 8, !tbaa !83
  %3840 = load ptr, ptr %4, align 8, !tbaa !5
  %3841 = getelementptr inbounds %"struct.alglib_impl::lsfitstate", ptr %3840, i32 0, i32 73
  %3842 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3841, i32 0, i32 3
  %3843 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3842, i32 0, i32 4
  %3844 = load ptr, ptr %3843, align 8, !tbaa !81
  %3845 = getelementptr inbounds double, ptr %3844, i64 10
  store double %3839, ptr %3845, align 8, !tbaa !83
  %3846 = load i8, ptr %24, align 1, !tbaa !114, !range !99, !noundef !100
  %3847 = trunc i8 %3846 to i1
  store i1 %3847, ptr %3, align 1
  store i32 1, ptr %25, align 4
  br label %3848

3848:                                             ; preds = %3719, %3716, %1340, %1029
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #4
  %3849 = load i1, ptr %3, align 1
  ret i1 %3849
}

declare noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef, ptr noundef) #1

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #3

declare noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef, double noundef) #1

declare noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) #1

declare noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) #1

declare noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef, ptr noundef) #1

declare noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef, double noundef) #1

declare noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef, i64 noundef) #1

declare void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef) #1

declare void @_ZN11alglib_impl10ae_v_movedEPdlPKdlld(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, double noundef) #1

declare void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) #1

declare noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef, ptr noundef) #1

declare void @_ZN11alglib_impl23rmatrixsetlengthatleastEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef) #1

declare void @_ZN11alglib_impl23ivectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) #1

declare void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) #1

declare noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef, ptr noundef) #1

declare noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef, double noundef) #1

declare void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl13minlmsetscaleEPNS_10minlmstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl12minlmsetcondEPNS_10minlmstateEdlPNS_8ae_stateE(ptr noundef, double noundef, i64 noundef, ptr noundef) #1

declare void @_ZN11alglib_impl12minlmsetxrepEPNS_10minlmstateEbPNS_8ae_stateE(ptr noundef, i1 noundef zeroext, ptr noundef) #1

declare void @_ZN11alglib_impl10minlmsetbcEPNS_10minlmstateEPKNS_9ae_vectorES4_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, double noundef) #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef, ptr noundef) #2

declare void @_ZN11alglib_impl14minlmsetstpmaxEPNS_10minlmstateEdPNS_8ae_stateE(ptr noundef, double noundef, ptr noundef) #1

declare void @_ZN11alglib_impl10minlmsetlcEPNS_10minlmstateEPKNS_9ae_matrixEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) #1

declare void @_ZN11alglib_impl25minlmsetnonmonotonicstepsEPNS_10minlmstateElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) #1

declare void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef, ptr noundef) #1

declare noundef zeroext i1 @_ZN11alglib_impl15derivativecheckEdddddddPNS_8ae_stateE(double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, ptr noundef) #1

declare void @_ZN11alglib_impl18minlmsetprotocolv1EPNS_10minlmstateEPNS_8ae_stateE(ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl18minlmsetprotocolv2EPNS_10minlmstateEPNS_8ae_stateE(ptr noundef, ptr noundef) #1

declare noundef zeroext i1 @_ZN11alglib_impl14minlmiterationEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl10rmergemulvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) #1

declare void @_ZN11alglib_impl12minlmresultsEPKNS_10minlmstateEPNS_9ae_vectorEPNS_11minlmreportEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL20lsfit_estimateerrorsEPKNS_9ae_matrixEPKNS_9ae_vectorES5_S5_S5_S5_llPNS_11lsfitreportEPS0_lPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !22, i64 286712}
!10 = !{!"_ZTSN11alglib_impl10lsfitstateE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !12, i64 32, !11, i64 40, !12, i64 48, !13, i64 56, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !14, i64 320, !16, i64 384, !14, i64 464, !11, i64 528, !14, i64 536, !11, i64 600, !11, i64 608, !11, i64 616, !12, i64 624, !12, i64 632, !16, i64 640, !11, i64 720, !11, i64 728, !11, i64 736, !13, i64 744, !13, i64 745, !13, i64 746, !11, i64 752, !14, i64 760, !14, i64 824, !12, i64 888, !14, i64 896, !11, i64 960, !14, i64 968, !12, i64 1032, !11, i64 1040, !11, i64 1048, !11, i64 1056, !11, i64 1064, !11, i64 1072, !14, i64 1080, !14, i64 1144, !14, i64 1208, !17, i64 1272, !14, i64 1640, !14, i64 1704, !14, i64 1768, !14, i64 1832, !16, i64 1896, !17, i64 1976, !14, i64 2344, !14, i64 2408, !14, i64 2472, !14, i64 2536, !14, i64 2600, !16, i64 2664, !16, i64 2744, !12, i64 2824, !11, i64 2832, !11, i64 2840, !11, i64 2848, !12, i64 2856, !12, i64 2864, !12, i64 2872, !12, i64 2880, !12, i64 2888, !18, i64 2896, !19, i64 3248, !80, i64 286640, !11, i64 286696, !11, i64 286704, !21, i64 286712}
!11 = !{!"long", !7, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_vectorE", !11, i64 0, !11, i64 8, !13, i64 16, !15, i64 24, !7, i64 56}
!15 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!16 = !{!"_ZTSN11alglib_impl9ae_matrixE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !13, i64 32, !15, i64 40, !7, i64 72}
!17 = !{!"_ZTSN11alglib_impl12sparsematrixE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !11, i64 320, !11, i64 328, !11, i64 336, !11, i64 344, !11, i64 352, !11, i64 360}
!18 = !{!"_ZTSN11alglib_impl11lsfitreportE", !11, i64 0, !12, i64 8, !11, i64 16, !11, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !16, i64 72, !14, i64 152, !14, i64 216, !14, i64 280, !12, i64 344}
!19 = !{!"_ZTSN11alglib_impl10minlmstateE", !11, i64 0, !11, i64 8, !11, i64 16, !12, i64 24, !12, i64 32, !11, i64 40, !13, i64 48, !12, i64 56, !11, i64 64, !13, i64 72, !11, i64 80, !13, i64 88, !14, i64 96, !12, i64 160, !14, i64 168, !16, i64 232, !16, i64 312, !14, i64 392, !13, i64 456, !13, i64 457, !13, i64 458, !13, i64 459, !13, i64 460, !13, i64 461, !11, i64 464, !14, i64 472, !12, i64 536, !11, i64 544, !11, i64 552, !11, i64 560, !11, i64 568, !11, i64 576, !14, i64 584, !14, i64 648, !14, i64 712, !17, i64 776, !14, i64 1144, !14, i64 1208, !14, i64 1272, !14, i64 1336, !16, i64 1400, !17, i64 1480, !11, i64 1848, !14, i64 1856, !12, i64 1920, !14, i64 1928, !14, i64 1992, !16, i64 2056, !14, i64 2136, !14, i64 2200, !14, i64 2264, !14, i64 2328, !14, i64 2392, !16, i64 2456, !11, i64 2536, !11, i64 2544, !12, i64 2552, !12, i64 2560, !11, i64 2568, !11, i64 2576, !14, i64 2584, !14, i64 2648, !14, i64 2712, !14, i64 2776, !14, i64 2840, !13, i64 2904, !13, i64 2905, !20, i64 2912, !12, i64 8616, !14, i64 8624, !11, i64 8688, !11, i64 8696, !11, i64 8704, !11, i64 8712, !11, i64 8720, !11, i64 8728, !11, i64 8736, !11, i64 8744, !13, i64 8752, !11, i64 8760, !11, i64 8768, !21, i64 8776, !14, i64 9040, !14, i64 9104, !12, i64 9168, !12, i64 9176, !12, i64 9184, !12, i64 9192, !14, i64 9200, !14, i64 9264, !14, i64 9328, !14, i64 9392, !14, i64 9456, !14, i64 9520, !27, i64 9584, !31, i64 19608, !32, i64 19632, !78, i64 150464, !79, i64 150704}
!20 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !11, i64 0, !11, i64 8, !13, i64 16, !14, i64 24, !14, i64 88, !11, i64 152, !14, i64 160, !14, i64 224, !14, i64 288, !16, i64 352, !14, i64 432, !14, i64 496, !11, i64 560, !11, i64 568, !11, i64 576, !12, i64 584, !11, i64 592, !14, i64 600, !14, i64 664, !12, i64 728, !14, i64 736, !14, i64 800, !12, i64 864, !16, i64 872, !16, i64 952, !16, i64 1032, !14, i64 1112, !14, i64 1176, !21, i64 1240, !13, i64 1504, !13, i64 1505, !11, i64 1512, !11, i64 1520, !12, i64 1528, !12, i64 1536, !13, i64 1544, !23, i64 1552, !12, i64 1848, !12, i64 1856, !24, i64 1864, !24, i64 2184, !12, i64 2504, !12, i64 2512, !25, i64 2520, !25, i64 2840, !12, i64 3160, !12, i64 3168, !26, i64 3176, !26, i64 3504, !13, i64 3832, !14, i64 3840, !14, i64 3904, !16, i64 3968, !21, i64 4048, !14, i64 4312, !14, i64 4376, !14, i64 4440, !14, i64 4504, !14, i64 4568, !14, i64 4632, !14, i64 4696, !14, i64 4760, !16, i64 4824, !16, i64 4904, !14, i64 4984, !14, i64 5048, !14, i64 5112, !14, i64 5176, !14, i64 5240, !14, i64 5304, !14, i64 5368, !14, i64 5432, !14, i64 5496, !14, i64 5560, !16, i64 5624}
!21 = !{!"_ZTSN11alglib_impl10rcommstateE", !22, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !14, i64 200}
!22 = !{!"int", !7, i64 0}
!23 = !{!"_ZTSN11alglib_impl14optguardreportE", !13, i64 0, !13, i64 1, !11, i64 8, !12, i64 16, !13, i64 24, !13, i64 25, !13, i64 26, !11, i64 32, !12, i64 40, !13, i64 48, !11, i64 56, !11, i64 64, !14, i64 72, !16, i64 136, !16, i64 216}
!24 = !{!"_ZTSN11alglib_impl19optguardnonc0reportE", !13, i64 0, !11, i64 8, !14, i64 16, !14, i64 80, !11, i64 144, !14, i64 152, !14, i64 216, !11, i64 280, !11, i64 288, !11, i64 296, !11, i64 304, !11, i64 312}
!25 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !13, i64 0, !11, i64 8, !14, i64 16, !14, i64 80, !11, i64 144, !14, i64 152, !14, i64 216, !11, i64 280, !11, i64 288, !11, i64 296, !11, i64 304, !11, i64 312}
!26 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !13, i64 0, !11, i64 8, !11, i64 16, !14, i64 24, !14, i64 88, !11, i64 152, !14, i64 160, !14, i64 224, !11, i64 288, !11, i64 296, !11, i64 304, !11, i64 312, !11, i64 320}
!27 = !{!"_ZTSN11alglib_impl13minlbfgsstateE", !11, i64 0, !11, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !11, i64 40, !13, i64 48, !12, i64 56, !14, i64 64, !12, i64 128, !11, i64 136, !11, i64 144, !11, i64 152, !11, i64 160, !11, i64 168, !14, i64 176, !16, i64 240, !16, i64 320, !14, i64 400, !14, i64 464, !14, i64 528, !12, i64 592, !12, i64 600, !14, i64 608, !12, i64 672, !12, i64 680, !14, i64 688, !11, i64 752, !12, i64 760, !16, i64 768, !14, i64 848, !14, i64 912, !14, i64 976, !16, i64 1040, !11, i64 1120, !28, i64 1128, !29, i64 1592, !12, i64 2040, !12, i64 2048, !12, i64 2056, !12, i64 2064, !12, i64 2072, !12, i64 2080, !14, i64 2088, !14, i64 2152, !11, i64 2216, !13, i64 2224, !14, i64 2232, !12, i64 2296, !14, i64 2304, !13, i64 2368, !13, i64 2369, !13, i64 2370, !11, i64 2376, !14, i64 2384, !12, i64 2448, !11, i64 2456, !11, i64 2464, !11, i64 2472, !11, i64 2480, !11, i64 2488, !14, i64 2496, !14, i64 2560, !14, i64 2624, !17, i64 2688, !14, i64 3056, !14, i64 3120, !14, i64 3184, !14, i64 3248, !16, i64 3312, !17, i64 3392, !12, i64 3760, !21, i64 3768, !11, i64 4032, !11, i64 4040, !11, i64 4048, !30, i64 4056, !11, i64 4248, !20, i64 4256, !14, i64 9960}
!28 = !{!"_ZTSN11alglib_impl12precbuflbfgsE", !14, i64 0, !14, i64 64, !14, i64 128, !16, i64 192, !14, i64 272, !14, i64 336, !14, i64 400}
!29 = !{!"_ZTSN11alglib_impl14precbuflowrankE", !11, i64 0, !11, i64 8, !14, i64 16, !16, i64 80, !14, i64 160, !16, i64 224, !16, i64 304, !14, i64 384}
!30 = !{!"_ZTSN11alglib_impl11linminstateE", !13, i64 0, !13, i64 1, !11, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !12, i64 72, !12, i64 80, !12, i64 88, !12, i64 96, !12, i64 104, !12, i64 112, !12, i64 120, !12, i64 128, !12, i64 136, !12, i64 144, !12, i64 152, !12, i64 160, !12, i64 168, !12, i64 176, !12, i64 184}
!31 = !{!"_ZTSN11alglib_impl14minlbfgsreportE", !11, i64 0, !11, i64 8, !11, i64 16}
!32 = !{!"_ZTSN11alglib_impl10minqpstateE", !11, i64 0, !33, i64 8, !34, i64 80, !12, i64 104, !11, i64 112, !13, i64 120, !13, i64 121, !11, i64 128, !11, i64 136, !35, i64 144, !13, i64 1832, !17, i64 1840, !13, i64 2208, !12, i64 2216, !12, i64 2224, !12, i64 2232, !14, i64 2240, !14, i64 2304, !14, i64 2368, !11, i64 2432, !14, i64 2440, !14, i64 2504, !14, i64 2568, !14, i64 2632, !14, i64 2696, !13, i64 2760, !36, i64 2768, !37, i64 4584, !40, i64 4792, !14, i64 4936, !12, i64 5000, !11, i64 5008, !11, i64 5016, !11, i64 5024, !11, i64 5032, !11, i64 5040, !14, i64 5048, !14, i64 5112, !14, i64 5176, !11, i64 5240, !11, i64 5248, !11, i64 5256, !11, i64 5264, !14, i64 5272, !14, i64 5336, !14, i64 5400, !14, i64 5464, !14, i64 5528, !14, i64 5592, !16, i64 5656, !17, i64 5736, !16, i64 6104, !41, i64 6184, !47, i64 12176, !47, i64 12320, !48, i64 12464, !52, i64 19768, !53, i64 31392, !64, i64 58040, !69, i64 81936, !71, i64 99144, !17, i64 130320, !40, i64 130688}
!33 = !{!"_ZTSN11alglib_impl11qqpsettingsE", !12, i64 0, !12, i64 8, !12, i64 16, !11, i64 24, !13, i64 32, !13, i64 33, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64}
!34 = !{!"_ZTSN11alglib_impl18qpdenseaulsettingsE", !12, i64 0, !11, i64 8, !12, i64 16}
!35 = !{!"_ZTSN11alglib_impl20convexquadraticmodelE", !11, i64 0, !11, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !16, i64 40, !16, i64 120, !14, i64 200, !14, i64 264, !14, i64 328, !14, i64 392, !14, i64 456, !16, i64 520, !16, i64 600, !14, i64 680, !14, i64 744, !14, i64 808, !12, i64 872, !12, i64 880, !14, i64 888, !14, i64 952, !11, i64 1016, !11, i64 1024, !16, i64 1032, !16, i64 1112, !16, i64 1192, !14, i64 1272, !14, i64 1336, !12, i64 1400, !14, i64 1408, !14, i64 1472, !14, i64 1536, !16, i64 1600, !13, i64 1680, !13, i64 1681, !13, i64 1682, !13, i64 1683}
!36 = !{!"_ZTSN11alglib_impl18xlinearconstraintsE", !11, i64 0, !11, i64 8, !11, i64 16, !16, i64 24, !17, i64 104, !14, i64 472, !14, i64 536, !14, i64 600, !14, i64 664, !11, i64 728, !11, i64 736, !16, i64 744, !14, i64 824, !14, i64 888, !17, i64 952, !14, i64 1320, !14, i64 1384, !17, i64 1448}
!37 = !{!"_ZTSN11alglib_impl21xquadraticconstraintsE", !11, i64 0, !38, i64 8, !14, i64 144}
!38 = !{!"_ZTSN11alglib_impl12ae_obj_arrayE", !11, i64 0, !11, i64 8, !13, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !39, i64 56, !15, i64 104}
!39 = !{!"_ZTSN11alglib_impl7ae_lockE", !6, i64 0, !15, i64 8, !13, i64 40}
!40 = !{!"_ZTSN11alglib_impl17xconicconstraintsE", !11, i64 0, !38, i64 8}
!41 = !{!"_ZTSN11alglib_impl12presolveinfoE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !14, i64 64, !14, i64 128, !14, i64 192, !13, i64 256, !17, i64 264, !17, i64 632, !37, i64 1000, !40, i64 1208, !11, i64 1352, !14, i64 1360, !14, i64 1424, !14, i64 1488, !14, i64 1552, !17, i64 1616, !17, i64 1984, !14, i64 2352, !14, i64 2416, !37, i64 2480, !40, i64 2688, !14, i64 2832, !14, i64 2896, !14, i64 2960, !14, i64 3024, !14, i64 3088, !14, i64 3152, !14, i64 3216, !14, i64 3280, !42, i64 3344, !14, i64 4240, !14, i64 4304, !14, i64 4368, !14, i64 4432, !14, i64 4496, !14, i64 4560, !14, i64 4624, !43, i64 4688}
!42 = !{!"_ZTSN11alglib_impl14presolverstackE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !14, i64 40, !14, i64 104, !14, i64 168, !14, i64 232, !14, i64 296, !11, i64 360, !11, i64 368, !11, i64 376, !14, i64 384, !14, i64 448, !14, i64 512, !14, i64 576, !14, i64 640, !14, i64 704, !14, i64 768, !14, i64 832}
!43 = !{!"_ZTSN11alglib_impl15presolvebuffersE", !44, i64 0, !44, i64 152, !44, i64 304, !44, i64 456, !14, i64 608, !14, i64 672, !14, i64 736, !14, i64 800, !45, i64 864}
!44 = !{!"_ZTSN11alglib_impl5nisetE", !11, i64 0, !11, i64 8, !14, i64 16, !14, i64 80, !11, i64 144}
!45 = !{!"_ZTSN11alglib_impl21dynamiccrsqconstraintE", !11, i64 0, !14, i64 8, !14, i64 72, !46, i64 136, !12, i64 416, !12, i64 424, !13, i64 432}
!46 = !{!"_ZTSN11alglib_impl10dynamiccrsE", !11, i64 0, !11, i64 8, !11, i64 16, !14, i64 24, !14, i64 88, !14, i64 152, !14, i64 216}
!47 = !{!"_ZTSN11alglib_impl9ae_nxpoolE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !15, i64 32, !39, i64 64, !15, i64 112}
!48 = !{!"_ZTSN11alglib_impl10qqpbuffersE", !11, i64 0, !11, i64 8, !16, i64 16, !17, i64 96, !13, i64 464, !12, i64 472, !12, i64 480, !12, i64 488, !14, i64 496, !14, i64 560, !14, i64 624, !14, i64 688, !14, i64 752, !14, i64 816, !14, i64 880, !14, i64 944, !14, i64 1008, !14, i64 1072, !14, i64 1136, !14, i64 1200, !14, i64 1264, !49, i64 1328, !14, i64 5672, !11, i64 5736, !11, i64 5744, !16, i64 5752, !17, i64 5832, !14, i64 6200, !14, i64 6264, !14, i64 6328, !14, i64 6392, !14, i64 6456, !14, i64 6520, !14, i64 6584, !14, i64 6648, !14, i64 6712, !51, i64 6776, !11, i64 7272, !11, i64 7280, !11, i64 7288, !11, i64 7296}
!49 = !{!"_ZTSN11alglib_impl10sactivesetE", !11, i64 0, !11, i64 8, !14, i64 16, !13, i64 80, !14, i64 88, !14, i64 152, !14, i64 216, !13, i64 280, !16, i64 288, !16, i64 368, !16, i64 448, !11, i64 528, !14, i64 536, !11, i64 600, !11, i64 608, !13, i64 616, !13, i64 617, !14, i64 624, !14, i64 688, !14, i64 752, !14, i64 816, !16, i64 880, !11, i64 960, !11, i64 968, !14, i64 976, !14, i64 1040, !14, i64 1104, !14, i64 1168, !14, i64 1232, !14, i64 1296, !50, i64 1360, !14, i64 3000, !14, i64 3064, !14, i64 3128, !16, i64 3192, !14, i64 3272, !14, i64 3336, !14, i64 3400, !16, i64 3464, !16, i64 3544, !14, i64 3624, !14, i64 3688, !14, i64 3752, !16, i64 3816, !14, i64 3896, !14, i64 3960, !14, i64 4024, !14, i64 4088, !14, i64 4152, !14, i64 4216, !14, i64 4280}
!50 = !{!"_ZTSN11alglib_impl11snnlssolverE", !11, i64 0, !11, i64 8, !11, i64 16, !16, i64 24, !14, i64 104, !14, i64 168, !12, i64 232, !11, i64 240, !14, i64 248, !14, i64 312, !16, i64 376, !16, i64 456, !16, i64 536, !14, i64 616, !14, i64 680, !14, i64 744, !14, i64 808, !14, i64 872, !14, i64 936, !14, i64 1000, !14, i64 1064, !14, i64 1128, !14, i64 1192, !14, i64 1256, !14, i64 1320, !14, i64 1384, !14, i64 1448, !14, i64 1512, !14, i64 1576}
!51 = !{!"_ZTSN11alglib_impl13sparsebuffersE", !14, i64 0, !14, i64 64, !17, i64 128}
!52 = !{!"_ZTSN11alglib_impl17qpdenseaulbuffersE", !14, i64 0, !16, i64 64, !14, i64 144, !14, i64 208, !14, i64 272, !14, i64 336, !14, i64 400, !14, i64 464, !16, i64 528, !14, i64 608, !14, i64 672, !16, i64 736, !14, i64 816, !14, i64 880, !14, i64 944, !14, i64 1008, !14, i64 1072, !14, i64 1136, !33, i64 1200, !48, i64 1272, !14, i64 8576, !14, i64 8640, !14, i64 8704, !16, i64 8768, !14, i64 8848, !14, i64 8912, !14, i64 8976, !35, i64 9040, !17, i64 10728, !16, i64 11096, !14, i64 11176, !14, i64 11240, !14, i64 11304, !14, i64 11368, !14, i64 11432, !14, i64 11496, !11, i64 11560, !11, i64 11568, !11, i64 11576, !11, i64 11584, !11, i64 11592, !11, i64 11600, !11, i64 11608, !11, i64 11616}
!53 = !{!"_ZTSN11alglib_impl9vipmstateE", !13, i64 0, !13, i64 1, !11, i64 8, !11, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !13, i64 48, !14, i64 56, !14, i64 120, !14, i64 184, !12, i64 248, !14, i64 256, !16, i64 320, !17, i64 400, !14, i64 768, !11, i64 832, !13, i64 840, !14, i64 848, !14, i64 912, !14, i64 976, !14, i64 1040, !14, i64 1104, !14, i64 1168, !16, i64 1232, !16, i64 1312, !17, i64 1392, !17, i64 1760, !17, i64 2128, !14, i64 2496, !14, i64 2560, !14, i64 2624, !14, i64 2688, !14, i64 2752, !11, i64 2816, !11, i64 2824, !54, i64 2832, !54, i64 3488, !54, i64 4144, !54, i64 4800, !54, i64 5456, !14, i64 6112, !14, i64 6176, !14, i64 6240, !14, i64 6304, !14, i64 6368, !11, i64 6432, !11, i64 6440, !11, i64 6448, !11, i64 6456, !11, i64 6464, !11, i64 6472, !13, i64 6480, !13, i64 6481, !11, i64 6488, !13, i64 6496, !13, i64 6497, !14, i64 6504, !14, i64 6568, !14, i64 6632, !14, i64 6696, !14, i64 6760, !14, i64 6824, !14, i64 6888, !14, i64 6952, !14, i64 7016, !14, i64 7080, !14, i64 7144, !14, i64 7208, !14, i64 7272, !14, i64 7336, !14, i64 7400, !16, i64 7464, !14, i64 7544, !14, i64 7608, !14, i64 7672, !14, i64 7736, !14, i64 7800, !55, i64 7864, !63, i64 23944, !14, i64 24584, !14, i64 24648, !14, i64 24712, !14, i64 24776, !14, i64 24840, !14, i64 24904, !14, i64 24968, !14, i64 25032, !54, i64 25096, !14, i64 25752, !14, i64 25816, !14, i64 25880, !14, i64 25944, !14, i64 26008, !16, i64 26072, !14, i64 26152, !14, i64 26216, !17, i64 26280}
!54 = !{!"_ZTSN11alglib_impl8vipmvarsE", !11, i64 0, !11, i64 8, !14, i64 16, !14, i64 80, !14, i64 144, !14, i64 208, !14, i64 272, !14, i64 336, !14, i64 400, !14, i64 464, !14, i64 528, !14, i64 592}
!55 = !{!"_ZTSN11alglib_impl23vipmreducedsparsesystemE", !17, i64 0, !14, i64 368, !14, i64 432, !14, i64 496, !14, i64 560, !11, i64 624, !56, i64 632, !14, i64 15696, !14, i64 15760, !14, i64 15824, !14, i64 15888, !14, i64 15952, !14, i64 16016}
!56 = !{!"_ZTSN11alglib_impl14spcholanalysisE", !11, i64 0, !11, i64 8, !11, i64 16, !13, i64 24, !11, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !12, i64 64, !14, i64 72, !13, i64 136, !13, i64 137, !13, i64 138, !13, i64 139, !13, i64 140, !14, i64 144, !11, i64 208, !14, i64 216, !14, i64 280, !14, i64 344, !14, i64 408, !14, i64 472, !14, i64 536, !13, i64 600, !14, i64 608, !14, i64 672, !14, i64 736, !14, i64 800, !14, i64 864, !14, i64 928, !13, i64 992, !13, i64 993, !57, i64 1000, !14, i64 1512, !14, i64 1576, !14, i64 1640, !14, i64 1704, !14, i64 1768, !14, i64 1832, !47, i64 1896, !47, i64 2040, !47, i64 2184, !47, i64 2328, !47, i64 2472, !47, i64 2616, !14, i64 2760, !14, i64 2824, !14, i64 2888, !14, i64 2952, !14, i64 3016, !58, i64 3080, !62, i64 7464, !14, i64 13816, !14, i64 13880, !14, i64 13944, !14, i64 14008, !14, i64 14072, !14, i64 14136, !17, i64 14200, !17, i64 14568, !14, i64 14936, !14, i64 15000}
!57 = !{!"_ZTSN11alglib_impl9spcholadjE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !14, i64 320, !14, i64 384, !14, i64 448}
!58 = !{!"_ZTSN11alglib_impl9amdbufferE", !11, i64 0, !13, i64 8, !13, i64 9, !14, i64 16, !14, i64 80, !14, i64 144, !59, i64 208, !59, i64 568, !59, i64 928, !60, i64 1288, !61, i64 1496, !44, i64 1968, !14, i64 2120, !14, i64 2184, !14, i64 2248, !44, i64 2312, !44, i64 2464, !44, i64 2616, !44, i64 2768, !44, i64 2920, !44, i64 3072, !14, i64 3224, !11, i64 3288, !44, i64 3296, !44, i64 3448, !59, i64 3600, !44, i64 3960, !14, i64 4112, !14, i64 4176, !14, i64 4240, !16, i64 4304}
!59 = !{!"_ZTSN11alglib_impl8amdknsetE", !11, i64 0, !11, i64 8, !14, i64 16, !14, i64 80, !14, i64 144, !14, i64 208, !14, i64 272, !11, i64 336, !11, i64 344, !11, i64 352}
!60 = !{!"_ZTSN11alglib_impl11amdllmatrixE", !11, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !11, i64 200}
!61 = !{!"_ZTSN11alglib_impl12amdvertexsetE", !11, i64 0, !13, i64 8, !11, i64 16, !14, i64 24, !14, i64 88, !14, i64 152, !14, i64 216, !14, i64 280, !14, i64 344, !14, i64 408}
!62 = !{!"_ZTSN11alglib_impl18priorityamdbuffersE", !14, i64 0, !14, i64 64, !58, i64 128, !17, i64 4512, !17, i64 4880, !17, i64 5248, !17, i64 5616, !17, i64 5984}
!63 = !{!"_ZTSN11alglib_impl17vipmrighthandsideE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !14, i64 320, !14, i64 384, !14, i64 448, !14, i64 512, !14, i64 576}
!64 = !{!"_ZTSN11alglib_impl9ipm2stateE", !11, i64 0, !11, i64 8, !11, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !11, i64 48, !13, i64 56, !14, i64 64, !14, i64 128, !14, i64 192, !12, i64 256, !14, i64 264, !17, i64 328, !14, i64 696, !13, i64 760, !12, i64 768, !14, i64 776, !14, i64 840, !14, i64 904, !14, i64 968, !14, i64 1032, !14, i64 1096, !14, i64 1160, !14, i64 1224, !14, i64 1288, !14, i64 1352, !14, i64 1416, !14, i64 1480, !14, i64 1544, !14, i64 1608, !14, i64 1672, !17, i64 1736, !14, i64 2104, !11, i64 2168, !65, i64 2176, !65, i64 2576, !65, i64 2976, !65, i64 3376, !14, i64 3776, !14, i64 3840, !14, i64 3904, !14, i64 3968, !11, i64 4032, !11, i64 4040, !14, i64 4048, !14, i64 4112, !14, i64 4176, !66, i64 4240, !11, i64 4624, !11, i64 4632, !13, i64 4640, !13, i64 4641, !13, i64 4642, !67, i64 4648, !67, i64 4672, !67, i64 4696, !67, i64 4720, !67, i64 4744, !68, i64 4768, !66, i64 21736, !14, i64 22120, !14, i64 22184, !14, i64 22248, !14, i64 22312, !14, i64 22376, !16, i64 22440, !17, i64 22520, !14, i64 22888, !14, i64 22952, !17, i64 23016, !17, i64 23384, !16, i64 23752, !14, i64 23832}
!65 = !{!"_ZTSN11alglib_impl8ipm2varsE", !11, i64 0, !11, i64 8, !14, i64 16, !14, i64 80, !14, i64 144, !14, i64 208, !14, i64 272, !14, i64 336}
!66 = !{!"_ZTSN11alglib_impl17ipm2righthandsideE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !14, i64 320}
!67 = !{!"_ZTSN11alglib_impl6stimerE", !11, i64 0, !11, i64 8, !13, i64 16}
!68 = !{!"_ZTSN11alglib_impl17ipm2reducedsystemE", !17, i64 0, !14, i64 368, !56, i64 432, !14, i64 15496, !14, i64 15560, !14, i64 15624, !14, i64 15688, !14, i64 15752, !14, i64 15816, !14, i64 15880, !14, i64 15944, !14, i64 16008, !14, i64 16072, !14, i64 16136, !14, i64 16200, !14, i64 16264, !14, i64 16328, !14, i64 16392, !14, i64 16456, !14, i64 16520, !14, i64 16584, !14, i64 16648, !14, i64 16712, !14, i64 16776, !14, i64 16840, !14, i64 16904}
!69 = !{!"_ZTSN11alglib_impl9ecqpstateE", !17, i64 0, !14, i64 368, !56, i64 432, !14, i64 15496, !14, i64 15560, !14, i64 15624, !14, i64 15688, !14, i64 15752, !70, i64 15816, !11, i64 17064, !11, i64 17072, !13, i64 17080, !13, i64 17081, !67, i64 17088, !67, i64 17112, !67, i64 17136, !67, i64 17160, !67, i64 17184}
!70 = !{!"_ZTSN11alglib_impl14fblsgmresstateE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !16, i64 256, !16, i64 336, !16, i64 416, !16, i64 496, !16, i64 576, !14, i64 656, !14, i64 720, !14, i64 784, !14, i64 848, !11, i64 912, !11, i64 920, !12, i64 928, !12, i64 936, !12, i64 944, !12, i64 952, !11, i64 960, !11, i64 968, !12, i64 976, !21, i64 984}
!71 = !{!"_ZTSN11alglib_impl11gqpipmstateE", !13, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !14, i64 40, !11, i64 104, !12, i64 112, !11, i64 120, !14, i64 128, !14, i64 192, !14, i64 256, !14, i64 320, !14, i64 384, !14, i64 448, !11, i64 512, !14, i64 520, !14, i64 584, !16, i64 648, !17, i64 728, !17, i64 1096, !14, i64 1464, !14, i64 1528, !37, i64 1592, !40, i64 1800, !12, i64 1944, !11, i64 1952, !11, i64 1960, !11, i64 1968, !13, i64 1976, !13, i64 1977, !67, i64 1984, !72, i64 2008, !16, i64 12320, !16, i64 12400, !14, i64 12480, !14, i64 12544, !16, i64 12608, !16, i64 12688, !14, i64 12768, !14, i64 12832, !17, i64 12896, !17, i64 13264, !17, i64 13632, !17, i64 14000, !14, i64 14368, !56, i64 14432, !47, i64 29496, !14, i64 29640, !14, i64 29704, !17, i64 29768, !14, i64 30136, !14, i64 30200, !14, i64 30264, !14, i64 30328, !14, i64 30392, !14, i64 30456, !16, i64 30520, !14, i64 30600, !14, i64 30664, !14, i64 30728, !14, i64 30792, !14, i64 30856, !14, i64 30920, !14, i64 30984, !14, i64 31048, !14, i64 31112}
!72 = !{!"_ZTSN11alglib_impl9gipmstateE", !11, i64 0, !11, i64 8, !11, i64 16, !14, i64 24, !14, i64 88, !14, i64 152, !14, i64 216, !14, i64 280, !14, i64 344, !14, i64 408, !12, i64 472, !11, i64 480, !11, i64 488, !14, i64 496, !12, i64 560, !14, i64 568, !14, i64 632, !17, i64 696, !14, i64 1064, !14, i64 1128, !13, i64 1192, !13, i64 1193, !13, i64 1194, !14, i64 1200, !14, i64 1264, !14, i64 1328, !14, i64 1392, !14, i64 1456, !14, i64 1520, !14, i64 1584, !14, i64 1648, !12, i64 1712, !12, i64 1720, !12, i64 1728, !12, i64 1736, !12, i64 1744, !11, i64 1752, !73, i64 1760, !73, i64 2560, !74, i64 3360, !74, i64 3960, !12, i64 4560, !11, i64 4568, !75, i64 4576, !13, i64 4744, !13, i64 4745, !13, i64 4746, !11, i64 4752, !11, i64 4760, !67, i64 4768, !47, i64 4792, !76, i64 4936, !77, i64 5704, !73, i64 6856, !73, i64 7656, !14, i64 8456, !14, i64 8520, !14, i64 8584, !73, i64 8648, !74, i64 9448, !21, i64 10048}
!73 = !{!"_ZTSN11alglib_impl8gipmvarsE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !14, i64 32, !14, i64 96, !14, i64 160, !14, i64 224, !14, i64 288, !14, i64 352, !14, i64 416, !14, i64 480, !14, i64 544, !14, i64 608, !14, i64 672, !14, i64 736}
!74 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !11, i64 0, !11, i64 8, !13, i64 16, !14, i64 24, !14, i64 88, !16, i64 152, !17, i64 232}
!75 = !{!"_ZTSN11alglib_impl9nlpfilterE", !12, i64 0, !11, i64 8, !12, i64 16, !12, i64 24, !13, i64 32, !14, i64 40, !14, i64 104}
!76 = !{!"_ZTSN11alglib_impl7gipmrhsE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !14, i64 320, !14, i64 384, !14, i64 448, !14, i64 512, !14, i64 576, !14, i64 640, !14, i64 704}
!77 = !{!"_ZTSN11alglib_impl19gipmcondensedsystemE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !14, i64 320, !14, i64 384, !14, i64 448, !14, i64 512, !14, i64 576, !14, i64 640, !14, i64 704, !14, i64 768, !14, i64 832, !14, i64 896, !14, i64 960, !14, i64 1024, !14, i64 1088}
!78 = !{!"_ZTSN11alglib_impl11minqpreportE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !12, i64 40, !14, i64 48, !14, i64 112, !14, i64 176}
!79 = !{!"_ZTSN11alglib_impl15minlmstepfinderE", !11, i64 0, !11, i64 8, !12, i64 16, !11, i64 24, !11, i64 32, !12, i64 40, !14, i64 48, !12, i64 112, !14, i64 120, !13, i64 184, !13, i64 185, !12, i64 192, !14, i64 200, !14, i64 264, !14, i64 328, !14, i64 392, !14, i64 456, !14, i64 520, !14, i64 584, !14, i64 648, !21, i64 712, !14, i64 976, !14, i64 1040, !14, i64 1104, !14, i64 1168, !12, i64 1232, !12, i64 1240, !32, i64 1248, !78, i64 132080, !17, i64 132320}
!80 = !{!"_ZTSN11alglib_impl11minlmreportE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48}
!81 = !{!7, !7, i64 0}
!82 = !{!11, !11, i64 0}
!83 = !{!12, !12, i64 0}
!84 = !{!10, !11, i64 608}
!85 = !{!10, !11, i64 528}
!86 = !{!10, !11, i64 600}
!87 = !{!10, !11, i64 2848}
!88 = !{!10, !11, i64 16}
!89 = !{!10, !11, i64 24}
!90 = !{!10, !11, i64 720}
!91 = !{!10, !11, i64 728}
!92 = distinct !{!92, !93}
!93 = !{!"llvm.loop.mustprogress"}
!94 = distinct !{!94, !93}
!95 = !{!10, !12, i64 32}
!96 = !{!10, !11, i64 40}
!97 = !{!10, !12, i64 48}
!98 = !{!10, !13, i64 56}
!99 = !{i8 0, i8 2}
!100 = !{}
!101 = !{!10, !11, i64 736}
!102 = !{!10, !11, i64 960}
!103 = !{!10, !11, i64 0}
!104 = !{!10, !12, i64 632}
!105 = !{!10, !11, i64 8}
!106 = distinct !{!106, !93}
!107 = !{!10, !11, i64 1040}
!108 = !{!10, !11, i64 1048}
!109 = !{!10, !11, i64 1056}
!110 = !{!10, !11, i64 1064}
!111 = distinct !{!111, !93}
!112 = !{!10, !13, i64 746}
!113 = !{!10, !11, i64 2840}
!114 = !{!13, !13, i64 0}
!115 = !{!10, !12, i64 888}
!116 = distinct !{!116, !93}
!117 = distinct !{!117, !93}
!118 = !{!10, !13, i64 3708}
!119 = !{!10, !11, i64 752}
!120 = !{!10, !13, i64 745}
!121 = !{!10, !13, i64 3704}
!122 = !{!10, !12, i64 3408}
!123 = !{!10, !13, i64 3705}
!124 = distinct !{!124, !93}
!125 = !{!10, !13, i64 3707}
!126 = !{!10, !13, i64 3709}
!127 = !{!10, !13, i64 744}
!128 = !{!10, !11, i64 3712}
!129 = !{!10, !12, i64 3784}
!130 = !{!10, !12, i64 1032}
!131 = !{!10, !11, i64 3792}
!132 = !{!10, !11, i64 3800}
!133 = !{!10, !11, i64 3808}
!134 = !{!10, !11, i64 3816}
!135 = distinct !{!135, !93}
!136 = distinct !{!136, !93}
!137 = distinct !{!137, !93}
!138 = !{!10, !11, i64 3824}
!139 = !{!10, !11, i64 1072}
!140 = distinct !{!140, !93}
!141 = distinct !{!141, !93}
!142 = distinct !{!142, !93}
!143 = distinct !{!143, !93}
!144 = distinct !{!144, !93}
!145 = distinct !{!145, !93}
!146 = distinct !{!146, !93}
!147 = !{!10, !11, i64 286648}
!148 = !{!10, !11, i64 286640}
!149 = !{!10, !11, i64 2832}
!150 = !{!10, !12, i64 2856}
!151 = !{!10, !12, i64 2888}
!152 = !{!10, !12, i64 2864}
!153 = !{!10, !12, i64 2872}
!154 = !{!10, !12, i64 2880}
!155 = distinct !{!155, !93}
!156 = distinct !{!156, !93}
!157 = distinct !{!157, !93}
!158 = distinct !{!158, !93}
!159 = !{!10, !12, i64 624}
!160 = distinct !{!160, !93}
!161 = distinct !{!161, !93}
!162 = distinct !{!162, !93}
!163 = distinct !{!163, !93}
!164 = distinct !{!164, !93}
!165 = distinct !{!165, !93}
!166 = distinct !{!166, !93}
!167 = distinct !{!167, !93}
!168 = distinct !{!168, !93}
!169 = distinct !{!169, !93}
!170 = distinct !{!170, !93}
!171 = distinct !{!171, !93}
!172 = distinct !{!172, !93}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str.638 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.639 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.640 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.641 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.642 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.643 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.644 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.645 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.646 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.647 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.648 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.649 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.650 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.651 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.652 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.653 = external hidden unnamed_addr constant [35 x i8], align 1

declare void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl14lsfititerationEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef %0, ptr noundef %1) local_unnamed_addr #1 {
  %3 = getelementptr inbounds i8, ptr %0, i64 286712
  %4 = load i32, ptr %3, align 8, !tbaa !5
  %5 = icmp sgt i32 %4, -1
  br i1 %5, label %6, label %45

6:                                                ; preds = %2
  %7 = getelementptr inbounds i8, ptr %0, i64 286776
  %8 = load ptr, ptr %7, align 8, !tbaa !80
  %9 = load i64, ptr %8, align 8, !tbaa !81
  %10 = getelementptr inbounds i8, ptr %8, i64 8
  %11 = load i64, ptr %10, align 8, !tbaa !81
  %12 = getelementptr inbounds i8, ptr %8, i64 16
  %13 = load i64, ptr %12, align 8, !tbaa !81
  %14 = getelementptr inbounds i8, ptr %8, i64 24
  %15 = load i64, ptr %14, align 8, !tbaa !81
  %16 = getelementptr inbounds i8, ptr %8, i64 32
  %17 = load i64, ptr %16, align 8, !tbaa !81
  %18 = getelementptr inbounds i8, ptr %8, i64 40
  %19 = load i64, ptr %18, align 8, !tbaa !81
  %20 = getelementptr inbounds i8, ptr %8, i64 48
  %21 = load i64, ptr %20, align 8, !tbaa !81
  %22 = getelementptr inbounds i8, ptr %0, i64 286904
  %23 = load ptr, ptr %22, align 8, !tbaa !80
  %24 = load double, ptr %23, align 8, !tbaa !82
  %25 = getelementptr inbounds i8, ptr %23, i64 8
  %26 = load double, ptr %25, align 8, !tbaa !82
  %27 = getelementptr inbounds i8, ptr %23, i64 16
  %28 = load double, ptr %27, align 8, !tbaa !82
  %29 = getelementptr inbounds i8, ptr %23, i64 24
  %30 = load double, ptr %29, align 8, !tbaa !82
  %31 = getelementptr inbounds i8, ptr %23, i64 32
  %32 = load double, ptr %31, align 8, !tbaa !82
  %33 = getelementptr inbounds i8, ptr %23, i64 40
  %34 = load double, ptr %33, align 8, !tbaa !82
  %35 = getelementptr inbounds i8, ptr %23, i64 48
  %36 = load double, ptr %35, align 8, !tbaa !82
  %37 = getelementptr inbounds i8, ptr %23, i64 56
  %38 = load double, ptr %37, align 8, !tbaa !82
  %39 = getelementptr inbounds i8, ptr %23, i64 64
  %40 = load double, ptr %39, align 8, !tbaa !82
  %41 = getelementptr inbounds i8, ptr %23, i64 72
  %42 = load double, ptr %41, align 8, !tbaa !82
  %43 = getelementptr inbounds i8, ptr %23, i64 80
  %44 = load double, ptr %43, align 8, !tbaa !82
  br label %45

45:                                               ; preds = %2, %6
  %.01448 = phi double [ %24, %6 ], [ -7.880000e+02, %2 ]
  %.01446 = phi double [ %26, %6 ], [ 8.090000e+02, %2 ]
  %.01444 = phi double [ %28, %6 ], [ 2.050000e+02, %2 ]
  %.01442 = phi double [ %30, %6 ], [ -8.380000e+02, %2 ]
  %.01438 = phi double [ %32, %6 ], [ 9.390000e+02, %2 ]
  %.01436 = phi double [ %34, %6 ], [ -5.260000e+02, %2 ]
  %.01419 = phi i64 [ %9, %6 ], [ 359, %2 ]
  %.01403 = phi i64 [ %11, %6 ], [ -58, %2 ]
  %.01386 = phi i64 [ %13, %6 ], [ -919, %2 ]
  %.01366 = phi double [ %36, %6 ], [ 7.630000e+02, %2 ]
  %.01354 = phi double [ %38, %6 ], [ -5.410000e+02, %2 ]
  %.01349 = phi double [ %40, %6 ], [ -6.980000e+02, %2 ]
  %.01344 = phi double [ %42, %6 ], [ -9.000000e+02, %2 ]
  %.01338 = phi double [ %44, %6 ], [ -3.180000e+02, %2 ]
  %.01309 = phi i64 [ %15, %6 ], [ -909, %2 ]
  %.01287 = phi i64 [ %17, %6 ], [ 81, %2 ]
  %.01284 = phi i64 [ %19, %6 ], [ 255, %2 ]
  %.0 = phi i64 [ %21, %6 ], [ 74, %2 ]
  switch i32 %4, label %46 [
    i32 0, label %264
    i32 1, label %310
    i32 2, label %359
    i32 3, label %421
    i32 4, label %458
    i32 5, label %503
    i32 6, label %618
    i32 7, label %659
    i32 8, label %719
    i32 9, label %772
    i32 10, label %812
    i32 11, label %.preheader1534
    i32 12, label %900
    i32 13, label %1012
    i32 14, label %1096
    i32 15, label %1134
    i32 16, label %1205
    i32 17, label %1309
    i32 18, label %1344
    i32 19, label %1372
    i32 20, label %1516
    i32 21, label %1564
    i32 22, label %1665
  ]

46:                                               ; preds = %45
  %47 = getelementptr inbounds i8, ptr %0, i64 608
  %48 = load i64, ptr %47, align 8, !tbaa !83
  %49 = icmp eq i64 %48, 1
  br i1 %49, label %50, label %56

50:                                               ; preds = %46
  %51 = getelementptr inbounds i8, ptr %0, i64 528
  %52 = load i64, ptr %51, align 8, !tbaa !84
  %53 = getelementptr inbounds i8, ptr %0, i64 600
  %54 = load i64, ptr %53, align 8, !tbaa !85
  %55 = icmp eq i64 %52, %54
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %55, ptr noundef nonnull @.str.638, ptr noundef %1)
  br label %56

56:                                               ; preds = %50, %46
  %57 = getelementptr inbounds i8, ptr %0, i64 2848
  store i64 -1, ptr %57, align 8, !tbaa !86
  %58 = getelementptr inbounds i8, ptr %0, i64 528
  %59 = load i64, ptr %58, align 8, !tbaa !84
  %60 = getelementptr inbounds i8, ptr %0, i64 16
  %61 = load i64, ptr %60, align 8, !tbaa !87
  %62 = getelementptr inbounds i8, ptr %0, i64 24
  %63 = load i64, ptr %62, align 8, !tbaa !88
  %64 = getelementptr inbounds i8, ptr %0, i64 2472
  %65 = getelementptr inbounds i8, ptr %0, i64 720
  %66 = load i64, ptr %65, align 8, !tbaa !89
  %67 = getelementptr inbounds i8, ptr %0, i64 728
  %68 = load i64, ptr %67, align 8, !tbaa !90
  %69 = add nsw i64 %68, %66
  tail call void @_ZN11alglib_impl23ivectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %64, i64 noundef %69, ptr noundef %1)
  %70 = load i64, ptr %65, align 8, !tbaa !89
  %.not.not1565 = icmp sgt i64 %70, 0
  br i1 %.not.not1565, label %.lr.ph1568, label %.preheader1539

.lr.ph1568:                                       ; preds = %56
  %71 = getelementptr inbounds i8, ptr %0, i64 2528
  br label %74

.preheader1539:                                   ; preds = %74, %56
  %72 = load i64, ptr %67, align 8, !tbaa !90
  %.not.not14671569 = icmp sgt i64 %72, 0
  br i1 %.not.not14671569, label %.lr.ph1571, label %._crit_edge1572

.lr.ph1571:                                       ; preds = %.preheader1539
  %73 = getelementptr inbounds i8, ptr %0, i64 2528
  br label %79

74:                                               ; preds = %.lr.ph1568, %74
  %.113101566 = phi i64 [ 0, %.lr.ph1568 ], [ %77, %74 ]
  %75 = load ptr, ptr %71, align 8, !tbaa !80
  %76 = getelementptr inbounds i64, ptr %75, i64 %.113101566
  store i64 0, ptr %76, align 8, !tbaa !81
  %77 = add nuw nsw i64 %.113101566, 1
  %78 = load i64, ptr %65, align 8, !tbaa !89
  %.not.not = icmp slt i64 %77, %78
  br i1 %.not.not, label %74, label %.preheader1539, !llvm.loop !91

79:                                               ; preds = %.lr.ph1571, %79
  %.213111570 = phi i64 [ 0, %.lr.ph1571 ], [ %84, %79 ]
  %80 = load ptr, ptr %73, align 8, !tbaa !80
  %81 = load i64, ptr %65, align 8, !tbaa !89
  %82 = getelementptr i64, ptr %80, i64 %81
  %83 = getelementptr i64, ptr %82, i64 %.213111570
  store i64 -1, ptr %83, align 8, !tbaa !81
  %84 = add nuw nsw i64 %.213111570, 1
  %85 = load i64, ptr %67, align 8, !tbaa !90
  %.not.not1467 = icmp slt i64 %84, %85
  br i1 %.not.not1467, label %79, label %._crit_edge1572, !llvm.loop !93

._crit_edge1572:                                  ; preds = %79, %.preheader1539
  %86 = getelementptr inbounds i8, ptr %0, i64 3248
  %87 = getelementptr inbounds i8, ptr %0, i64 32
  %88 = load double, ptr %87, align 8, !tbaa !94
  %89 = getelementptr inbounds i8, ptr %0, i64 40
  %90 = load i64, ptr %89, align 8, !tbaa !95
  tail call void @_ZN11alglib_impl12minlmsetcondEPNS_10minlmstateEdlPNS_8ae_stateE(ptr noundef nonnull %86, double noundef %88, i64 noundef %90, ptr noundef %1)
  %91 = getelementptr inbounds i8, ptr %0, i64 48
  %92 = load double, ptr %91, align 8, !tbaa !96
  tail call void @_ZN11alglib_impl14minlmsetstpmaxEPNS_10minlmstateEdPNS_8ae_stateE(ptr noundef nonnull %86, double noundef %92, ptr noundef %1)
  %93 = getelementptr inbounds i8, ptr %0, i64 56
  %94 = load i8, ptr %93, align 8, !tbaa !97, !range !98, !noundef !99
  %95 = trunc nuw i8 %94 to i1
  tail call void @_ZN11alglib_impl12minlmsetxrepEPNS_10minlmstateEbPNS_8ae_stateE(ptr noundef nonnull %86, i1 noundef zeroext %95, ptr noundef %1)
  %96 = getelementptr inbounds i8, ptr %0, i64 192
  tail call void @_ZN11alglib_impl13minlmsetscaleEPNS_10minlmstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %86, ptr noundef nonnull %96, ptr noundef %1)
  %97 = getelementptr inbounds i8, ptr %0, i64 256
  %98 = getelementptr inbounds i8, ptr %0, i64 320
  tail call void @_ZN11alglib_impl10minlmsetbcEPNS_10minlmstateEPKNS_9ae_vectorES4_PNS_8ae_stateE(ptr noundef nonnull %86, ptr noundef nonnull %97, ptr noundef nonnull %98, ptr noundef %1)
  %99 = getelementptr inbounds i8, ptr %0, i64 640
  %100 = load i64, ptr %65, align 8, !tbaa !89
  %101 = load i64, ptr %67, align 8, !tbaa !90
  %102 = add nsw i64 %101, %100
  tail call void @_ZN11alglib_impl10minlmsetlcEPNS_10minlmstateEPKNS_9ae_matrixEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %86, ptr noundef nonnull %99, ptr noundef nonnull %64, i64 noundef %102, ptr noundef %1)
  %103 = getelementptr inbounds i8, ptr %0, i64 736
  %104 = load i64, ptr %103, align 8, !tbaa !100
  tail call void @_ZN11alglib_impl25minlmsetnonmonotonicstepsEPNS_10minlmstateElPNS_8ae_stateE(ptr noundef nonnull %86, i64 noundef %104, ptr noundef %1)
  %105 = getelementptr inbounds i8, ptr %0, i64 960
  store i64 0, ptr %105, align 8, !tbaa !101
  %106 = load i64, ptr %0, align 8, !tbaa !102
  %107 = icmp eq i64 %106, 2
  br i1 %107, label %108, label %114

108:                                              ; preds = %._crit_edge1572
  %109 = getelementptr inbounds i8, ptr %0, i64 1896
  tail call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 1, i64 noundef %63, ptr noundef nonnull %109, ptr noundef %1)
  %110 = getelementptr inbounds i8, ptr %0, i64 1768
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef 1, ptr noundef nonnull %110, ptr noundef %1)
  %111 = getelementptr inbounds i8, ptr %0, i64 1832
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %63, ptr noundef nonnull %111, ptr noundef %1)
  %112 = getelementptr inbounds i8, ptr %0, i64 1640
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %63, ptr noundef nonnull %112, ptr noundef %1)
  %113 = getelementptr inbounds i8, ptr %0, i64 1704
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %61, ptr noundef nonnull %113, ptr noundef %1)
  %.pr = load i64, ptr %0, align 8, !tbaa !102
  br label %114

114:                                              ; preds = %108, %._crit_edge1572
  %115 = phi i64 [ %.pr, %108 ], [ %106, %._crit_edge1572 ]
  %116 = icmp eq i64 %115, 1
  br i1 %116, label %117, label %118

117:                                              ; preds = %114
  tail call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  br label %118

118:                                              ; preds = %117, %114
  %119 = getelementptr inbounds i8, ptr %0, i64 632
  %120 = load double, ptr %119, align 8, !tbaa !103
  %121 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %120, double noundef 0.000000e+00)
  br i1 %121, label %122, label %523

122:                                              ; preds = %118
  %123 = getelementptr inbounds i8, ptr %0, i64 8
  %124 = load i64, ptr %123, align 8, !tbaa !104
  %125 = icmp eq i64 %124, 1
  br i1 %125, label %.preheader1537, label %523

.preheader1537:                                   ; preds = %122
  %.not.not14681573 = icmp sgt i64 %63, 0
  br i1 %.not.not14681573, label %.lr.ph1575, label %.loopexit1538

.lr.ph1575:                                       ; preds = %.preheader1537
  %126 = getelementptr inbounds i8, ptr %0, i64 120
  %127 = getelementptr inbounds i8, ptr %0, i64 880
  %128 = getelementptr inbounds i8, ptr %0, i64 312
  %129 = getelementptr inbounds i8, ptr %0, i64 376
  br label %130

130:                                              ; preds = %.lr.ph1575, %165
  %.313121574 = phi i64 [ 0, %.lr.ph1575 ], [ %166, %165 ]
  %131 = load ptr, ptr %126, align 8, !tbaa !80
  %132 = getelementptr inbounds double, ptr %131, i64 %.313121574
  %133 = load double, ptr %132, align 8, !tbaa !82
  %134 = load ptr, ptr %127, align 8, !tbaa !80
  %135 = getelementptr inbounds double, ptr %134, i64 %.313121574
  store double %133, ptr %135, align 8, !tbaa !82
  %136 = load ptr, ptr %128, align 8, !tbaa !80
  %137 = getelementptr inbounds double, ptr %136, i64 %.313121574
  %138 = load double, ptr %137, align 8, !tbaa !82
  %139 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %138, ptr noundef %1)
  br i1 %139, label %140, label %150

140:                                              ; preds = %130
  %141 = load ptr, ptr %127, align 8, !tbaa !80
  %142 = getelementptr inbounds double, ptr %141, i64 %.313121574
  %143 = load double, ptr %142, align 8, !tbaa !82
  %144 = load ptr, ptr %128, align 8, !tbaa !80
  %145 = getelementptr inbounds double, ptr %144, i64 %.313121574
  %146 = load double, ptr %145, align 8, !tbaa !82
  %147 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %143, double noundef %146, ptr noundef %1)
  %148 = load ptr, ptr %127, align 8, !tbaa !80
  %149 = getelementptr inbounds double, ptr %148, i64 %.313121574
  store double %147, ptr %149, align 8, !tbaa !82
  br label %150

150:                                              ; preds = %140, %130
  %151 = load ptr, ptr %129, align 8, !tbaa !80
  %152 = getelementptr inbounds double, ptr %151, i64 %.313121574
  %153 = load double, ptr %152, align 8, !tbaa !82
  %154 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %153, ptr noundef %1)
  br i1 %154, label %155, label %165

155:                                              ; preds = %150
  %156 = load ptr, ptr %127, align 8, !tbaa !80
  %157 = getelementptr inbounds double, ptr %156, i64 %.313121574
  %158 = load double, ptr %157, align 8, !tbaa !82
  %159 = load ptr, ptr %129, align 8, !tbaa !80
  %160 = getelementptr inbounds double, ptr %159, i64 %.313121574
  %161 = load double, ptr %160, align 8, !tbaa !82
  %162 = tail call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %158, double noundef %161, ptr noundef %1)
  %163 = load ptr, ptr %127, align 8, !tbaa !80
  %164 = getelementptr inbounds double, ptr %163, i64 %.313121574
  store double %162, ptr %164, align 8, !tbaa !82
  br label %165

165:                                              ; preds = %150, %155
  %166 = add nuw nsw i64 %.313121574, 1
  %exitcond1787.not = icmp eq i64 %166, %63
  br i1 %exitcond1787.not, label %.loopexit1538, label %130, !llvm.loop !105

.loopexit1538:                                    ; preds = %165, %.preheader1537, %521
  %.11420 = phi i64 [ %.41423, %521 ], [ %59, %.preheader1537 ], [ %59, %165 ]
  %.11404 = phi i64 [ %.41407, %521 ], [ %61, %.preheader1537 ], [ %61, %165 ]
  %.11387 = phi i64 [ %.41390, %521 ], [ %63, %.preheader1537 ], [ %63, %165 ]
  %.11367 = phi double [ %.41370, %521 ], [ %.01366, %.preheader1537 ], [ %.01366, %165 ]
  %.41313 = phi i64 [ %522, %521 ], [ 0, %.preheader1537 ], [ 0, %165 ]
  %.11288 = phi i64 [ %.41291, %521 ], [ %.01287, %.preheader1537 ], [ %.01287, %165 ]
  %.not1476 = icmp slt i64 %.41313, %.11387
  br i1 %.not1476, label %167, label %523

167:                                              ; preds = %.loopexit1538
  %168 = getelementptr inbounds i8, ptr %0, i64 312
  %169 = load ptr, ptr %168, align 8, !tbaa !80
  %170 = getelementptr inbounds double, ptr %169, i64 %.41313
  %171 = load double, ptr %170, align 8, !tbaa !82
  %172 = getelementptr inbounds i8, ptr %0, i64 880
  %173 = load ptr, ptr %172, align 8, !tbaa !80
  %174 = getelementptr inbounds double, ptr %173, i64 %.41313
  %175 = load double, ptr %174, align 8, !tbaa !82
  %176 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %171, double noundef %175)
  br i1 %176, label %177, label %186

177:                                              ; preds = %167
  %178 = load ptr, ptr %172, align 8, !tbaa !80
  %179 = getelementptr inbounds double, ptr %178, i64 %.41313
  %180 = load double, ptr %179, align 8, !tbaa !82
  %181 = getelementptr inbounds i8, ptr %0, i64 376
  %182 = load ptr, ptr %181, align 8, !tbaa !80
  %183 = getelementptr inbounds double, ptr %182, i64 %.41313
  %184 = load double, ptr %183, align 8, !tbaa !82
  %185 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %180, double noundef %184)
  br label %186

186:                                              ; preds = %177, %167
  %187 = phi i1 [ false, %167 ], [ %185, %177 ]
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %187, ptr noundef nonnull @.str.639, ptr noundef %1)
  %188 = load i64, ptr %0, align 8, !tbaa !102
  %.not1477 = icmp eq i64 %188, 2
  br i1 %.not1477, label %189, label %375

189:                                              ; preds = %186
  %190 = add nsw i64 %.11387, %.11404
  %191 = getelementptr inbounds i8, ptr %0, i64 1080
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %190, ptr noundef nonnull %191, ptr noundef %1)
  br label %192

192:                                              ; preds = %373, %189
  %.21421 = phi i64 [ %.01419, %373 ], [ %.11420, %189 ]
  %.21405 = phi i64 [ %.01403, %373 ], [ %.11404, %189 ]
  %.21388 = phi i64 [ %.01386, %373 ], [ %.11387, %189 ]
  %.21368 = phi double [ %.01366, %373 ], [ %.11367, %189 ]
  %.51314 = phi i64 [ %.01309, %373 ], [ %.41313, %189 ]
  %.21289 = phi i64 [ %374, %373 ], [ 0, %189 ]
  %.not1474 = icmp slt i64 %.21289, %.21421
  br i1 %.not1474, label %193, label %521

193:                                              ; preds = %192
  %194 = getelementptr inbounds i8, ptr %0, i64 960
  store i64 2, ptr %194, align 8, !tbaa !101
  %195 = getelementptr inbounds i8, ptr %0, i64 1040
  store i64 1, ptr %195, align 8, !tbaa !106
  %196 = getelementptr inbounds i8, ptr %0, i64 1048
  store i64 1, ptr %196, align 8, !tbaa !107
  %197 = getelementptr inbounds i8, ptr %0, i64 1056
  store i64 %.21388, ptr %197, align 8, !tbaa !108
  %198 = getelementptr inbounds i8, ptr %0, i64 1064
  store i64 %.21405, ptr %198, align 8, !tbaa !109
  %199 = getelementptr inbounds i8, ptr %0, i64 824
  %200 = getelementptr inbounds i8, ptr %0, i64 1080
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.21388, ptr noundef nonnull %199, ptr noundef nonnull %200, ptr noundef %1)
  %201 = getelementptr inbounds i8, ptr %0, i64 880
  %202 = load ptr, ptr %201, align 8, !tbaa !80
  %203 = getelementptr inbounds double, ptr %202, i64 %.51314
  %204 = load double, ptr %203, align 8, !tbaa !82
  %205 = getelementptr inbounds i8, ptr %0, i64 632
  %206 = load double, ptr %205, align 8, !tbaa !103
  %207 = getelementptr inbounds i8, ptr %0, i64 248
  %208 = load ptr, ptr %207, align 8, !tbaa !80
  %209 = getelementptr inbounds double, ptr %208, i64 %.51314
  %210 = load double, ptr %209, align 8, !tbaa !82
  %211 = fneg double %206
  %212 = tail call double @llvm.fmuladd.f64(double %211, double %210, double %204)
  %213 = getelementptr inbounds i8, ptr %0, i64 1136
  %214 = load ptr, ptr %213, align 8, !tbaa !80
  %215 = getelementptr inbounds double, ptr %214, i64 %.51314
  store double %212, ptr %215, align 8, !tbaa !82
  %216 = getelementptr inbounds i8, ptr %0, i64 312
  %217 = load ptr, ptr %216, align 8, !tbaa !80
  %218 = getelementptr inbounds double, ptr %217, i64 %.51314
  %219 = load double, ptr %218, align 8, !tbaa !82
  %220 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %219, ptr noundef %1)
  %.pre1821 = load ptr, ptr %213, align 8, !tbaa !80
  br i1 %220, label %221, label %229

221:                                              ; preds = %193
  %222 = getelementptr inbounds double, ptr %.pre1821, i64 %.51314
  %223 = load double, ptr %222, align 8, !tbaa !82
  %224 = load ptr, ptr %216, align 8, !tbaa !80
  %225 = getelementptr inbounds double, ptr %224, i64 %.51314
  %226 = load double, ptr %225, align 8, !tbaa !82
  %227 = fcmp olt double %223, %226
  br i1 %227, label %228, label %229

228:                                              ; preds = %221
  store double %226, ptr %222, align 8, !tbaa !82
  %.pre1820 = load ptr, ptr %213, align 8, !tbaa !80
  br label %229

229:                                              ; preds = %228, %221, %193
  %230 = phi ptr [ %.pre1820, %228 ], [ %.pre1821, %221 ], [ %.pre1821, %193 ]
  %231 = getelementptr inbounds double, ptr %230, i64 %.51314
  %232 = load double, ptr %231, align 8, !tbaa !82
  %.not1475.not1743 = icmp sgt i64 %.21405, 0
  br i1 %.not1475.not1743, label %.lr.ph1746, label %._crit_edge1747

.lr.ph1746:                                       ; preds = %229
  %233 = getelementptr inbounds i8, ptr %0, i64 456
  %xtraiter1981 = and i64 %.21405, 1
  %234 = icmp eq i64 %.21405, 1
  br i1 %234, label %._crit_edge1747.loopexit.unr-lcssa, label %.lr.ph1746.new

.lr.ph1746.new:                                   ; preds = %.lr.ph1746
  %unroll_iter1984 = and i64 %.21405, 9223372036854775806
  br label %235

235:                                              ; preds = %235, %.lr.ph1746.new
  %.112851744 = phi i64 [ 0, %.lr.ph1746.new ], [ %253, %235 ]
  %niter1985 = phi i64 [ 0, %.lr.ph1746.new ], [ %niter1985.next.1, %235 ]
  %236 = load ptr, ptr %233, align 8, !tbaa !80
  %237 = getelementptr inbounds ptr, ptr %236, i64 %.21289
  %238 = load ptr, ptr %237, align 8, !tbaa !110
  %239 = getelementptr inbounds double, ptr %238, i64 %.112851744
  %240 = load double, ptr %239, align 8, !tbaa !82
  %241 = load ptr, ptr %213, align 8, !tbaa !80
  %242 = getelementptr double, ptr %241, i64 %.21388
  %243 = getelementptr double, ptr %242, i64 %.112851744
  store double %240, ptr %243, align 8, !tbaa !82
  %244 = or disjoint i64 %.112851744, 1
  %245 = load ptr, ptr %233, align 8, !tbaa !80
  %246 = getelementptr inbounds ptr, ptr %245, i64 %.21289
  %247 = load ptr, ptr %246, align 8, !tbaa !110
  %248 = getelementptr inbounds double, ptr %247, i64 %244
  %249 = load double, ptr %248, align 8, !tbaa !82
  %250 = load ptr, ptr %213, align 8, !tbaa !80
  %251 = getelementptr double, ptr %250, i64 %.21388
  %252 = getelementptr double, ptr %251, i64 %244
  store double %249, ptr %252, align 8, !tbaa !82
  %253 = add nuw nsw i64 %.112851744, 2
  %niter1985.next.1 = add i64 %niter1985, 2
  %niter1985.ncmp.1 = icmp eq i64 %niter1985.next.1, %unroll_iter1984
  br i1 %niter1985.ncmp.1, label %._crit_edge1747.loopexit.unr-lcssa, label %235, !llvm.loop !111

._crit_edge1747.loopexit.unr-lcssa:               ; preds = %235, %.lr.ph1746
  %.112851744.unr = phi i64 [ 0, %.lr.ph1746 ], [ %253, %235 ]
  %lcmp.mod1983.not = icmp eq i64 %xtraiter1981, 0
  br i1 %lcmp.mod1983.not, label %._crit_edge1747, label %._crit_edge1747.loopexit.epilog-lcssa

._crit_edge1747.loopexit.epilog-lcssa:            ; preds = %._crit_edge1747.loopexit.unr-lcssa
  %254 = load ptr, ptr %233, align 8, !tbaa !80
  %255 = getelementptr inbounds ptr, ptr %254, i64 %.21289
  %256 = load ptr, ptr %255, align 8, !tbaa !110
  %257 = getelementptr inbounds double, ptr %256, i64 %.112851744.unr
  %258 = load double, ptr %257, align 8, !tbaa !82
  %259 = load ptr, ptr %213, align 8, !tbaa !80
  %260 = getelementptr double, ptr %259, i64 %.21388
  %261 = getelementptr double, ptr %260, i64 %.112851744.unr
  store double %258, ptr %261, align 8, !tbaa !82
  br label %._crit_edge1747

._crit_edge1747:                                  ; preds = %._crit_edge1747.loopexit.epilog-lcssa, %._crit_edge1747.loopexit.unr-lcssa, %229
  %.11285.lcssa = phi i64 [ 0, %229 ], [ %.21405, %._crit_edge1747.loopexit.unr-lcssa ], [ %.21405, %._crit_edge1747.loopexit.epilog-lcssa ]
  %262 = getelementptr inbounds i8, ptr %0, i64 1144
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef 1, ptr noundef nonnull %262, ptr noundef %1)
  %263 = getelementptr inbounds i8, ptr %0, i64 1208
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.21388, ptr noundef nonnull %263, ptr noundef %1)
  br label %1725

264:                                              ; preds = %45
  %265 = getelementptr inbounds i8, ptr %0, i64 1200
  %266 = load ptr, ptr %265, align 8, !tbaa !80
  %267 = load double, ptr %266, align 8, !tbaa !82
  %268 = getelementptr inbounds i8, ptr %0, i64 1264
  %269 = load ptr, ptr %268, align 8, !tbaa !80
  %270 = getelementptr inbounds double, ptr %269, i64 %.01309
  %271 = load double, ptr %270, align 8, !tbaa !82
  %272 = getelementptr inbounds i8, ptr %0, i64 960
  store i64 2, ptr %272, align 8, !tbaa !101
  %273 = getelementptr inbounds i8, ptr %0, i64 1040
  store i64 1, ptr %273, align 8, !tbaa !106
  %274 = getelementptr inbounds i8, ptr %0, i64 1048
  store i64 1, ptr %274, align 8, !tbaa !107
  %275 = getelementptr inbounds i8, ptr %0, i64 1056
  store i64 %.01386, ptr %275, align 8, !tbaa !108
  %276 = getelementptr inbounds i8, ptr %0, i64 1064
  store i64 %.01403, ptr %276, align 8, !tbaa !109
  %277 = getelementptr inbounds i8, ptr %0, i64 824
  %278 = getelementptr inbounds i8, ptr %0, i64 1080
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01386, ptr noundef nonnull %277, ptr noundef nonnull %278, ptr noundef %1)
  %279 = getelementptr inbounds i8, ptr %0, i64 880
  %280 = load ptr, ptr %279, align 8, !tbaa !80
  %281 = getelementptr inbounds double, ptr %280, i64 %.01309
  %282 = load double, ptr %281, align 8, !tbaa !82
  %283 = getelementptr inbounds i8, ptr %0, i64 632
  %284 = load double, ptr %283, align 8, !tbaa !103
  %285 = getelementptr inbounds i8, ptr %0, i64 248
  %286 = load ptr, ptr %285, align 8, !tbaa !80
  %287 = getelementptr inbounds double, ptr %286, i64 %.01309
  %288 = load double, ptr %287, align 8, !tbaa !82
  %289 = tail call double @llvm.fmuladd.f64(double %284, double %288, double %282)
  %290 = getelementptr inbounds i8, ptr %0, i64 1136
  %291 = load ptr, ptr %290, align 8, !tbaa !80
  %292 = getelementptr inbounds double, ptr %291, i64 %.01309
  store double %289, ptr %292, align 8, !tbaa !82
  %293 = getelementptr inbounds i8, ptr %0, i64 376
  %294 = load ptr, ptr %293, align 8, !tbaa !80
  %295 = getelementptr inbounds double, ptr %294, i64 %.01309
  %296 = load double, ptr %295, align 8, !tbaa !82
  %297 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %296, ptr noundef %1)
  %.pre1819 = load ptr, ptr %290, align 8, !tbaa !80
  br i1 %297, label %298, label %306

298:                                              ; preds = %264
  %299 = getelementptr inbounds double, ptr %.pre1819, i64 %.01309
  %300 = load double, ptr %299, align 8, !tbaa !82
  %301 = load ptr, ptr %293, align 8, !tbaa !80
  %302 = getelementptr inbounds double, ptr %301, i64 %.01309
  %303 = load double, ptr %302, align 8, !tbaa !82
  %304 = fcmp ogt double %300, %303
  br i1 %304, label %305, label %306

305:                                              ; preds = %298
  store double %303, ptr %299, align 8, !tbaa !82
  %.pre = load ptr, ptr %290, align 8, !tbaa !80
  br label %306

306:                                              ; preds = %305, %298, %264
  %307 = phi ptr [ %.pre, %305 ], [ %.pre1819, %298 ], [ %.pre1819, %264 ]
  %308 = getelementptr inbounds double, ptr %307, i64 %.01309
  %309 = load double, ptr %308, align 8, !tbaa !82
  br label %1725

310:                                              ; preds = %45
  %311 = getelementptr inbounds i8, ptr %0, i64 1200
  %312 = load ptr, ptr %311, align 8, !tbaa !80
  %313 = load double, ptr %312, align 8, !tbaa !82
  %314 = getelementptr inbounds i8, ptr %0, i64 1264
  %315 = load ptr, ptr %314, align 8, !tbaa !80
  %316 = getelementptr inbounds double, ptr %315, i64 %.01309
  %317 = load double, ptr %316, align 8, !tbaa !82
  %318 = getelementptr inbounds i8, ptr %0, i64 960
  store i64 2, ptr %318, align 8, !tbaa !101
  %319 = getelementptr inbounds i8, ptr %0, i64 1040
  store i64 1, ptr %319, align 8, !tbaa !106
  %320 = getelementptr inbounds i8, ptr %0, i64 1048
  store i64 1, ptr %320, align 8, !tbaa !107
  %321 = getelementptr inbounds i8, ptr %0, i64 1056
  store i64 %.01386, ptr %321, align 8, !tbaa !108
  %322 = getelementptr inbounds i8, ptr %0, i64 1064
  store i64 %.01403, ptr %322, align 8, !tbaa !109
  %323 = getelementptr inbounds i8, ptr %0, i64 824
  %324 = getelementptr inbounds i8, ptr %0, i64 1080
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01386, ptr noundef nonnull %323, ptr noundef nonnull %324, ptr noundef %1)
  %325 = fadd double %.01448, %.01442
  %326 = fmul double %325, 5.000000e-01
  %327 = getelementptr inbounds i8, ptr %0, i64 1136
  %328 = load ptr, ptr %327, align 8, !tbaa !80
  %329 = getelementptr inbounds double, ptr %328, i64 %.01309
  store double %326, ptr %329, align 8, !tbaa !82
  %330 = getelementptr inbounds i8, ptr %0, i64 312
  %331 = load ptr, ptr %330, align 8, !tbaa !80
  %332 = getelementptr inbounds double, ptr %331, i64 %.01309
  %333 = load double, ptr %332, align 8, !tbaa !82
  %334 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %333, ptr noundef %1)
  br i1 %334, label %335, label %344

335:                                              ; preds = %310
  %336 = load ptr, ptr %327, align 8, !tbaa !80
  %337 = getelementptr inbounds double, ptr %336, i64 %.01309
  %338 = load double, ptr %337, align 8, !tbaa !82
  %339 = load ptr, ptr %330, align 8, !tbaa !80
  %340 = getelementptr inbounds double, ptr %339, i64 %.01309
  %341 = load double, ptr %340, align 8, !tbaa !82
  %342 = fcmp olt double %338, %341
  br i1 %342, label %343, label %344

343:                                              ; preds = %335
  store double %341, ptr %337, align 8, !tbaa !82
  br label %344

344:                                              ; preds = %343, %335, %310
  %345 = getelementptr inbounds i8, ptr %0, i64 376
  %346 = load ptr, ptr %345, align 8, !tbaa !80
  %347 = getelementptr inbounds double, ptr %346, i64 %.01309
  %348 = load double, ptr %347, align 8, !tbaa !82
  %349 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %348, ptr noundef %1)
  br i1 %349, label %350, label %1725

350:                                              ; preds = %344
  %351 = load ptr, ptr %327, align 8, !tbaa !80
  %352 = getelementptr inbounds double, ptr %351, i64 %.01309
  %353 = load double, ptr %352, align 8, !tbaa !82
  %354 = load ptr, ptr %345, align 8, !tbaa !80
  %355 = getelementptr inbounds double, ptr %354, i64 %.01309
  %356 = load double, ptr %355, align 8, !tbaa !82
  %357 = fcmp ogt double %353, %356
  br i1 %357, label %358, label %1725

358:                                              ; preds = %350
  store double %356, ptr %352, align 8, !tbaa !82
  br label %1725

359:                                              ; preds = %45
  %360 = getelementptr inbounds i8, ptr %0, i64 746
  store i8 0, ptr %360, align 2, !tbaa !112
  %361 = getelementptr inbounds i8, ptr %0, i64 1200
  %362 = load ptr, ptr %361, align 8, !tbaa !80
  %363 = load double, ptr %362, align 8, !tbaa !82
  %364 = getelementptr inbounds i8, ptr %0, i64 1264
  %365 = load ptr, ptr %364, align 8, !tbaa !80
  %366 = getelementptr inbounds double, ptr %365, i64 %.01309
  %367 = load double, ptr %366, align 8, !tbaa !82
  %368 = fsub double %.01442, %.01448
  %369 = tail call noundef zeroext i1 @_ZN11alglib_impl15derivativecheckEdddddddPNS_8ae_stateE(double noundef %.01446, double noundef %.01444, double noundef %.01438, double noundef %.01436, double noundef %363, double noundef %367, double noundef %368, ptr noundef %1)
  br i1 %369, label %373, label %370

370:                                              ; preds = %359
  %371 = getelementptr inbounds i8, ptr %0, i64 2848
  store i64 %.01309, ptr %371, align 8, !tbaa !86
  %372 = getelementptr inbounds i8, ptr %0, i64 2840
  store i64 -7, ptr %372, align 8, !tbaa !113
  br label %1762

373:                                              ; preds = %359
  %374 = add nsw i64 %.01287, 1
  br label %192

375:                                              ; preds = %186
  %376 = icmp eq i64 %188, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %376, ptr noundef nonnull @.str.640, ptr noundef %1)
  %377 = load ptr, ptr %172, align 8, !tbaa !80
  %378 = getelementptr inbounds double, ptr %377, i64 %.41313
  %379 = load double, ptr %378, align 8, !tbaa !82
  br label %380

380:                                              ; preds = %519, %375
  %.31422 = phi i64 [ %.11420, %375 ], [ %.01419, %519 ]
  %.31406 = phi i64 [ %.11404, %375 ], [ %.01403, %519 ]
  %.31389 = phi i64 [ %.11387, %375 ], [ %.01386, %519 ]
  %.31369 = phi double [ %379, %375 ], [ %.01366, %519 ]
  %.61315 = phi i64 [ %.41313, %375 ], [ %.01309, %519 ]
  %.31290 = phi i64 [ 0, %375 ], [ %520, %519 ]
  %.not1478 = icmp slt i64 %.31290, %.31422
  br i1 %.not1478, label %381, label %521

381:                                              ; preds = %380
  %382 = getelementptr inbounds i8, ptr %0, i64 816
  %383 = load ptr, ptr %382, align 8, !tbaa !80
  %384 = getelementptr inbounds i8, ptr %0, i64 456
  %385 = load ptr, ptr %384, align 8, !tbaa !80
  %386 = getelementptr inbounds ptr, ptr %385, i64 %.31290
  %387 = load ptr, ptr %386, align 8, !tbaa !110
  %388 = add nsw i64 %.31406, -1
  %389 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %388)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %383, i64 noundef 1, ptr noundef %387, i64 noundef 1, i64 noundef %389)
  %390 = getelementptr inbounds i8, ptr %0, i64 632
  %391 = load double, ptr %390, align 8, !tbaa !103
  %392 = getelementptr inbounds i8, ptr %0, i64 248
  %393 = load ptr, ptr %392, align 8, !tbaa !80
  %394 = getelementptr inbounds double, ptr %393, i64 %.61315
  %395 = load double, ptr %394, align 8, !tbaa !82
  %396 = fneg double %391
  %397 = tail call double @llvm.fmuladd.f64(double %396, double %395, double %.31369)
  %398 = getelementptr inbounds i8, ptr %0, i64 880
  %399 = load ptr, ptr %398, align 8, !tbaa !80
  %400 = getelementptr inbounds double, ptr %399, i64 %.61315
  store double %397, ptr %400, align 8, !tbaa !82
  %401 = getelementptr inbounds i8, ptr %0, i64 312
  %402 = load ptr, ptr %401, align 8, !tbaa !80
  %403 = getelementptr inbounds double, ptr %402, i64 %.61315
  %404 = load double, ptr %403, align 8, !tbaa !82
  %405 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %404, ptr noundef %1)
  br i1 %405, label %406, label %416

406:                                              ; preds = %381
  %407 = load ptr, ptr %398, align 8, !tbaa !80
  %408 = getelementptr inbounds double, ptr %407, i64 %.61315
  %409 = load double, ptr %408, align 8, !tbaa !82
  %410 = load ptr, ptr %401, align 8, !tbaa !80
  %411 = getelementptr inbounds double, ptr %410, i64 %.61315
  %412 = load double, ptr %411, align 8, !tbaa !82
  %413 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %409, double noundef %412, ptr noundef %1)
  %414 = load ptr, ptr %398, align 8, !tbaa !80
  %415 = getelementptr inbounds double, ptr %414, i64 %.61315
  store double %413, ptr %415, align 8, !tbaa !82
  br label %416

416:                                              ; preds = %406, %381
  %417 = load ptr, ptr %398, align 8, !tbaa !80
  %418 = getelementptr inbounds double, ptr %417, i64 %.61315
  %419 = load double, ptr %418, align 8, !tbaa !82
  %420 = getelementptr inbounds i8, ptr %0, i64 746
  store i8 1, ptr %420, align 2, !tbaa !112
  br label %1725

421:                                              ; preds = %45
  %422 = getelementptr inbounds i8, ptr %0, i64 746
  store i8 0, ptr %422, align 2, !tbaa !112
  %423 = getelementptr inbounds i8, ptr %0, i64 888
  %424 = load double, ptr %423, align 8, !tbaa !114
  %425 = getelementptr inbounds i8, ptr %0, i64 952
  %426 = load ptr, ptr %425, align 8, !tbaa !80
  %427 = getelementptr inbounds double, ptr %426, i64 %.01309
  %428 = load double, ptr %427, align 8, !tbaa !82
  %429 = getelementptr inbounds i8, ptr %0, i64 632
  %430 = load double, ptr %429, align 8, !tbaa !103
  %431 = getelementptr inbounds i8, ptr %0, i64 248
  %432 = load ptr, ptr %431, align 8, !tbaa !80
  %433 = getelementptr inbounds double, ptr %432, i64 %.01309
  %434 = load double, ptr %433, align 8, !tbaa !82
  %435 = tail call double @llvm.fmuladd.f64(double %430, double %434, double %.01366)
  %436 = getelementptr inbounds i8, ptr %0, i64 880
  %437 = load ptr, ptr %436, align 8, !tbaa !80
  %438 = getelementptr inbounds double, ptr %437, i64 %.01309
  store double %435, ptr %438, align 8, !tbaa !82
  %439 = getelementptr inbounds i8, ptr %0, i64 376
  %440 = load ptr, ptr %439, align 8, !tbaa !80
  %441 = getelementptr inbounds double, ptr %440, i64 %.01309
  %442 = load double, ptr %441, align 8, !tbaa !82
  %443 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %442, ptr noundef %1)
  br i1 %443, label %444, label %454

444:                                              ; preds = %421
  %445 = load ptr, ptr %436, align 8, !tbaa !80
  %446 = getelementptr inbounds double, ptr %445, i64 %.01309
  %447 = load double, ptr %446, align 8, !tbaa !82
  %448 = load ptr, ptr %439, align 8, !tbaa !80
  %449 = getelementptr inbounds double, ptr %448, i64 %.01309
  %450 = load double, ptr %449, align 8, !tbaa !82
  %451 = tail call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %447, double noundef %450, ptr noundef %1)
  %452 = load ptr, ptr %436, align 8, !tbaa !80
  %453 = getelementptr inbounds double, ptr %452, i64 %.01309
  store double %451, ptr %453, align 8, !tbaa !82
  br label %454

454:                                              ; preds = %444, %421
  %455 = load ptr, ptr %436, align 8, !tbaa !80
  %456 = getelementptr inbounds double, ptr %455, i64 %.01309
  %457 = load double, ptr %456, align 8, !tbaa !82
  store i8 1, ptr %422, align 2, !tbaa !112
  br label %1725

458:                                              ; preds = %45
  %459 = getelementptr inbounds i8, ptr %0, i64 746
  store i8 0, ptr %459, align 2, !tbaa !112
  %460 = getelementptr inbounds i8, ptr %0, i64 888
  %461 = load double, ptr %460, align 8, !tbaa !114
  %462 = getelementptr inbounds i8, ptr %0, i64 952
  %463 = load ptr, ptr %462, align 8, !tbaa !80
  %464 = getelementptr inbounds double, ptr %463, i64 %.01309
  %465 = load double, ptr %464, align 8, !tbaa !82
  %466 = fadd double %.01448, %.01442
  %467 = fmul double %466, 5.000000e-01
  %468 = getelementptr inbounds i8, ptr %0, i64 880
  %469 = load ptr, ptr %468, align 8, !tbaa !80
  %470 = getelementptr inbounds double, ptr %469, i64 %.01309
  store double %467, ptr %470, align 8, !tbaa !82
  %471 = getelementptr inbounds i8, ptr %0, i64 312
  %472 = load ptr, ptr %471, align 8, !tbaa !80
  %473 = getelementptr inbounds double, ptr %472, i64 %.01309
  %474 = load double, ptr %473, align 8, !tbaa !82
  %475 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %474, ptr noundef %1)
  br i1 %475, label %476, label %486

476:                                              ; preds = %458
  %477 = load ptr, ptr %468, align 8, !tbaa !80
  %478 = getelementptr inbounds double, ptr %477, i64 %.01309
  %479 = load double, ptr %478, align 8, !tbaa !82
  %480 = load ptr, ptr %471, align 8, !tbaa !80
  %481 = getelementptr inbounds double, ptr %480, i64 %.01309
  %482 = load double, ptr %481, align 8, !tbaa !82
  %483 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %479, double noundef %482, ptr noundef %1)
  %484 = load ptr, ptr %468, align 8, !tbaa !80
  %485 = getelementptr inbounds double, ptr %484, i64 %.01309
  store double %483, ptr %485, align 8, !tbaa !82
  br label %486

486:                                              ; preds = %476, %458
  %487 = getelementptr inbounds i8, ptr %0, i64 376
  %488 = load ptr, ptr %487, align 8, !tbaa !80
  %489 = getelementptr inbounds double, ptr %488, i64 %.01309
  %490 = load double, ptr %489, align 8, !tbaa !82
  %491 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %490, ptr noundef %1)
  br i1 %491, label %492, label %502

492:                                              ; preds = %486
  %493 = load ptr, ptr %468, align 8, !tbaa !80
  %494 = getelementptr inbounds double, ptr %493, i64 %.01309
  %495 = load double, ptr %494, align 8, !tbaa !82
  %496 = load ptr, ptr %487, align 8, !tbaa !80
  %497 = getelementptr inbounds double, ptr %496, i64 %.01309
  %498 = load double, ptr %497, align 8, !tbaa !82
  %499 = tail call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %495, double noundef %498, ptr noundef %1)
  %500 = load ptr, ptr %468, align 8, !tbaa !80
  %501 = getelementptr inbounds double, ptr %500, i64 %.01309
  store double %499, ptr %501, align 8, !tbaa !82
  br label %502

502:                                              ; preds = %492, %486
  store i8 1, ptr %459, align 2, !tbaa !112
  br label %1725

503:                                              ; preds = %45
  %504 = getelementptr inbounds i8, ptr %0, i64 746
  store i8 0, ptr %504, align 2, !tbaa !112
  %505 = getelementptr inbounds i8, ptr %0, i64 880
  %506 = load ptr, ptr %505, align 8, !tbaa !80
  %507 = getelementptr inbounds double, ptr %506, i64 %.01309
  store double %.01366, ptr %507, align 8, !tbaa !82
  %508 = getelementptr inbounds i8, ptr %0, i64 888
  %509 = load double, ptr %508, align 8, !tbaa !114
  %510 = getelementptr inbounds i8, ptr %0, i64 952
  %511 = load ptr, ptr %510, align 8, !tbaa !80
  %512 = getelementptr inbounds double, ptr %511, i64 %.01309
  %513 = load double, ptr %512, align 8, !tbaa !82
  %514 = fsub double %.01442, %.01448
  %515 = tail call noundef zeroext i1 @_ZN11alglib_impl15derivativecheckEdddddddPNS_8ae_stateE(double noundef %.01446, double noundef %.01444, double noundef %.01438, double noundef %.01436, double noundef %509, double noundef %513, double noundef %514, ptr noundef %1)
  br i1 %515, label %519, label %516

516:                                              ; preds = %503
  %517 = getelementptr inbounds i8, ptr %0, i64 2848
  store i64 %.01309, ptr %517, align 8, !tbaa !86
  %518 = getelementptr inbounds i8, ptr %0, i64 2840
  store i64 -7, ptr %518, align 8, !tbaa !113
  br label %1762

519:                                              ; preds = %503
  %520 = add nsw i64 %.01287, 1
  br label %380

521:                                              ; preds = %380, %192
  %.41423 = phi i64 [ %.21421, %192 ], [ %.31422, %380 ]
  %.41407 = phi i64 [ %.21405, %192 ], [ %.31406, %380 ]
  %.41390 = phi i64 [ %.21388, %192 ], [ %.31389, %380 ]
  %.41370 = phi double [ %.21368, %192 ], [ %.31369, %380 ]
  %.71316 = phi i64 [ %.51314, %192 ], [ %.61315, %380 ]
  %.41291 = phi i64 [ %.21289, %192 ], [ %.31290, %380 ]
  %522 = add nsw i64 %.71316, 1
  br label %.loopexit1538

523:                                              ; preds = %.loopexit1538, %118, %122
  %.51424 = phi i64 [ %.11420, %.loopexit1538 ], [ %59, %122 ], [ %59, %118 ]
  %.51408 = phi i64 [ %.11404, %.loopexit1538 ], [ %61, %122 ], [ %61, %118 ]
  %.51391 = phi i64 [ %.11387, %.loopexit1538 ], [ %63, %122 ], [ %63, %118 ]
  %.51371 = phi double [ %.11367, %.loopexit1538 ], [ %.01366, %122 ], [ %.01366, %118 ]
  %.51292 = phi i64 [ %.11288, %.loopexit1538 ], [ %.01287, %122 ], [ %.01287, %118 ]
  %524 = getelementptr inbounds i8, ptr %0, i64 2344
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %524, i64 noundef %.51424, ptr noundef %1)
  %525 = mul nsw i64 %.51391, %.51424
  %526 = getelementptr inbounds i8, ptr %0, i64 2408
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %525, ptr noundef nonnull %526, ptr noundef %1)
  %.not1479.not1582 = icmp sgt i64 %.51424, 0
  br i1 %.not1479.not1582, label %.lr.ph1585, label %._crit_edge1586

.lr.ph1585:                                       ; preds = %523
  %527 = getelementptr inbounds i8, ptr %0, i64 2400
  %528 = getelementptr inbounds i8, ptr %0, i64 608
  %529 = load i64, ptr %528, align 8, !tbaa !83
  %530 = icmp eq i64 %529, 1
  %531 = getelementptr inbounds i8, ptr %0, i64 592
  %.not1519.not1576 = icmp sgt i64 %.51391, 0
  %532 = getelementptr inbounds i8, ptr %0, i64 2464
  %xtraiter1892 = and i64 %.51391, 3
  %533 = icmp ult i64 %.51391, 4
  %unroll_iter1894 = and i64 %.51391, 9223372036854775804
  %lcmp.mod1893.not = icmp eq i64 %xtraiter1892, 0
  br label %534

534:                                              ; preds = %.lr.ph1585, %._crit_edge1580
  %.813171583 = phi i64 [ 0, %.lr.ph1585 ], [ %580, %._crit_edge1580 ]
  %535 = load ptr, ptr %527, align 8, !tbaa !80
  %536 = getelementptr inbounds double, ptr %535, i64 %.813171583
  store double 1.000000e+00, ptr %536, align 8, !tbaa !82
  br i1 %530, label %537, label %543

537:                                              ; preds = %534
  %538 = load ptr, ptr %531, align 8, !tbaa !80
  %539 = getelementptr inbounds double, ptr %538, i64 %.813171583
  %540 = load double, ptr %539, align 8, !tbaa !82
  %541 = load ptr, ptr %527, align 8, !tbaa !80
  %542 = getelementptr inbounds double, ptr %541, i64 %.813171583
  store double %540, ptr %542, align 8, !tbaa !82
  br label %543

543:                                              ; preds = %537, %534
  br i1 %.not1519.not1576, label %.lr.ph1579, label %._crit_edge1580

.lr.ph1579:                                       ; preds = %543
  %544 = mul nuw nsw i64 %.813171583, %.51391
  br i1 %533, label %._crit_edge1580.loopexit.unr-lcssa, label %.lr.ph1579.new

.lr.ph1579.new:                                   ; preds = %.lr.ph1579, %.lr.ph1579.new
  %.712941577 = phi i64 [ %572, %.lr.ph1579.new ], [ 0, %.lr.ph1579 ]
  %niter1895 = phi i64 [ %niter1895.next.3, %.lr.ph1579.new ], [ 0, %.lr.ph1579 ]
  %545 = load ptr, ptr %527, align 8, !tbaa !80
  %546 = getelementptr inbounds double, ptr %545, i64 %.813171583
  %547 = load double, ptr %546, align 8, !tbaa !82
  %548 = load ptr, ptr %532, align 8, !tbaa !80
  %549 = getelementptr double, ptr %548, i64 %544
  %550 = getelementptr double, ptr %549, i64 %.712941577
  store double %547, ptr %550, align 8, !tbaa !82
  %551 = or disjoint i64 %.712941577, 1
  %552 = load ptr, ptr %527, align 8, !tbaa !80
  %553 = getelementptr inbounds double, ptr %552, i64 %.813171583
  %554 = load double, ptr %553, align 8, !tbaa !82
  %555 = load ptr, ptr %532, align 8, !tbaa !80
  %556 = getelementptr double, ptr %555, i64 %544
  %557 = getelementptr double, ptr %556, i64 %551
  store double %554, ptr %557, align 8, !tbaa !82
  %558 = or disjoint i64 %.712941577, 2
  %559 = load ptr, ptr %527, align 8, !tbaa !80
  %560 = getelementptr inbounds double, ptr %559, i64 %.813171583
  %561 = load double, ptr %560, align 8, !tbaa !82
  %562 = load ptr, ptr %532, align 8, !tbaa !80
  %563 = getelementptr double, ptr %562, i64 %544
  %564 = getelementptr double, ptr %563, i64 %558
  store double %561, ptr %564, align 8, !tbaa !82
  %565 = or disjoint i64 %.712941577, 3
  %566 = load ptr, ptr %527, align 8, !tbaa !80
  %567 = getelementptr inbounds double, ptr %566, i64 %.813171583
  %568 = load double, ptr %567, align 8, !tbaa !82
  %569 = load ptr, ptr %532, align 8, !tbaa !80
  %570 = getelementptr double, ptr %569, i64 %544
  %571 = getelementptr double, ptr %570, i64 %565
  store double %568, ptr %571, align 8, !tbaa !82
  %572 = add nuw nsw i64 %.712941577, 4
  %niter1895.next.3 = add i64 %niter1895, 4
  %niter1895.ncmp.3 = icmp eq i64 %niter1895.next.3, %unroll_iter1894
  br i1 %niter1895.ncmp.3, label %._crit_edge1580.loopexit.unr-lcssa, label %.lr.ph1579.new, !llvm.loop !115

._crit_edge1580.loopexit.unr-lcssa:               ; preds = %.lr.ph1579.new, %.lr.ph1579
  %.712941577.unr = phi i64 [ 0, %.lr.ph1579 ], [ %572, %.lr.ph1579.new ]
  br i1 %lcmp.mod1893.not, label %._crit_edge1580, label %.epil.preheader1891

.epil.preheader1891:                              ; preds = %._crit_edge1580.loopexit.unr-lcssa, %.epil.preheader1891
  %.712941577.epil = phi i64 [ %579, %.epil.preheader1891 ], [ %.712941577.unr, %._crit_edge1580.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader1891 ], [ 0, %._crit_edge1580.loopexit.unr-lcssa ]
  %573 = load ptr, ptr %527, align 8, !tbaa !80
  %574 = getelementptr inbounds double, ptr %573, i64 %.813171583
  %575 = load double, ptr %574, align 8, !tbaa !82
  %576 = load ptr, ptr %532, align 8, !tbaa !80
  %577 = getelementptr double, ptr %576, i64 %544
  %578 = getelementptr double, ptr %577, i64 %.712941577.epil
  store double %575, ptr %578, align 8, !tbaa !82
  %579 = add nuw nsw i64 %.712941577.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter1892
  br i1 %epil.iter.cmp.not, label %._crit_edge1580, label %.epil.preheader1891, !llvm.loop !116

._crit_edge1580:                                  ; preds = %._crit_edge1580.loopexit.unr-lcssa, %.epil.preheader1891, %543
  %580 = add nuw nsw i64 %.813171583, 1
  %exitcond1789.not = icmp eq i64 %580, %.51424
  br i1 %exitcond1789.not, label %._crit_edge1586.loopexit, label %534, !llvm.loop !118

._crit_edge1586.loopexit:                         ; preds = %._crit_edge1580
  %smax = tail call i64 @llvm.smax.i64(i64 %.51391, i64 0)
  br label %._crit_edge1586

._crit_edge1586:                                  ; preds = %._crit_edge1586.loopexit, %523
  %.81317.lcssa = phi i64 [ 0, %523 ], [ %.51424, %._crit_edge1586.loopexit ]
  %.61293.lcssa = phi i64 [ %.51292, %523 ], [ %smax, %._crit_edge1586.loopexit ]
  %581 = load i64, ptr %0, align 8, !tbaa !102
  %582 = icmp eq i64 %581, 1
  br i1 %582, label %583, label %585

583:                                              ; preds = %._crit_edge1586
  %584 = getelementptr inbounds i8, ptr %0, i64 3248
  tail call void @_ZN11alglib_impl18minlmsetprotocolv1EPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %584, ptr noundef %1)
  br label %.preheader1534

585:                                              ; preds = %._crit_edge1586
  %586 = icmp eq i64 %581, 2
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %586, ptr noundef nonnull @.str.641, ptr noundef %1)
  %587 = getelementptr inbounds i8, ptr %0, i64 3248
  tail call void @_ZN11alglib_impl18minlmsetprotocolv2EPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %587, ptr noundef %1)
  br label %.preheader1534

.preheader1534:                                   ; preds = %583, %585, %812, %900, %1012, %1096, %.loopexit1535, %641, %.loopexit, %.loopexit1536, %45
  %.61425.ph = phi i64 [ %.01419, %45 ], [ %.01419, %1096 ], [ %.01419, %1012 ], [ %.01419, %900 ], [ %.01419, %812 ], [ %.101429, %.loopexit1536 ], [ %.91428, %.loopexit ], [ %.81427, %641 ], [ %.71426, %.loopexit1535 ], [ %.51424, %585 ], [ %.51424, %583 ]
  %.61409.ph = phi i64 [ %.01403, %45 ], [ %.01403, %1096 ], [ %.01403, %1012 ], [ %.01403, %900 ], [ %.01403, %812 ], [ %.101413, %.loopexit1536 ], [ %.91412, %.loopexit ], [ %.81411, %641 ], [ %.71410, %.loopexit1535 ], [ %.51408, %585 ], [ %.51408, %583 ]
  %.61392.ph = phi i64 [ %.01386, %45 ], [ %.01386, %1096 ], [ %.01386, %1012 ], [ %.01386, %900 ], [ %.01386, %812 ], [ %.101396, %.loopexit1536 ], [ %.91395, %.loopexit ], [ %.81394, %641 ], [ %.71393, %.loopexit1535 ], [ %.51391, %585 ], [ %.51391, %583 ]
  %.61372.ph = phi double [ %.01366, %45 ], [ %.01366, %1096 ], [ %.01366, %1012 ], [ %.01366, %900 ], [ %.01366, %812 ], [ %.101376, %.loopexit1536 ], [ %.91375, %.loopexit ], [ %.81374, %641 ], [ %.71373, %.loopexit1535 ], [ %.51371, %585 ], [ %.51371, %583 ]
  %.11355.ph = phi double [ %.01354, %45 ], [ %.01354, %1096 ], [ %.01354, %1012 ], [ %.01354, %900 ], [ %.01354, %812 ], [ %.51359, %.loopexit1536 ], [ %.41358, %.loopexit ], [ %.31357, %641 ], [ %.21356, %.loopexit1535 ], [ %.01354, %585 ], [ %.01354, %583 ]
  %.91318.ph = phi i64 [ %.01309, %45 ], [ %.01309, %1096 ], [ %.01309, %1012 ], [ %.01309, %900 ], [ %.01309, %812 ], [ %.141323, %.loopexit1536 ], [ %.131322, %.loopexit ], [ %.111320, %641 ], [ %.101319, %.loopexit1535 ], [ %.81317.lcssa, %585 ], [ %.81317.lcssa, %583 ]
  %.81295.ph = phi i64 [ %.01287, %45 ], [ %.01287, %1096 ], [ %.01287, %1012 ], [ %.01287, %900 ], [ %.01287, %812 ], [ %.121299, %.loopexit1536 ], [ %.111298, %.loopexit ], [ %.101297, %641 ], [ %.91296, %.loopexit1535 ], [ %.61293.lcssa, %585 ], [ %.61293.lcssa, %583 ]
  %588 = getelementptr inbounds i8, ptr %0, i64 3248
  %589 = tail call noundef zeroext i1 @_ZN11alglib_impl14minlmiterationEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %588, ptr noundef %1)
  br i1 %589, label %.lr.ph1589, label %._crit_edge1590

.lr.ph1589:                                       ; preds = %.preheader1534
  %590 = getelementptr inbounds i8, ptr %0, i64 3712
  %591 = getelementptr inbounds i8, ptr %0, i64 3708
  %592 = getelementptr inbounds i8, ptr %0, i64 3704
  %593 = getelementptr inbounds i8, ptr %0, i64 3705
  %594 = getelementptr inbounds i8, ptr %0, i64 3707
  %595 = getelementptr inbounds i8, ptr %0, i64 3709
  br label %596

596:                                              ; preds = %.lr.ph1589, %.thread
  %597 = load i64, ptr %0, align 8, !tbaa !102
  switch i64 %597, label %.thread [
    i64 1, label %598
    i64 2, label %814
  ]

598:                                              ; preds = %596
  %599 = load i8, ptr %591, align 4, !tbaa !119, !range !98, !noundef !99
  %600 = trunc nuw i8 %599 to i1
  br i1 %600, label %.loopexit1535, label %636

.loopexit1535:                                    ; preds = %598, %618
  %.71426 = phi i64 [ %.01419, %618 ], [ %.61425.ph, %598 ]
  %.71410 = phi i64 [ %.01403, %618 ], [ %.61409.ph, %598 ]
  %.71393 = phi i64 [ %.01386, %618 ], [ %.61392.ph, %598 ]
  %.71373 = phi double [ %.01366, %618 ], [ %.61372.ph, %598 ]
  %.21356 = phi double [ %623, %618 ], [ %.11355.ph, %598 ]
  %.101319 = phi i64 [ %635, %618 ], [ 0, %598 ]
  %.91296 = phi i64 [ %.01287, %618 ], [ %.81295.ph, %598 ]
  %.not1503 = icmp slt i64 %.101319, %.71426
  br i1 %.not1503, label %601, label %.preheader1534

601:                                              ; preds = %.loopexit1535
  %602 = getelementptr inbounds i8, ptr %0, i64 880
  %603 = load ptr, ptr %602, align 8, !tbaa !80
  %604 = getelementptr inbounds i8, ptr %0, i64 3400
  %605 = load ptr, ptr %604, align 8, !tbaa !80
  %606 = add nsw i64 %.71393, -1
  %607 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %606)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %603, i64 noundef 1, ptr noundef %605, i64 noundef 1, i64 noundef %607)
  %608 = getelementptr inbounds i8, ptr %0, i64 816
  %609 = load ptr, ptr %608, align 8, !tbaa !80
  %610 = getelementptr inbounds i8, ptr %0, i64 456
  %611 = load ptr, ptr %610, align 8, !tbaa !80
  %612 = getelementptr inbounds ptr, ptr %611, i64 %.101319
  %613 = load ptr, ptr %612, align 8, !tbaa !110
  %614 = add nsw i64 %.71410, -1
  %615 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %614)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %609, i64 noundef 1, ptr noundef %613, i64 noundef 1, i64 noundef %615)
  %616 = getelementptr inbounds i8, ptr %0, i64 752
  store i64 %.101319, ptr %616, align 8, !tbaa !120
  tail call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %617 = getelementptr inbounds i8, ptr %0, i64 745
  store i8 1, ptr %617, align 1, !tbaa !121
  br label %1725

618:                                              ; preds = %45
  %619 = getelementptr inbounds i8, ptr %0, i64 745
  store i8 0, ptr %619, align 1, !tbaa !121
  %620 = getelementptr inbounds i8, ptr %0, i64 2400
  %621 = load ptr, ptr %620, align 8, !tbaa !80
  %622 = getelementptr inbounds double, ptr %621, i64 %.01309
  %623 = load double, ptr %622, align 8, !tbaa !82
  %624 = getelementptr inbounds i8, ptr %0, i64 888
  %625 = load double, ptr %624, align 8, !tbaa !114
  %626 = getelementptr inbounds i8, ptr %0, i64 520
  %627 = load ptr, ptr %626, align 8, !tbaa !80
  %628 = getelementptr inbounds double, ptr %627, i64 %.01309
  %629 = load double, ptr %628, align 8, !tbaa !82
  %630 = fsub double %625, %629
  %631 = fmul double %623, %630
  %632 = getelementptr inbounds i8, ptr %0, i64 3472
  %633 = load ptr, ptr %632, align 8, !tbaa !80
  %634 = getelementptr inbounds double, ptr %633, i64 %.01309
  store double %631, ptr %634, align 8, !tbaa !82
  %635 = add nsw i64 %.01309, 1
  br label %.loopexit1535

636:                                              ; preds = %598
  %637 = load i8, ptr %592, align 8, !tbaa !122, !range !98, !noundef !99
  %638 = trunc nuw i8 %637 to i1
  br i1 %638, label %639, label %678

639:                                              ; preds = %636
  %640 = getelementptr inbounds i8, ptr %0, i64 3408
  store double 0.000000e+00, ptr %640, align 8, !tbaa !123
  br label %641

641:                                              ; preds = %659, %639
  %.81427 = phi i64 [ %.61425.ph, %639 ], [ %.01419, %659 ]
  %.81411 = phi i64 [ %.61409.ph, %639 ], [ %.01403, %659 ]
  %.81394 = phi i64 [ %.61392.ph, %639 ], [ %.01386, %659 ]
  %.81374 = phi double [ %.61372.ph, %639 ], [ %.01366, %659 ]
  %.31357 = phi double [ %.11355.ph, %639 ], [ %664, %659 ]
  %.111320 = phi i64 [ 0, %639 ], [ %677, %659 ]
  %.101297 = phi i64 [ %.81295.ph, %639 ], [ %.01287, %659 ]
  %.not1502 = icmp slt i64 %.111320, %.81427
  br i1 %.not1502, label %642, label %.preheader1534

642:                                              ; preds = %641
  %643 = getelementptr inbounds i8, ptr %0, i64 880
  %644 = load ptr, ptr %643, align 8, !tbaa !80
  %645 = getelementptr inbounds i8, ptr %0, i64 3400
  %646 = load ptr, ptr %645, align 8, !tbaa !80
  %647 = add nsw i64 %.81394, -1
  %648 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %647)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %644, i64 noundef 1, ptr noundef %646, i64 noundef 1, i64 noundef %648)
  %649 = getelementptr inbounds i8, ptr %0, i64 816
  %650 = load ptr, ptr %649, align 8, !tbaa !80
  %651 = getelementptr inbounds i8, ptr %0, i64 456
  %652 = load ptr, ptr %651, align 8, !tbaa !80
  %653 = getelementptr inbounds ptr, ptr %652, i64 %.111320
  %654 = load ptr, ptr %653, align 8, !tbaa !110
  %655 = add nsw i64 %.81411, -1
  %656 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %655)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %650, i64 noundef 1, ptr noundef %654, i64 noundef 1, i64 noundef %656)
  %657 = getelementptr inbounds i8, ptr %0, i64 752
  store i64 %.111320, ptr %657, align 8, !tbaa !120
  tail call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %658 = getelementptr inbounds i8, ptr %0, i64 745
  store i8 1, ptr %658, align 1, !tbaa !121
  br label %1725

659:                                              ; preds = %45
  %660 = getelementptr inbounds i8, ptr %0, i64 745
  store i8 0, ptr %660, align 1, !tbaa !121
  %661 = getelementptr inbounds i8, ptr %0, i64 2400
  %662 = load ptr, ptr %661, align 8, !tbaa !80
  %663 = getelementptr inbounds double, ptr %662, i64 %.01309
  %664 = load double, ptr %663, align 8, !tbaa !82
  %665 = getelementptr inbounds i8, ptr %0, i64 3408
  %666 = load double, ptr %665, align 8, !tbaa !123
  %667 = getelementptr inbounds i8, ptr %0, i64 888
  %668 = load double, ptr %667, align 8, !tbaa !114
  %669 = getelementptr inbounds i8, ptr %0, i64 520
  %670 = load ptr, ptr %669, align 8, !tbaa !80
  %671 = getelementptr inbounds double, ptr %670, i64 %.01309
  %672 = load double, ptr %671, align 8, !tbaa !82
  %673 = fsub double %668, %672
  %674 = fmul double %664, %673
  %675 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %674, ptr noundef %1)
  %676 = fadd double %666, %675
  store double %676, ptr %665, align 8, !tbaa !123
  %677 = add nsw i64 %.01309, 1
  br label %641

678:                                              ; preds = %636
  %679 = load i8, ptr %593, align 1, !tbaa !124, !range !98, !noundef !99
  %680 = trunc nuw i8 %679 to i1
  br i1 %680, label %681, label %752

681:                                              ; preds = %678
  %682 = getelementptr inbounds i8, ptr %0, i64 3408
  store double 0.000000e+00, ptr %682, align 8, !tbaa !123
  %.not1500.not1739 = icmp sgt i64 %.61392.ph, 0
  br i1 %.not1500.not1739, label %.lr.ph1742, label %.loopexit

.lr.ph1742:                                       ; preds = %681
  %683 = getelementptr inbounds i8, ptr %0, i64 3696
  %684 = add nsw i64 %.61392.ph, -1
  %xtraiter1933 = and i64 %.61392.ph, 3
  %685 = icmp ult i64 %684, 3
  br i1 %685, label %.loopexit.loopexit.unr-lcssa, label %.lr.ph1742.new

.lr.ph1742.new:                                   ; preds = %.lr.ph1742
  %unroll_iter1936 = and i64 %.61392.ph, 9223372036854775804
  br label %686

686:                                              ; preds = %686, %.lr.ph1742.new
  %.1213211740 = phi i64 [ 0, %.lr.ph1742.new ], [ %698, %686 ]
  %niter1937 = phi i64 [ 0, %.lr.ph1742.new ], [ %niter1937.next.3, %686 ]
  %687 = load ptr, ptr %683, align 8, !tbaa !80
  %688 = getelementptr inbounds double, ptr %687, i64 %.1213211740
  store double 0.000000e+00, ptr %688, align 8, !tbaa !82
  %689 = or disjoint i64 %.1213211740, 1
  %690 = load ptr, ptr %683, align 8, !tbaa !80
  %691 = getelementptr inbounds double, ptr %690, i64 %689
  store double 0.000000e+00, ptr %691, align 8, !tbaa !82
  %692 = or disjoint i64 %.1213211740, 2
  %693 = load ptr, ptr %683, align 8, !tbaa !80
  %694 = getelementptr inbounds double, ptr %693, i64 %692
  store double 0.000000e+00, ptr %694, align 8, !tbaa !82
  %695 = or disjoint i64 %.1213211740, 3
  %696 = load ptr, ptr %683, align 8, !tbaa !80
  %697 = getelementptr inbounds double, ptr %696, i64 %695
  store double 0.000000e+00, ptr %697, align 8, !tbaa !82
  %698 = add nuw nsw i64 %.1213211740, 4
  %niter1937.next.3 = add i64 %niter1937, 4
  %niter1937.ncmp.3 = icmp eq i64 %niter1937.next.3, %unroll_iter1936
  br i1 %niter1937.ncmp.3, label %.loopexit.loopexit.unr-lcssa, label %686, !llvm.loop !125

.loopexit.loopexit.unr-lcssa:                     ; preds = %686, %.lr.ph1742
  %.1213211740.unr = phi i64 [ 0, %.lr.ph1742 ], [ %698, %686 ]
  %lcmp.mod1935.not = icmp eq i64 %xtraiter1933, 0
  br i1 %lcmp.mod1935.not, label %.loopexit, label %.epil.preheader1932

.epil.preheader1932:                              ; preds = %.loopexit.loopexit.unr-lcssa, %.epil.preheader1932
  %.1213211740.epil = phi i64 [ %701, %.epil.preheader1932 ], [ %.1213211740.unr, %.loopexit.loopexit.unr-lcssa ]
  %epil.iter1934 = phi i64 [ %epil.iter1934.next, %.epil.preheader1932 ], [ 0, %.loopexit.loopexit.unr-lcssa ]
  %699 = load ptr, ptr %683, align 8, !tbaa !80
  %700 = getelementptr inbounds double, ptr %699, i64 %.1213211740.epil
  store double 0.000000e+00, ptr %700, align 8, !tbaa !82
  %701 = add nuw nsw i64 %.1213211740.epil, 1
  %epil.iter1934.next = add i64 %epil.iter1934, 1
  %epil.iter1934.cmp.not = icmp eq i64 %epil.iter1934.next, %xtraiter1933
  br i1 %epil.iter1934.cmp.not, label %.loopexit, label %.epil.preheader1932, !llvm.loop !126

.loopexit:                                        ; preds = %.loopexit.loopexit.unr-lcssa, %.epil.preheader1932, %681, %719
  %.91428 = phi i64 [ %.01419, %719 ], [ %.61425.ph, %681 ], [ %.61425.ph, %.epil.preheader1932 ], [ %.61425.ph, %.loopexit.loopexit.unr-lcssa ]
  %.91412 = phi i64 [ %.01403, %719 ], [ %.61409.ph, %681 ], [ %.61409.ph, %.epil.preheader1932 ], [ %.61409.ph, %.loopexit.loopexit.unr-lcssa ]
  %.91395 = phi i64 [ %.01386, %719 ], [ %.61392.ph, %681 ], [ %.61392.ph, %.epil.preheader1932 ], [ %.61392.ph, %.loopexit.loopexit.unr-lcssa ]
  %.91375 = phi double [ %744, %719 ], [ %.61372.ph, %681 ], [ %.61372.ph, %.epil.preheader1932 ], [ %.61372.ph, %.loopexit.loopexit.unr-lcssa ]
  %.41358 = phi double [ %724, %719 ], [ %.11355.ph, %681 ], [ %.11355.ph, %.epil.preheader1932 ], [ %.11355.ph, %.loopexit.loopexit.unr-lcssa ]
  %.131322 = phi i64 [ %751, %719 ], [ 0, %681 ], [ 0, %.epil.preheader1932 ], [ 0, %.loopexit.loopexit.unr-lcssa ]
  %.111298 = phi i64 [ %.01287, %719 ], [ %.81295.ph, %681 ], [ %.81295.ph, %.epil.preheader1932 ], [ %.81295.ph, %.loopexit.loopexit.unr-lcssa ]
  %.not1501 = icmp slt i64 %.131322, %.91428
  br i1 %.not1501, label %702, label %.preheader1534

702:                                              ; preds = %.loopexit
  %703 = getelementptr inbounds i8, ptr %0, i64 880
  %704 = load ptr, ptr %703, align 8, !tbaa !80
  %705 = getelementptr inbounds i8, ptr %0, i64 3400
  %706 = load ptr, ptr %705, align 8, !tbaa !80
  %707 = add nsw i64 %.91395, -1
  %708 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %707)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %704, i64 noundef 1, ptr noundef %706, i64 noundef 1, i64 noundef %708)
  %709 = getelementptr inbounds i8, ptr %0, i64 816
  %710 = load ptr, ptr %709, align 8, !tbaa !80
  %711 = getelementptr inbounds i8, ptr %0, i64 456
  %712 = load ptr, ptr %711, align 8, !tbaa !80
  %713 = getelementptr inbounds ptr, ptr %712, i64 %.131322
  %714 = load ptr, ptr %713, align 8, !tbaa !110
  %715 = add nsw i64 %.91412, -1
  %716 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %715)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %710, i64 noundef 1, ptr noundef %714, i64 noundef 1, i64 noundef %716)
  %717 = getelementptr inbounds i8, ptr %0, i64 752
  store i64 %.131322, ptr %717, align 8, !tbaa !120
  tail call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %718 = getelementptr inbounds i8, ptr %0, i64 746
  store i8 1, ptr %718, align 2, !tbaa !112
  br label %1725

719:                                              ; preds = %45
  %720 = getelementptr inbounds i8, ptr %0, i64 746
  store i8 0, ptr %720, align 2, !tbaa !112
  %721 = getelementptr inbounds i8, ptr %0, i64 2400
  %722 = load ptr, ptr %721, align 8, !tbaa !80
  %723 = getelementptr inbounds double, ptr %722, i64 %.01309
  %724 = load double, ptr %723, align 8, !tbaa !82
  %725 = getelementptr inbounds i8, ptr %0, i64 3408
  %726 = load double, ptr %725, align 8, !tbaa !123
  %727 = getelementptr inbounds i8, ptr %0, i64 888
  %728 = load double, ptr %727, align 8, !tbaa !114
  %729 = getelementptr inbounds i8, ptr %0, i64 520
  %730 = load ptr, ptr %729, align 8, !tbaa !80
  %731 = getelementptr inbounds double, ptr %730, i64 %.01309
  %732 = load double, ptr %731, align 8, !tbaa !82
  %733 = fsub double %728, %732
  %734 = fmul double %724, %733
  %735 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %734, ptr noundef %1)
  %736 = fadd double %726, %735
  store double %736, ptr %725, align 8, !tbaa !123
  %737 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %724, ptr noundef %1)
  %738 = fmul double %737, 2.000000e+00
  %739 = load double, ptr %727, align 8, !tbaa !114
  %740 = load ptr, ptr %729, align 8, !tbaa !80
  %741 = getelementptr inbounds double, ptr %740, i64 %.01309
  %742 = load double, ptr %741, align 8, !tbaa !82
  %743 = fsub double %739, %742
  %744 = fmul double %738, %743
  %745 = getelementptr inbounds i8, ptr %0, i64 3696
  %746 = load ptr, ptr %745, align 8, !tbaa !80
  %747 = getelementptr inbounds i8, ptr %0, i64 952
  %748 = load ptr, ptr %747, align 8, !tbaa !80
  %749 = add nsw i64 %.01386, -1
  %750 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %749)
  tail call void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef %746, i64 noundef 1, ptr noundef %748, i64 noundef 1, i64 noundef %750, double noundef %744)
  %751 = add nsw i64 %.01309, 1
  br label %.loopexit

752:                                              ; preds = %678
  %753 = load i8, ptr %594, align 1, !tbaa !127, !range !98, !noundef !99
  %754 = trunc nuw i8 %753 to i1
  br i1 %754, label %.loopexit1536, label %798

.loopexit1536:                                    ; preds = %752, %772
  %.101429 = phi i64 [ %.01419, %772 ], [ %.61425.ph, %752 ]
  %.101413 = phi i64 [ %.01403, %772 ], [ %.61409.ph, %752 ]
  %.101396 = phi i64 [ %.01386, %772 ], [ %.61392.ph, %752 ]
  %.101376 = phi double [ %.01366, %772 ], [ %.61372.ph, %752 ]
  %.51359 = phi double [ %777, %772 ], [ %.11355.ph, %752 ]
  %.141323 = phi i64 [ %797, %772 ], [ 0, %752 ]
  %.121299 = phi i64 [ %.01287, %772 ], [ %.81295.ph, %752 ]
  %.not1499 = icmp slt i64 %.141323, %.101429
  br i1 %.not1499, label %755, label %.preheader1534

755:                                              ; preds = %.loopexit1536
  %756 = getelementptr inbounds i8, ptr %0, i64 880
  %757 = load ptr, ptr %756, align 8, !tbaa !80
  %758 = getelementptr inbounds i8, ptr %0, i64 3400
  %759 = load ptr, ptr %758, align 8, !tbaa !80
  %760 = add nsw i64 %.101396, -1
  %761 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %760)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %757, i64 noundef 1, ptr noundef %759, i64 noundef 1, i64 noundef %761)
  %762 = getelementptr inbounds i8, ptr %0, i64 816
  %763 = load ptr, ptr %762, align 8, !tbaa !80
  %764 = getelementptr inbounds i8, ptr %0, i64 456
  %765 = load ptr, ptr %764, align 8, !tbaa !80
  %766 = getelementptr inbounds ptr, ptr %765, i64 %.141323
  %767 = load ptr, ptr %766, align 8, !tbaa !110
  %768 = add nsw i64 %.101413, -1
  %769 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %768)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %763, i64 noundef 1, ptr noundef %767, i64 noundef 1, i64 noundef %769)
  %770 = getelementptr inbounds i8, ptr %0, i64 752
  store i64 %.141323, ptr %770, align 8, !tbaa !120
  tail call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %771 = getelementptr inbounds i8, ptr %0, i64 746
  store i8 1, ptr %771, align 2, !tbaa !112
  br label %1725

772:                                              ; preds = %45
  %773 = getelementptr inbounds i8, ptr %0, i64 746
  store i8 0, ptr %773, align 2, !tbaa !112
  %774 = getelementptr inbounds i8, ptr %0, i64 2400
  %775 = load ptr, ptr %774, align 8, !tbaa !80
  %776 = getelementptr inbounds double, ptr %775, i64 %.01309
  %777 = load double, ptr %776, align 8, !tbaa !82
  %778 = getelementptr inbounds i8, ptr %0, i64 888
  %779 = load double, ptr %778, align 8, !tbaa !114
  %780 = getelementptr inbounds i8, ptr %0, i64 520
  %781 = load ptr, ptr %780, align 8, !tbaa !80
  %782 = getelementptr inbounds double, ptr %781, i64 %.01309
  %783 = load double, ptr %782, align 8, !tbaa !82
  %784 = fsub double %779, %783
  %785 = fmul double %777, %784
  %786 = getelementptr inbounds i8, ptr %0, i64 3472
  %787 = load ptr, ptr %786, align 8, !tbaa !80
  %788 = getelementptr inbounds double, ptr %787, i64 %.01309
  store double %785, ptr %788, align 8, !tbaa !82
  %789 = getelementptr inbounds i8, ptr %0, i64 3552
  %790 = load ptr, ptr %789, align 8, !tbaa !80
  %791 = getelementptr inbounds ptr, ptr %790, i64 %.01309
  %792 = load ptr, ptr %791, align 8, !tbaa !110
  %793 = getelementptr inbounds i8, ptr %0, i64 952
  %794 = load ptr, ptr %793, align 8, !tbaa !80
  %795 = add nsw i64 %.01386, -1
  %796 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %795)
  tail call void @_ZN11alglib_impl10ae_v_movedEPdlPKdlld(ptr noundef %792, i64 noundef 1, ptr noundef %794, i64 noundef 1, i64 noundef %796, double noundef %777)
  %797 = add nsw i64 %.01309, 1
  br label %.loopexit1536

798:                                              ; preds = %752
  %799 = load i8, ptr %595, align 1, !tbaa !128, !range !98, !noundef !99
  %800 = trunc nuw i8 %799 to i1
  br i1 %800, label %801, label %.thread

801:                                              ; preds = %798
  %802 = getelementptr inbounds i8, ptr %0, i64 880
  %803 = load ptr, ptr %802, align 8, !tbaa !80
  %804 = getelementptr inbounds i8, ptr %0, i64 3400
  %805 = load ptr, ptr %804, align 8, !tbaa !80
  %806 = add nsw i64 %.61392.ph, -1
  %807 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %806)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %803, i64 noundef 1, ptr noundef %805, i64 noundef 1, i64 noundef %807)
  %808 = getelementptr inbounds i8, ptr %0, i64 3408
  %809 = load double, ptr %808, align 8, !tbaa !123
  %810 = getelementptr inbounds i8, ptr %0, i64 888
  store double %809, ptr %810, align 8, !tbaa !114
  tail call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %811 = getelementptr inbounds i8, ptr %0, i64 744
  store i8 1, ptr %811, align 8, !tbaa !129
  br label %1725

812:                                              ; preds = %45
  %813 = getelementptr inbounds i8, ptr %0, i64 744
  store i8 0, ptr %813, align 8, !tbaa !129
  br label %.preheader1534

814:                                              ; preds = %596
  %815 = load i64, ptr %590, align 8, !tbaa !130
  switch i64 %815, label %.thread [
    i64 -1, label %816
    i64 2, label %824
    i64 3, label %910
    i64 4, label %1022
  ]

816:                                              ; preds = %814
  %817 = getelementptr inbounds i8, ptr %0, i64 960
  store i64 -1, ptr %817, align 8, !tbaa !101
  %818 = getelementptr inbounds i8, ptr %0, i64 1056
  store i64 %.61392.ph, ptr %818, align 8, !tbaa !108
  %819 = getelementptr inbounds i8, ptr %0, i64 3784
  %820 = load double, ptr %819, align 8, !tbaa !131
  %821 = getelementptr inbounds i8, ptr %0, i64 1032
  store double %820, ptr %821, align 8, !tbaa !132
  %822 = getelementptr inbounds i8, ptr %0, i64 3720
  %823 = getelementptr inbounds i8, ptr %0, i64 968
  tail call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.61392.ph, ptr noundef nonnull %822, ptr noundef nonnull %823, ptr noundef %1)
  br label %1725

824:                                              ; preds = %814
  %825 = getelementptr inbounds i8, ptr %0, i64 3792
  %826 = load i64, ptr %825, align 8, !tbaa !133
  %827 = icmp eq i64 %826, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %827, ptr noundef nonnull @.str.642, ptr noundef %1)
  %828 = getelementptr inbounds i8, ptr %0, i64 3800
  %829 = load i64, ptr %828, align 8, !tbaa !134
  %830 = icmp eq i64 %829, %.61425.ph
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %830, ptr noundef nonnull @.str.643, ptr noundef %1)
  %831 = getelementptr inbounds i8, ptr %0, i64 3808
  %832 = load i64, ptr %831, align 8, !tbaa !135
  %833 = icmp eq i64 %832, %.61392.ph
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %833, ptr noundef nonnull @.str.644, ptr noundef %1)
  %834 = getelementptr inbounds i8, ptr %0, i64 3816
  %835 = load i64, ptr %834, align 8, !tbaa !136
  %836 = icmp eq i64 %835, 0
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %836, ptr noundef nonnull @.str.645, ptr noundef %1)
  %837 = getelementptr inbounds i8, ptr %0, i64 960
  store i64 2, ptr %837, align 8, !tbaa !101
  %838 = getelementptr inbounds i8, ptr %0, i64 1040
  store i64 %.61425.ph, ptr %838, align 8, !tbaa !106
  %839 = getelementptr inbounds i8, ptr %0, i64 1048
  store i64 1, ptr %839, align 8, !tbaa !107
  %840 = getelementptr inbounds i8, ptr %0, i64 1056
  store i64 %.61392.ph, ptr %840, align 8, !tbaa !108
  %841 = getelementptr inbounds i8, ptr %0, i64 1064
  store i64 %.61409.ph, ptr %841, align 8, !tbaa !109
  %842 = add nsw i64 %.61392.ph, %.61409.ph
  %843 = mul nsw i64 %842, %.61425.ph
  %844 = getelementptr inbounds i8, ptr %0, i64 1080
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %843, ptr noundef nonnull %844, ptr noundef %1)
  %.not1507.not1732 = icmp sgt i64 %.61425.ph, 0
  br i1 %.not1507.not1732, label %.preheader1521.lr.ph, label %._crit_edge1735

.preheader1521.lr.ph:                             ; preds = %824
  %.not1508.not1720 = icmp sgt i64 %.61392.ph, 0
  %845 = getelementptr inbounds i8, ptr %0, i64 3888
  %846 = getelementptr inbounds i8, ptr %0, i64 1136
  %.not1509.not1725 = icmp sgt i64 %.61409.ph, 0
  %847 = getelementptr inbounds i8, ptr %0, i64 456
  %xtraiter1920 = and i64 %.61392.ph, 1
  %848 = icmp eq i64 %.61392.ph, 1
  %unroll_iter1924 = and i64 %.61392.ph, 9223372036854775806
  %lcmp.mod1922.not = icmp eq i64 %xtraiter1920, 0
  %xtraiter1926 = and i64 %.61409.ph, 1
  %849 = icmp eq i64 %.61409.ph, 1
  %unroll_iter1930 = and i64 %.61409.ph, 9223372036854775806
  %lcmp.mod1928.not = icmp eq i64 %xtraiter1926, 0
  br label %.preheader1521

.preheader1521:                                   ; preds = %.preheader1521.lr.ph, %._crit_edge1729
  %.11734 = phi i64 [ 0, %.preheader1521.lr.ph ], [ %.3.lcssa, %._crit_edge1729 ]
  %.1513241733 = phi i64 [ 0, %.preheader1521.lr.ph ], [ %896, %._crit_edge1729 ]
  br i1 %.not1508.not1720, label %.lr.ph1723.preheader, label %.preheader

.lr.ph1723.preheader:                             ; preds = %.preheader1521
  br i1 %848, label %.preheader.loopexit.unr-lcssa, label %.lr.ph1723

.preheader.loopexit.unr-lcssa:                    ; preds = %.lr.ph1723, %.lr.ph1723.preheader
  %.lcssa1873.ph = phi i64 [ poison, %.lr.ph1723.preheader ], [ %868, %.lr.ph1723 ]
  %.21722.unr = phi i64 [ %.11734, %.lr.ph1723.preheader ], [ %868, %.lr.ph1723 ]
  %.1413011721.unr = phi i64 [ 0, %.lr.ph1723.preheader ], [ %869, %.lr.ph1723 ]
  br i1 %lcmp.mod1922.not, label %.preheader, label %.lr.ph1723.epil

.lr.ph1723.epil:                                  ; preds = %.preheader.loopexit.unr-lcssa
  %850 = load ptr, ptr %845, align 8, !tbaa !80
  %851 = getelementptr inbounds double, ptr %850, i64 %.1413011721.unr
  %852 = load double, ptr %851, align 8, !tbaa !82
  %853 = load ptr, ptr %846, align 8, !tbaa !80
  %854 = getelementptr inbounds double, ptr %853, i64 %.21722.unr
  store double %852, ptr %854, align 8, !tbaa !82
  %855 = add nsw i64 %.21722.unr, 1
  br label %.preheader

.preheader:                                       ; preds = %.lr.ph1723.epil, %.preheader.loopexit.unr-lcssa, %.preheader1521
  %.2.lcssa = phi i64 [ %.11734, %.preheader1521 ], [ %.lcssa1873.ph, %.preheader.loopexit.unr-lcssa ], [ %855, %.lr.ph1723.epil ]
  br i1 %.not1509.not1725, label %.lr.ph1728.preheader, label %._crit_edge1729

.lr.ph1728.preheader:                             ; preds = %.preheader
  br i1 %849, label %._crit_edge1729.loopexit.unr-lcssa, label %.lr.ph1728

.lr.ph1723:                                       ; preds = %.lr.ph1723.preheader, %.lr.ph1723
  %.21722 = phi i64 [ %868, %.lr.ph1723 ], [ %.11734, %.lr.ph1723.preheader ]
  %.1413011721 = phi i64 [ %869, %.lr.ph1723 ], [ 0, %.lr.ph1723.preheader ]
  %niter1925 = phi i64 [ %niter1925.next.1, %.lr.ph1723 ], [ 0, %.lr.ph1723.preheader ]
  %856 = load ptr, ptr %845, align 8, !tbaa !80
  %857 = getelementptr inbounds double, ptr %856, i64 %.1413011721
  %858 = load double, ptr %857, align 8, !tbaa !82
  %859 = load ptr, ptr %846, align 8, !tbaa !80
  %860 = getelementptr inbounds double, ptr %859, i64 %.21722
  store double %858, ptr %860, align 8, !tbaa !82
  %861 = or disjoint i64 %.1413011721, 1
  %862 = load ptr, ptr %845, align 8, !tbaa !80
  %863 = getelementptr inbounds double, ptr %862, i64 %861
  %864 = load double, ptr %863, align 8, !tbaa !82
  %865 = load ptr, ptr %846, align 8, !tbaa !80
  %866 = getelementptr double, ptr %865, i64 %.21722
  %867 = getelementptr i8, ptr %866, i64 8
  store double %864, ptr %867, align 8, !tbaa !82
  %868 = add nsw i64 %.21722, 2
  %869 = add nuw nsw i64 %.1413011721, 2
  %niter1925.next.1 = add i64 %niter1925, 2
  %niter1925.ncmp.1 = icmp eq i64 %niter1925.next.1, %unroll_iter1924
  br i1 %niter1925.ncmp.1, label %.preheader.loopexit.unr-lcssa, label %.lr.ph1723, !llvm.loop !137

.lr.ph1728:                                       ; preds = %.lr.ph1728.preheader, %.lr.ph1728
  %.31727 = phi i64 [ %886, %.lr.ph1728 ], [ %.2.lcssa, %.lr.ph1728.preheader ]
  %.1513021726 = phi i64 [ %887, %.lr.ph1728 ], [ 0, %.lr.ph1728.preheader ]
  %niter1931 = phi i64 [ %niter1931.next.1, %.lr.ph1728 ], [ 0, %.lr.ph1728.preheader ]
  %870 = load ptr, ptr %847, align 8, !tbaa !80
  %871 = getelementptr inbounds ptr, ptr %870, i64 %.1513241733
  %872 = load ptr, ptr %871, align 8, !tbaa !110
  %873 = getelementptr inbounds double, ptr %872, i64 %.1513021726
  %874 = load double, ptr %873, align 8, !tbaa !82
  %875 = load ptr, ptr %846, align 8, !tbaa !80
  %876 = getelementptr inbounds double, ptr %875, i64 %.31727
  store double %874, ptr %876, align 8, !tbaa !82
  %877 = or disjoint i64 %.1513021726, 1
  %878 = load ptr, ptr %847, align 8, !tbaa !80
  %879 = getelementptr inbounds ptr, ptr %878, i64 %.1513241733
  %880 = load ptr, ptr %879, align 8, !tbaa !110
  %881 = getelementptr inbounds double, ptr %880, i64 %877
  %882 = load double, ptr %881, align 8, !tbaa !82
  %883 = load ptr, ptr %846, align 8, !tbaa !80
  %884 = getelementptr double, ptr %883, i64 %.31727
  %885 = getelementptr i8, ptr %884, i64 8
  store double %882, ptr %885, align 8, !tbaa !82
  %886 = add nsw i64 %.31727, 2
  %887 = add nuw nsw i64 %.1513021726, 2
  %niter1931.next.1 = add i64 %niter1931, 2
  %niter1931.ncmp.1 = icmp eq i64 %niter1931.next.1, %unroll_iter1930
  br i1 %niter1931.ncmp.1, label %._crit_edge1729.loopexit.unr-lcssa, label %.lr.ph1728, !llvm.loop !138

._crit_edge1729.loopexit.unr-lcssa:               ; preds = %.lr.ph1728, %.lr.ph1728.preheader
  %.lcssa1874.ph = phi i64 [ poison, %.lr.ph1728.preheader ], [ %886, %.lr.ph1728 ]
  %.31727.unr = phi i64 [ %.2.lcssa, %.lr.ph1728.preheader ], [ %886, %.lr.ph1728 ]
  %.1513021726.unr = phi i64 [ 0, %.lr.ph1728.preheader ], [ %887, %.lr.ph1728 ]
  br i1 %lcmp.mod1928.not, label %._crit_edge1729, label %.lr.ph1728.epil

.lr.ph1728.epil:                                  ; preds = %._crit_edge1729.loopexit.unr-lcssa
  %888 = load ptr, ptr %847, align 8, !tbaa !80
  %889 = getelementptr inbounds ptr, ptr %888, i64 %.1513241733
  %890 = load ptr, ptr %889, align 8, !tbaa !110
  %891 = getelementptr inbounds double, ptr %890, i64 %.1513021726.unr
  %892 = load double, ptr %891, align 8, !tbaa !82
  %893 = load ptr, ptr %846, align 8, !tbaa !80
  %894 = getelementptr inbounds double, ptr %893, i64 %.31727.unr
  store double %892, ptr %894, align 8, !tbaa !82
  %895 = add nsw i64 %.31727.unr, 1
  br label %._crit_edge1729

._crit_edge1729:                                  ; preds = %.lr.ph1728.epil, %._crit_edge1729.loopexit.unr-lcssa, %.preheader
  %.3.lcssa = phi i64 [ %.2.lcssa, %.preheader ], [ %.lcssa1874.ph, %._crit_edge1729.loopexit.unr-lcssa ], [ %895, %.lr.ph1728.epil ]
  %896 = add nuw nsw i64 %.1513241733, 1
  %exitcond1801.not = icmp eq i64 %896, %.61425.ph
  br i1 %exitcond1801.not, label %._crit_edge1735.loopexit, label %.preheader1521, !llvm.loop !139

._crit_edge1735.loopexit:                         ; preds = %._crit_edge1729
  %smax1800 = tail call i64 @llvm.smax.i64(i64 %.61409.ph, i64 0)
  br label %._crit_edge1735

._crit_edge1735:                                  ; preds = %._crit_edge1735.loopexit, %824
  %.151324.lcssa = phi i64 [ 0, %824 ], [ %.61425.ph, %._crit_edge1735.loopexit ]
  %.131300.lcssa = phi i64 [ %.81295.ph, %824 ], [ %smax1800, %._crit_edge1735.loopexit ]
  %.1.lcssa = phi i64 [ 0, %824 ], [ %.3.lcssa, %._crit_edge1735.loopexit ]
  %897 = getelementptr inbounds i8, ptr %0, i64 1144
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.61425.ph, ptr noundef nonnull %897, ptr noundef %1)
  %898 = mul nsw i64 %.61392.ph, %.61425.ph
  %899 = getelementptr inbounds i8, ptr %0, i64 1208
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %898, ptr noundef nonnull %899, ptr noundef %1)
  br label %1725

900:                                              ; preds = %45
  %901 = getelementptr inbounds i8, ptr %0, i64 3712
  store i64 0, ptr %901, align 8, !tbaa !130
  %902 = getelementptr inbounds i8, ptr %0, i64 1144
  %903 = getelementptr inbounds i8, ptr %0, i64 3896
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01419, ptr noundef nonnull %902, ptr noundef nonnull %903, ptr noundef %1)
  %904 = getelementptr inbounds i8, ptr %0, i64 464
  tail call void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01419, double noundef -1.000000e+00, ptr noundef nonnull %904, ptr noundef nonnull %903, ptr noundef %1)
  %905 = getelementptr inbounds i8, ptr %0, i64 2344
  tail call void @_ZN11alglib_impl10rmergemulvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01419, ptr noundef nonnull %905, ptr noundef nonnull %903, ptr noundef %1)
  %906 = mul nsw i64 %.01386, %.01419
  %907 = getelementptr inbounds i8, ptr %0, i64 1208
  %908 = getelementptr inbounds i8, ptr %0, i64 3960
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %906, ptr noundef nonnull %907, ptr noundef nonnull %908, ptr noundef %1)
  %909 = getelementptr inbounds i8, ptr %0, i64 2408
  tail call void @_ZN11alglib_impl10rmergemulvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %906, ptr noundef nonnull %909, ptr noundef nonnull %908, ptr noundef %1)
  br label %.preheader1534

910:                                              ; preds = %814
  %911 = getelementptr inbounds i8, ptr %0, i64 3792
  %912 = load i64, ptr %911, align 8, !tbaa !133
  %913 = icmp eq i64 %912, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %913, ptr noundef nonnull @.str.646, ptr noundef %1)
  %914 = getelementptr inbounds i8, ptr %0, i64 3800
  %915 = load i64, ptr %914, align 8, !tbaa !134
  %916 = icmp eq i64 %915, %.61425.ph
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %916, ptr noundef nonnull @.str.647, ptr noundef %1)
  %917 = getelementptr inbounds i8, ptr %0, i64 3808
  %918 = load i64, ptr %917, align 8, !tbaa !135
  %919 = icmp eq i64 %918, %.61392.ph
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %919, ptr noundef nonnull @.str.648, ptr noundef %1)
  %920 = getelementptr inbounds i8, ptr %0, i64 3816
  %921 = load i64, ptr %920, align 8, !tbaa !136
  %922 = icmp eq i64 %921, 0
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %922, ptr noundef nonnull @.str.649, ptr noundef %1)
  %923 = getelementptr inbounds i8, ptr %0, i64 3824
  %924 = load i64, ptr %923, align 8, !tbaa !140
  %925 = icmp sgt i64 %924, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %925, ptr noundef nonnull @.str.650, ptr noundef %1)
  %926 = getelementptr inbounds i8, ptr %0, i64 960
  store i64 3, ptr %926, align 8, !tbaa !101
  %927 = getelementptr inbounds i8, ptr %0, i64 1040
  store i64 %.61425.ph, ptr %927, align 8, !tbaa !106
  %928 = getelementptr inbounds i8, ptr %0, i64 1048
  store i64 1, ptr %928, align 8, !tbaa !107
  %929 = getelementptr inbounds i8, ptr %0, i64 1056
  store i64 %.61392.ph, ptr %929, align 8, !tbaa !108
  %930 = getelementptr inbounds i8, ptr %0, i64 1064
  store i64 %.61409.ph, ptr %930, align 8, !tbaa !109
  %931 = load i64, ptr %923, align 8, !tbaa !140
  %932 = getelementptr inbounds i8, ptr %0, i64 1072
  store i64 %931, ptr %932, align 8, !tbaa !141
  %933 = add nsw i64 %.61392.ph, %.61409.ph
  %934 = shl nsw i64 %.61392.ph, 1
  %935 = mul nsw i64 %931, %934
  %936 = add nsw i64 %933, %935
  %937 = mul nsw i64 %936, %.61425.ph
  %938 = getelementptr inbounds i8, ptr %0, i64 1080
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %937, ptr noundef nonnull %938, ptr noundef %1)
  %.not1511.not1713 = icmp sgt i64 %.61425.ph, 0
  br i1 %.not1511.not1713, label %.preheader1524.lr.ph, label %._crit_edge1716

.preheader1524.lr.ph:                             ; preds = %910
  %.not1512.not1696 = icmp sgt i64 %.61392.ph, 0
  %939 = getelementptr inbounds i8, ptr %0, i64 3888
  %940 = getelementptr inbounds i8, ptr %0, i64 1136
  %.not1513.not1701 = icmp sgt i64 %.61409.ph, 0
  %941 = getelementptr inbounds i8, ptr %0, i64 456
  %942 = load i64, ptr %932, align 8, !tbaa !141
  %943 = mul i64 %942, %934
  %.not1514.not1706 = icmp sgt i64 %943, 0
  %xtraiter1908 = and i64 %.61392.ph, 1
  %944 = icmp eq i64 %.61392.ph, 1
  %unroll_iter1912 = and i64 %.61392.ph, 9223372036854775806
  %lcmp.mod1910.not = icmp eq i64 %xtraiter1908, 0
  %xtraiter1914 = and i64 %.61409.ph, 1
  %945 = icmp eq i64 %.61409.ph, 1
  %unroll_iter1918 = and i64 %.61409.ph, 9223372036854775806
  %lcmp.mod1916.not = icmp eq i64 %xtraiter1914, 0
  br label %.preheader1524

.preheader1524:                                   ; preds = %.preheader1524.lr.ph, %._crit_edge1710
  %.41715 = phi i64 [ 0, %.preheader1524.lr.ph ], [ %.7.lcssa, %._crit_edge1710 ]
  %.1613251714 = phi i64 [ 0, %.preheader1524.lr.ph ], [ %1008, %._crit_edge1710 ]
  br i1 %.not1512.not1696, label %.lr.ph1699.preheader, label %.preheader1523

.lr.ph1699.preheader:                             ; preds = %.preheader1524
  br i1 %944, label %.preheader1523.loopexit.unr-lcssa, label %.lr.ph1699

.preheader1523.loopexit.unr-lcssa:                ; preds = %.lr.ph1699, %.lr.ph1699.preheader
  %.lcssa1875.ph = phi i64 [ poison, %.lr.ph1699.preheader ], [ %964, %.lr.ph1699 ]
  %.51698.unr = phi i64 [ %.41715, %.lr.ph1699.preheader ], [ %964, %.lr.ph1699 ]
  %.1713041697.unr = phi i64 [ 0, %.lr.ph1699.preheader ], [ %965, %.lr.ph1699 ]
  br i1 %lcmp.mod1910.not, label %.preheader1523, label %.lr.ph1699.epil

.lr.ph1699.epil:                                  ; preds = %.preheader1523.loopexit.unr-lcssa
  %946 = load ptr, ptr %939, align 8, !tbaa !80
  %947 = getelementptr inbounds double, ptr %946, i64 %.1713041697.unr
  %948 = load double, ptr %947, align 8, !tbaa !82
  %949 = load ptr, ptr %940, align 8, !tbaa !80
  %950 = getelementptr inbounds double, ptr %949, i64 %.51698.unr
  store double %948, ptr %950, align 8, !tbaa !82
  %951 = add nsw i64 %.51698.unr, 1
  br label %.preheader1523

.preheader1523:                                   ; preds = %.lr.ph1699.epil, %.preheader1523.loopexit.unr-lcssa, %.preheader1524
  %.5.lcssa = phi i64 [ %.41715, %.preheader1524 ], [ %.lcssa1875.ph, %.preheader1523.loopexit.unr-lcssa ], [ %951, %.lr.ph1699.epil ]
  br i1 %.not1513.not1701, label %.lr.ph1704.preheader, label %.preheader1522

.lr.ph1704.preheader:                             ; preds = %.preheader1523
  br i1 %945, label %.preheader1522.loopexit.unr-lcssa, label %.lr.ph1704

.lr.ph1699:                                       ; preds = %.lr.ph1699.preheader, %.lr.ph1699
  %.51698 = phi i64 [ %964, %.lr.ph1699 ], [ %.41715, %.lr.ph1699.preheader ]
  %.1713041697 = phi i64 [ %965, %.lr.ph1699 ], [ 0, %.lr.ph1699.preheader ]
  %niter1913 = phi i64 [ %niter1913.next.1, %.lr.ph1699 ], [ 0, %.lr.ph1699.preheader ]
  %952 = load ptr, ptr %939, align 8, !tbaa !80
  %953 = getelementptr inbounds double, ptr %952, i64 %.1713041697
  %954 = load double, ptr %953, align 8, !tbaa !82
  %955 = load ptr, ptr %940, align 8, !tbaa !80
  %956 = getelementptr inbounds double, ptr %955, i64 %.51698
  store double %954, ptr %956, align 8, !tbaa !82
  %957 = or disjoint i64 %.1713041697, 1
  %958 = load ptr, ptr %939, align 8, !tbaa !80
  %959 = getelementptr inbounds double, ptr %958, i64 %957
  %960 = load double, ptr %959, align 8, !tbaa !82
  %961 = load ptr, ptr %940, align 8, !tbaa !80
  %962 = getelementptr double, ptr %961, i64 %.51698
  %963 = getelementptr i8, ptr %962, i64 8
  store double %960, ptr %963, align 8, !tbaa !82
  %964 = add nsw i64 %.51698, 2
  %965 = add nuw nsw i64 %.1713041697, 2
  %niter1913.next.1 = add i64 %niter1913, 2
  %niter1913.ncmp.1 = icmp eq i64 %niter1913.next.1, %unroll_iter1912
  br i1 %niter1913.ncmp.1, label %.preheader1523.loopexit.unr-lcssa, label %.lr.ph1699, !llvm.loop !142

.preheader1522.loopexit.unr-lcssa:                ; preds = %.lr.ph1704, %.lr.ph1704.preheader
  %.lcssa1876.ph = phi i64 [ poison, %.lr.ph1704.preheader ], [ %990, %.lr.ph1704 ]
  %.61703.unr = phi i64 [ %.5.lcssa, %.lr.ph1704.preheader ], [ %990, %.lr.ph1704 ]
  %.1813051702.unr = phi i64 [ 0, %.lr.ph1704.preheader ], [ %991, %.lr.ph1704 ]
  br i1 %lcmp.mod1916.not, label %.preheader1522, label %.lr.ph1704.epil

.lr.ph1704.epil:                                  ; preds = %.preheader1522.loopexit.unr-lcssa
  %966 = load ptr, ptr %941, align 8, !tbaa !80
  %967 = getelementptr inbounds ptr, ptr %966, i64 %.1613251714
  %968 = load ptr, ptr %967, align 8, !tbaa !110
  %969 = getelementptr inbounds double, ptr %968, i64 %.1813051702.unr
  %970 = load double, ptr %969, align 8, !tbaa !82
  %971 = load ptr, ptr %940, align 8, !tbaa !80
  %972 = getelementptr inbounds double, ptr %971, i64 %.61703.unr
  store double %970, ptr %972, align 8, !tbaa !82
  %973 = add nsw i64 %.61703.unr, 1
  br label %.preheader1522

.preheader1522:                                   ; preds = %.lr.ph1704.epil, %.preheader1522.loopexit.unr-lcssa, %.preheader1523
  %.6.lcssa = phi i64 [ %.5.lcssa, %.preheader1523 ], [ %.lcssa1876.ph, %.preheader1522.loopexit.unr-lcssa ], [ %973, %.lr.ph1704.epil ]
  br i1 %.not1514.not1706, label %.lr.ph1709, label %._crit_edge1710

.lr.ph1704:                                       ; preds = %.lr.ph1704.preheader, %.lr.ph1704
  %.61703 = phi i64 [ %990, %.lr.ph1704 ], [ %.5.lcssa, %.lr.ph1704.preheader ]
  %.1813051702 = phi i64 [ %991, %.lr.ph1704 ], [ 0, %.lr.ph1704.preheader ]
  %niter1919 = phi i64 [ %niter1919.next.1, %.lr.ph1704 ], [ 0, %.lr.ph1704.preheader ]
  %974 = load ptr, ptr %941, align 8, !tbaa !80
  %975 = getelementptr inbounds ptr, ptr %974, i64 %.1613251714
  %976 = load ptr, ptr %975, align 8, !tbaa !110
  %977 = getelementptr inbounds double, ptr %976, i64 %.1813051702
  %978 = load double, ptr %977, align 8, !tbaa !82
  %979 = load ptr, ptr %940, align 8, !tbaa !80
  %980 = getelementptr inbounds double, ptr %979, i64 %.61703
  store double %978, ptr %980, align 8, !tbaa !82
  %981 = or disjoint i64 %.1813051702, 1
  %982 = load ptr, ptr %941, align 8, !tbaa !80
  %983 = getelementptr inbounds ptr, ptr %982, i64 %.1613251714
  %984 = load ptr, ptr %983, align 8, !tbaa !110
  %985 = getelementptr inbounds double, ptr %984, i64 %981
  %986 = load double, ptr %985, align 8, !tbaa !82
  %987 = load ptr, ptr %940, align 8, !tbaa !80
  %988 = getelementptr double, ptr %987, i64 %.61703
  %989 = getelementptr i8, ptr %988, i64 8
  store double %986, ptr %989, align 8, !tbaa !82
  %990 = add nsw i64 %.61703, 2
  %991 = add nuw nsw i64 %.1813051702, 2
  %niter1919.next.1 = add i64 %niter1919, 2
  %niter1919.ncmp.1 = icmp eq i64 %niter1919.next.1, %unroll_iter1918
  br i1 %niter1919.ncmp.1, label %.preheader1522.loopexit.unr-lcssa, label %.lr.ph1704, !llvm.loop !143

.lr.ph1709:                                       ; preds = %.preheader1522, %.lr.ph1709
  %.71708 = phi i64 [ %1006, %.lr.ph1709 ], [ %.6.lcssa, %.preheader1522 ]
  %.1913061707 = phi i64 [ %1007, %.lr.ph1709 ], [ 0, %.preheader1522 ]
  %992 = load ptr, ptr %939, align 8, !tbaa !80
  %993 = getelementptr double, ptr %992, i64 %.61392.ph
  %994 = getelementptr double, ptr %993, i64 %.1913061707
  %995 = load double, ptr %994, align 8, !tbaa !82
  %996 = load ptr, ptr %940, align 8, !tbaa !80
  %997 = getelementptr inbounds double, ptr %996, i64 %.71708
  store double %995, ptr %997, align 8, !tbaa !82
  %998 = or disjoint i64 %.1913061707, 1
  %999 = load ptr, ptr %939, align 8, !tbaa !80
  %1000 = getelementptr double, ptr %999, i64 %.61392.ph
  %1001 = getelementptr double, ptr %1000, i64 %998
  %1002 = load double, ptr %1001, align 8, !tbaa !82
  %1003 = load ptr, ptr %940, align 8, !tbaa !80
  %1004 = getelementptr double, ptr %1003, i64 %.71708
  %1005 = getelementptr i8, ptr %1004, i64 8
  store double %1002, ptr %1005, align 8, !tbaa !82
  %1006 = add nsw i64 %.71708, 2
  %1007 = add nuw nsw i64 %.1913061707, 2
  %exitcond1796.not.1 = icmp eq i64 %1007, %943
  br i1 %exitcond1796.not.1, label %._crit_edge1710, label %.lr.ph1709, !llvm.loop !144

._crit_edge1710:                                  ; preds = %.lr.ph1709, %.preheader1522
  %.191306.lcssa = phi i64 [ 0, %.preheader1522 ], [ %943, %.lr.ph1709 ]
  %.7.lcssa = phi i64 [ %.6.lcssa, %.preheader1522 ], [ %1006, %.lr.ph1709 ]
  %1008 = add nuw nsw i64 %.1613251714, 1
  %exitcond1797.not = icmp eq i64 %1008, %.61425.ph
  br i1 %exitcond1797.not, label %._crit_edge1716, label %.preheader1524, !llvm.loop !145

._crit_edge1716:                                  ; preds = %._crit_edge1710, %910
  %.161325.lcssa = phi i64 [ 0, %910 ], [ %.61425.ph, %._crit_edge1710 ]
  %.161303.lcssa = phi i64 [ %.81295.ph, %910 ], [ %.191306.lcssa, %._crit_edge1710 ]
  %.4.lcssa = phi i64 [ 0, %910 ], [ %.7.lcssa, %._crit_edge1710 ]
  %1009 = getelementptr inbounds i8, ptr %0, i64 1144
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.61425.ph, ptr noundef nonnull %1009, ptr noundef %1)
  %1010 = mul nsw i64 %.61392.ph, %.61425.ph
  %1011 = getelementptr inbounds i8, ptr %0, i64 1208
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1010, ptr noundef nonnull %1011, ptr noundef %1)
  br label %1725

1012:                                             ; preds = %45
  %1013 = getelementptr inbounds i8, ptr %0, i64 3712
  store i64 0, ptr %1013, align 8, !tbaa !130
  %1014 = getelementptr inbounds i8, ptr %0, i64 1144
  %1015 = getelementptr inbounds i8, ptr %0, i64 3896
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01419, ptr noundef nonnull %1014, ptr noundef nonnull %1015, ptr noundef %1)
  %1016 = getelementptr inbounds i8, ptr %0, i64 464
  tail call void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01419, double noundef -1.000000e+00, ptr noundef nonnull %1016, ptr noundef nonnull %1015, ptr noundef %1)
  %1017 = getelementptr inbounds i8, ptr %0, i64 2344
  tail call void @_ZN11alglib_impl10rmergemulvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01419, ptr noundef nonnull %1017, ptr noundef nonnull %1015, ptr noundef %1)
  %1018 = mul nsw i64 %.01386, %.01419
  %1019 = getelementptr inbounds i8, ptr %0, i64 1208
  %1020 = getelementptr inbounds i8, ptr %0, i64 3960
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1018, ptr noundef nonnull %1019, ptr noundef nonnull %1020, ptr noundef %1)
  %1021 = getelementptr inbounds i8, ptr %0, i64 2408
  tail call void @_ZN11alglib_impl10rmergemulvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1018, ptr noundef nonnull %1021, ptr noundef nonnull %1020, ptr noundef %1)
  br label %.preheader1534

1022:                                             ; preds = %814
  %1023 = getelementptr inbounds i8, ptr %0, i64 3792
  %1024 = load i64, ptr %1023, align 8, !tbaa !133
  %1025 = icmp eq i64 %1024, 1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1025, ptr noundef nonnull @.str.642, ptr noundef %1)
  %1026 = getelementptr inbounds i8, ptr %0, i64 3800
  %1027 = load i64, ptr %1026, align 8, !tbaa !134
  %1028 = icmp eq i64 %1027, %.61425.ph
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1028, ptr noundef nonnull @.str.643, ptr noundef %1)
  %1029 = getelementptr inbounds i8, ptr %0, i64 3808
  %1030 = load i64, ptr %1029, align 8, !tbaa !135
  %1031 = icmp eq i64 %1030, %.61392.ph
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1031, ptr noundef nonnull @.str.644, ptr noundef %1)
  %1032 = getelementptr inbounds i8, ptr %0, i64 3816
  %1033 = load i64, ptr %1032, align 8, !tbaa !136
  %1034 = icmp eq i64 %1033, 0
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1034, ptr noundef nonnull @.str.645, ptr noundef %1)
  %1035 = getelementptr inbounds i8, ptr %0, i64 960
  store i64 4, ptr %1035, align 8, !tbaa !101
  %1036 = getelementptr inbounds i8, ptr %0, i64 1040
  store i64 %.61425.ph, ptr %1036, align 8, !tbaa !106
  %1037 = getelementptr inbounds i8, ptr %0, i64 1048
  store i64 1, ptr %1037, align 8, !tbaa !107
  %1038 = getelementptr inbounds i8, ptr %0, i64 1056
  store i64 %.61392.ph, ptr %1038, align 8, !tbaa !108
  %1039 = getelementptr inbounds i8, ptr %0, i64 1064
  store i64 %.61409.ph, ptr %1039, align 8, !tbaa !109
  %1040 = add nsw i64 %.61392.ph, %.61409.ph
  %1041 = mul nsw i64 %1040, %.61425.ph
  %1042 = getelementptr inbounds i8, ptr %0, i64 1080
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1041, ptr noundef nonnull %1042, ptr noundef %1)
  %.not1516.not1689 = icmp sgt i64 %.61425.ph, 0
  br i1 %.not1516.not1689, label %.preheader1526.lr.ph, label %._crit_edge1692

.preheader1526.lr.ph:                             ; preds = %1022
  %.not1517.not1677 = icmp sgt i64 %.61392.ph, 0
  %1043 = getelementptr inbounds i8, ptr %0, i64 3888
  %1044 = getelementptr inbounds i8, ptr %0, i64 1136
  %.not1518.not1682 = icmp sgt i64 %.61409.ph, 0
  %1045 = getelementptr inbounds i8, ptr %0, i64 456
  %xtraiter1896 = and i64 %.61392.ph, 1
  %1046 = icmp eq i64 %.61392.ph, 1
  %unroll_iter1900 = and i64 %.61392.ph, 9223372036854775806
  %lcmp.mod1898.not = icmp eq i64 %xtraiter1896, 0
  %xtraiter1902 = and i64 %.61409.ph, 1
  %1047 = icmp eq i64 %.61409.ph, 1
  %unroll_iter1906 = and i64 %.61409.ph, 9223372036854775806
  %lcmp.mod1904.not = icmp eq i64 %xtraiter1902, 0
  br label %.preheader1526

.preheader1526:                                   ; preds = %.preheader1526.lr.ph, %._crit_edge1686
  %.81691 = phi i64 [ 0, %.preheader1526.lr.ph ], [ %.10.lcssa, %._crit_edge1686 ]
  %.1713261690 = phi i64 [ 0, %.preheader1526.lr.ph ], [ %1094, %._crit_edge1686 ]
  br i1 %.not1517.not1677, label %.lr.ph1680.preheader, label %.preheader1525

.lr.ph1680.preheader:                             ; preds = %.preheader1526
  br i1 %1046, label %.preheader1525.loopexit.unr-lcssa, label %.lr.ph1680

.preheader1525.loopexit.unr-lcssa:                ; preds = %.lr.ph1680, %.lr.ph1680.preheader
  %.lcssa1878.ph = phi i64 [ poison, %.lr.ph1680.preheader ], [ %1066, %.lr.ph1680 ]
  %.91679.unr = phi i64 [ %.81691, %.lr.ph1680.preheader ], [ %1066, %.lr.ph1680 ]
  %.2113081678.unr = phi i64 [ 0, %.lr.ph1680.preheader ], [ %1067, %.lr.ph1680 ]
  br i1 %lcmp.mod1898.not, label %.preheader1525, label %.lr.ph1680.epil

.lr.ph1680.epil:                                  ; preds = %.preheader1525.loopexit.unr-lcssa
  %1048 = load ptr, ptr %1043, align 8, !tbaa !80
  %1049 = getelementptr inbounds double, ptr %1048, i64 %.2113081678.unr
  %1050 = load double, ptr %1049, align 8, !tbaa !82
  %1051 = load ptr, ptr %1044, align 8, !tbaa !80
  %1052 = getelementptr inbounds double, ptr %1051, i64 %.91679.unr
  store double %1050, ptr %1052, align 8, !tbaa !82
  %1053 = add nsw i64 %.91679.unr, 1
  br label %.preheader1525

.preheader1525:                                   ; preds = %.lr.ph1680.epil, %.preheader1525.loopexit.unr-lcssa, %.preheader1526
  %.9.lcssa = phi i64 [ %.81691, %.preheader1526 ], [ %.lcssa1878.ph, %.preheader1525.loopexit.unr-lcssa ], [ %1053, %.lr.ph1680.epil ]
  br i1 %.not1518.not1682, label %.lr.ph1685.preheader, label %._crit_edge1686

.lr.ph1685.preheader:                             ; preds = %.preheader1525
  br i1 %1047, label %._crit_edge1686.loopexit.unr-lcssa, label %.lr.ph1685

.lr.ph1680:                                       ; preds = %.lr.ph1680.preheader, %.lr.ph1680
  %.91679 = phi i64 [ %1066, %.lr.ph1680 ], [ %.81691, %.lr.ph1680.preheader ]
  %.2113081678 = phi i64 [ %1067, %.lr.ph1680 ], [ 0, %.lr.ph1680.preheader ]
  %niter1901 = phi i64 [ %niter1901.next.1, %.lr.ph1680 ], [ 0, %.lr.ph1680.preheader ]
  %1054 = load ptr, ptr %1043, align 8, !tbaa !80
  %1055 = getelementptr inbounds double, ptr %1054, i64 %.2113081678
  %1056 = load double, ptr %1055, align 8, !tbaa !82
  %1057 = load ptr, ptr %1044, align 8, !tbaa !80
  %1058 = getelementptr inbounds double, ptr %1057, i64 %.91679
  store double %1056, ptr %1058, align 8, !tbaa !82
  %1059 = or disjoint i64 %.2113081678, 1
  %1060 = load ptr, ptr %1043, align 8, !tbaa !80
  %1061 = getelementptr inbounds double, ptr %1060, i64 %1059
  %1062 = load double, ptr %1061, align 8, !tbaa !82
  %1063 = load ptr, ptr %1044, align 8, !tbaa !80
  %1064 = getelementptr double, ptr %1063, i64 %.91679
  %1065 = getelementptr i8, ptr %1064, i64 8
  store double %1062, ptr %1065, align 8, !tbaa !82
  %1066 = add nsw i64 %.91679, 2
  %1067 = add nuw nsw i64 %.2113081678, 2
  %niter1901.next.1 = add i64 %niter1901, 2
  %niter1901.ncmp.1 = icmp eq i64 %niter1901.next.1, %unroll_iter1900
  br i1 %niter1901.ncmp.1, label %.preheader1525.loopexit.unr-lcssa, label %.lr.ph1680, !llvm.loop !146

.lr.ph1685:                                       ; preds = %.lr.ph1685.preheader, %.lr.ph1685
  %.101684 = phi i64 [ %1084, %.lr.ph1685 ], [ %.9.lcssa, %.lr.ph1685.preheader ]
  %.221683 = phi i64 [ %1085, %.lr.ph1685 ], [ 0, %.lr.ph1685.preheader ]
  %niter1907 = phi i64 [ %niter1907.next.1, %.lr.ph1685 ], [ 0, %.lr.ph1685.preheader ]
  %1068 = load ptr, ptr %1045, align 8, !tbaa !80
  %1069 = getelementptr inbounds ptr, ptr %1068, i64 %.1713261690
  %1070 = load ptr, ptr %1069, align 8, !tbaa !110
  %1071 = getelementptr inbounds double, ptr %1070, i64 %.221683
  %1072 = load double, ptr %1071, align 8, !tbaa !82
  %1073 = load ptr, ptr %1044, align 8, !tbaa !80
  %1074 = getelementptr inbounds double, ptr %1073, i64 %.101684
  store double %1072, ptr %1074, align 8, !tbaa !82
  %1075 = or disjoint i64 %.221683, 1
  %1076 = load ptr, ptr %1045, align 8, !tbaa !80
  %1077 = getelementptr inbounds ptr, ptr %1076, i64 %.1713261690
  %1078 = load ptr, ptr %1077, align 8, !tbaa !110
  %1079 = getelementptr inbounds double, ptr %1078, i64 %1075
  %1080 = load double, ptr %1079, align 8, !tbaa !82
  %1081 = load ptr, ptr %1044, align 8, !tbaa !80
  %1082 = getelementptr double, ptr %1081, i64 %.101684
  %1083 = getelementptr i8, ptr %1082, i64 8
  store double %1080, ptr %1083, align 8, !tbaa !82
  %1084 = add nsw i64 %.101684, 2
  %1085 = add nuw nsw i64 %.221683, 2
  %niter1907.next.1 = add i64 %niter1907, 2
  %niter1907.ncmp.1 = icmp eq i64 %niter1907.next.1, %unroll_iter1906
  br i1 %niter1907.ncmp.1, label %._crit_edge1686.loopexit.unr-lcssa, label %.lr.ph1685, !llvm.loop !147

._crit_edge1686.loopexit.unr-lcssa:               ; preds = %.lr.ph1685, %.lr.ph1685.preheader
  %.lcssa1879.ph = phi i64 [ poison, %.lr.ph1685.preheader ], [ %1084, %.lr.ph1685 ]
  %.101684.unr = phi i64 [ %.9.lcssa, %.lr.ph1685.preheader ], [ %1084, %.lr.ph1685 ]
  %.221683.unr = phi i64 [ 0, %.lr.ph1685.preheader ], [ %1085, %.lr.ph1685 ]
  br i1 %lcmp.mod1904.not, label %._crit_edge1686, label %.lr.ph1685.epil

.lr.ph1685.epil:                                  ; preds = %._crit_edge1686.loopexit.unr-lcssa
  %1086 = load ptr, ptr %1045, align 8, !tbaa !80
  %1087 = getelementptr inbounds ptr, ptr %1086, i64 %.1713261690
  %1088 = load ptr, ptr %1087, align 8, !tbaa !110
  %1089 = getelementptr inbounds double, ptr %1088, i64 %.221683.unr
  %1090 = load double, ptr %1089, align 8, !tbaa !82
  %1091 = load ptr, ptr %1044, align 8, !tbaa !80
  %1092 = getelementptr inbounds double, ptr %1091, i64 %.101684.unr
  store double %1090, ptr %1092, align 8, !tbaa !82
  %1093 = add nsw i64 %.101684.unr, 1
  br label %._crit_edge1686

._crit_edge1686:                                  ; preds = %.lr.ph1685.epil, %._crit_edge1686.loopexit.unr-lcssa, %.preheader1525
  %.10.lcssa = phi i64 [ %.9.lcssa, %.preheader1525 ], [ %.lcssa1879.ph, %._crit_edge1686.loopexit.unr-lcssa ], [ %1093, %.lr.ph1685.epil ]
  %1094 = add nuw nsw i64 %.1713261690, 1
  %exitcond1793.not = icmp eq i64 %1094, %.61425.ph
  br i1 %exitcond1793.not, label %._crit_edge1692.loopexit, label %.preheader1526, !llvm.loop !148

._crit_edge1692.loopexit:                         ; preds = %._crit_edge1686
  %smax1792 = tail call i64 @llvm.smax.i64(i64 %.61409.ph, i64 0)
  br label %._crit_edge1692

._crit_edge1692:                                  ; preds = %._crit_edge1692.loopexit, %1022
  %.171326.lcssa = phi i64 [ 0, %1022 ], [ %.61425.ph, %._crit_edge1692.loopexit ]
  %.201307.lcssa = phi i64 [ %.81295.ph, %1022 ], [ %smax1792, %._crit_edge1692.loopexit ]
  %.8.lcssa = phi i64 [ 0, %1022 ], [ %.10.lcssa, %._crit_edge1692.loopexit ]
  %1095 = getelementptr inbounds i8, ptr %0, i64 1144
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.61425.ph, ptr noundef nonnull %1095, ptr noundef %1)
  br label %1725

1096:                                             ; preds = %45
  %1097 = getelementptr inbounds i8, ptr %0, i64 3712
  store i64 0, ptr %1097, align 8, !tbaa !130
  %1098 = getelementptr inbounds i8, ptr %0, i64 1144
  %1099 = getelementptr inbounds i8, ptr %0, i64 3896
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01419, ptr noundef nonnull %1098, ptr noundef nonnull %1099, ptr noundef %1)
  %1100 = getelementptr inbounds i8, ptr %0, i64 464
  tail call void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01419, double noundef -1.000000e+00, ptr noundef nonnull %1100, ptr noundef nonnull %1099, ptr noundef %1)
  %1101 = getelementptr inbounds i8, ptr %0, i64 2344
  tail call void @_ZN11alglib_impl10rmergemulvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01419, ptr noundef nonnull %1101, ptr noundef nonnull %1099, ptr noundef %1)
  br label %.preheader1534

.thread:                                          ; preds = %596, %798, %814
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.651, ptr noundef %1)
  %1102 = tail call noundef zeroext i1 @_ZN11alglib_impl14minlmiterationEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef nonnull %588, ptr noundef %1)
  br i1 %1102, label %596, label %._crit_edge1590

._crit_edge1590:                                  ; preds = %.thread, %.preheader1534
  %1103 = getelementptr inbounds i8, ptr %0, i64 128
  %1104 = getelementptr inbounds i8, ptr %0, i64 286640
  tail call void @_ZN11alglib_impl12minlmresultsEPKNS_10minlmstateEPNS_9ae_vectorEPNS_11minlmreportEPNS_8ae_stateE(ptr noundef nonnull %588, ptr noundef nonnull %1103, ptr noundef nonnull %1104, ptr noundef %1)
  %1105 = getelementptr inbounds i8, ptr %0, i64 286648
  %1106 = load i64, ptr %1105, align 8, !tbaa !149
  %1107 = getelementptr inbounds i8, ptr %0, i64 2840
  store i64 %1106, ptr %1107, align 8, !tbaa !113
  %1108 = load i64, ptr %1104, align 8, !tbaa !150
  %1109 = getelementptr inbounds i8, ptr %0, i64 2832
  store i64 %1108, ptr %1109, align 8, !tbaa !151
  %1110 = icmp slt i64 %1106, 1
  br i1 %1110, label %1762, label %1111

1111:                                             ; preds = %._crit_edge1590
  %1112 = getelementptr inbounds i8, ptr %0, i64 2856
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %1112, i8 0, i64 40, i1 false)
  %1113 = load i64, ptr %0, align 8, !tbaa !102
  %.not1480 = icmp eq i64 %1113, 1
  br i1 %.not1480, label %1114, label %1142

1114:                                             ; preds = %1111
  %1115 = getelementptr inbounds i8, ptr %0, i64 1144
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.61425.ph, ptr noundef nonnull %1115, ptr noundef %1)
  br label %1116

1116:                                             ; preds = %1134, %1114
  %.111430 = phi i64 [ %.61425.ph, %1114 ], [ %.01419, %1134 ]
  %.111414 = phi i64 [ %.61409.ph, %1114 ], [ %.01403, %1134 ]
  %.111397 = phi i64 [ %.61392.ph, %1114 ], [ %.01386, %1134 ]
  %.111377 = phi double [ %.61372.ph, %1114 ], [ %.01366, %1134 ]
  %.61360 = phi double [ %.11355.ph, %1114 ], [ %.01354, %1134 ]
  %.181327 = phi i64 [ 0, %1114 ], [ %1141, %1134 ]
  %.23 = phi i64 [ %.81295.ph, %1114 ], [ %.01287, %1134 ]
  %.not1481 = icmp slt i64 %.181327, %.111430
  br i1 %.not1481, label %1117, label %1205

1117:                                             ; preds = %1116
  %1118 = getelementptr inbounds i8, ptr %0, i64 880
  %1119 = load ptr, ptr %1118, align 8, !tbaa !80
  %1120 = getelementptr inbounds i8, ptr %0, i64 184
  %1121 = load ptr, ptr %1120, align 8, !tbaa !80
  %1122 = add nsw i64 %.111397, -1
  %1123 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1122)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1119, i64 noundef 1, ptr noundef %1121, i64 noundef 1, i64 noundef %1123)
  %1124 = getelementptr inbounds i8, ptr %0, i64 816
  %1125 = load ptr, ptr %1124, align 8, !tbaa !80
  %1126 = getelementptr inbounds i8, ptr %0, i64 456
  %1127 = load ptr, ptr %1126, align 8, !tbaa !80
  %1128 = getelementptr inbounds ptr, ptr %1127, i64 %.181327
  %1129 = load ptr, ptr %1128, align 8, !tbaa !110
  %1130 = add nsw i64 %.111414, -1
  %1131 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1130)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1125, i64 noundef 1, ptr noundef %1129, i64 noundef 1, i64 noundef %1131)
  %1132 = getelementptr inbounds i8, ptr %0, i64 752
  store i64 %.181327, ptr %1132, align 8, !tbaa !120
  tail call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1133 = getelementptr inbounds i8, ptr %0, i64 745
  store i8 1, ptr %1133, align 1, !tbaa !121
  br label %1725

1134:                                             ; preds = %45
  %1135 = getelementptr inbounds i8, ptr %0, i64 745
  store i8 0, ptr %1135, align 1, !tbaa !121
  %1136 = getelementptr inbounds i8, ptr %0, i64 888
  %1137 = load double, ptr %1136, align 8, !tbaa !114
  %1138 = getelementptr inbounds i8, ptr %0, i64 1200
  %1139 = load ptr, ptr %1138, align 8, !tbaa !80
  %1140 = getelementptr inbounds double, ptr %1139, i64 %.01309
  store double %1137, ptr %1140, align 8, !tbaa !82
  %1141 = add nsw i64 %.01309, 1
  br label %1116

1142:                                             ; preds = %1111
  %1143 = icmp eq i64 %1113, 2
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1143, ptr noundef nonnull @.str.652, ptr noundef %1)
  %1144 = getelementptr inbounds i8, ptr %0, i64 960
  store i64 4, ptr %1144, align 8, !tbaa !101
  %1145 = getelementptr inbounds i8, ptr %0, i64 1040
  store i64 %.61425.ph, ptr %1145, align 8, !tbaa !106
  %1146 = getelementptr inbounds i8, ptr %0, i64 1048
  store i64 1, ptr %1146, align 8, !tbaa !107
  %1147 = getelementptr inbounds i8, ptr %0, i64 1056
  store i64 %.61392.ph, ptr %1147, align 8, !tbaa !108
  %1148 = getelementptr inbounds i8, ptr %0, i64 1064
  store i64 %.61409.ph, ptr %1148, align 8, !tbaa !109
  %1149 = add nsw i64 %.61392.ph, %.61409.ph
  %1150 = mul nsw i64 %1149, %.61425.ph
  %1151 = getelementptr inbounds i8, ptr %0, i64 1080
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1150, ptr noundef nonnull %1151, ptr noundef %1)
  %.not1495.not1604 = icmp sgt i64 %.61425.ph, 0
  br i1 %.not1495.not1604, label %.preheader1533.lr.ph, label %._crit_edge1607

.preheader1533.lr.ph:                             ; preds = %1142
  %.not1496.not1592 = icmp sgt i64 %.61392.ph, 0
  %1152 = getelementptr inbounds i8, ptr %0, i64 184
  %1153 = getelementptr inbounds i8, ptr %0, i64 1136
  %.not1497.not1597 = icmp sgt i64 %.61409.ph, 0
  %1154 = getelementptr inbounds i8, ptr %0, i64 456
  %xtraiter1938 = and i64 %.61392.ph, 1
  %1155 = icmp eq i64 %.61392.ph, 1
  %unroll_iter1942 = and i64 %.61392.ph, 9223372036854775806
  %lcmp.mod1940.not = icmp eq i64 %xtraiter1938, 0
  %xtraiter1944 = and i64 %.61409.ph, 1
  %1156 = icmp eq i64 %.61409.ph, 1
  %unroll_iter1948 = and i64 %.61409.ph, 9223372036854775806
  %lcmp.mod1946.not = icmp eq i64 %xtraiter1944, 0
  br label %.preheader1533

.preheader1533:                                   ; preds = %.preheader1533.lr.ph, %._crit_edge1601
  %.111606 = phi i64 [ 0, %.preheader1533.lr.ph ], [ %.13.lcssa, %._crit_edge1601 ]
  %.1913281605 = phi i64 [ 0, %.preheader1533.lr.ph ], [ %1203, %._crit_edge1601 ]
  br i1 %.not1496.not1592, label %.lr.ph1595.preheader, label %.preheader1532

.lr.ph1595.preheader:                             ; preds = %.preheader1533
  br i1 %1155, label %.preheader1532.loopexit.unr-lcssa, label %.lr.ph1595

.preheader1532.loopexit.unr-lcssa:                ; preds = %.lr.ph1595, %.lr.ph1595.preheader
  %.lcssa1871.ph = phi i64 [ poison, %.lr.ph1595.preheader ], [ %1175, %.lr.ph1595 ]
  %.121594.unr = phi i64 [ %.111606, %.lr.ph1595.preheader ], [ %1175, %.lr.ph1595 ]
  %.251593.unr = phi i64 [ 0, %.lr.ph1595.preheader ], [ %1176, %.lr.ph1595 ]
  br i1 %lcmp.mod1940.not, label %.preheader1532, label %.lr.ph1595.epil

.lr.ph1595.epil:                                  ; preds = %.preheader1532.loopexit.unr-lcssa
  %1157 = load ptr, ptr %1152, align 8, !tbaa !80
  %1158 = getelementptr inbounds double, ptr %1157, i64 %.251593.unr
  %1159 = load double, ptr %1158, align 8, !tbaa !82
  %1160 = load ptr, ptr %1153, align 8, !tbaa !80
  %1161 = getelementptr inbounds double, ptr %1160, i64 %.121594.unr
  store double %1159, ptr %1161, align 8, !tbaa !82
  %1162 = add nsw i64 %.121594.unr, 1
  br label %.preheader1532

.preheader1532:                                   ; preds = %.lr.ph1595.epil, %.preheader1532.loopexit.unr-lcssa, %.preheader1533
  %.12.lcssa = phi i64 [ %.111606, %.preheader1533 ], [ %.lcssa1871.ph, %.preheader1532.loopexit.unr-lcssa ], [ %1162, %.lr.ph1595.epil ]
  br i1 %.not1497.not1597, label %.lr.ph1600.preheader, label %._crit_edge1601

.lr.ph1600.preheader:                             ; preds = %.preheader1532
  br i1 %1156, label %._crit_edge1601.loopexit.unr-lcssa, label %.lr.ph1600

.lr.ph1595:                                       ; preds = %.lr.ph1595.preheader, %.lr.ph1595
  %.121594 = phi i64 [ %1175, %.lr.ph1595 ], [ %.111606, %.lr.ph1595.preheader ]
  %.251593 = phi i64 [ %1176, %.lr.ph1595 ], [ 0, %.lr.ph1595.preheader ]
  %niter1943 = phi i64 [ %niter1943.next.1, %.lr.ph1595 ], [ 0, %.lr.ph1595.preheader ]
  %1163 = load ptr, ptr %1152, align 8, !tbaa !80
  %1164 = getelementptr inbounds double, ptr %1163, i64 %.251593
  %1165 = load double, ptr %1164, align 8, !tbaa !82
  %1166 = load ptr, ptr %1153, align 8, !tbaa !80
  %1167 = getelementptr inbounds double, ptr %1166, i64 %.121594
  store double %1165, ptr %1167, align 8, !tbaa !82
  %1168 = or disjoint i64 %.251593, 1
  %1169 = load ptr, ptr %1152, align 8, !tbaa !80
  %1170 = getelementptr inbounds double, ptr %1169, i64 %1168
  %1171 = load double, ptr %1170, align 8, !tbaa !82
  %1172 = load ptr, ptr %1153, align 8, !tbaa !80
  %1173 = getelementptr double, ptr %1172, i64 %.121594
  %1174 = getelementptr i8, ptr %1173, i64 8
  store double %1171, ptr %1174, align 8, !tbaa !82
  %1175 = add nsw i64 %.121594, 2
  %1176 = add nuw nsw i64 %.251593, 2
  %niter1943.next.1 = add i64 %niter1943, 2
  %niter1943.ncmp.1 = icmp eq i64 %niter1943.next.1, %unroll_iter1942
  br i1 %niter1943.ncmp.1, label %.preheader1532.loopexit.unr-lcssa, label %.lr.ph1595, !llvm.loop !152

.lr.ph1600:                                       ; preds = %.lr.ph1600.preheader, %.lr.ph1600
  %.131599 = phi i64 [ %1193, %.lr.ph1600 ], [ %.12.lcssa, %.lr.ph1600.preheader ]
  %.261598 = phi i64 [ %1194, %.lr.ph1600 ], [ 0, %.lr.ph1600.preheader ]
  %niter1949 = phi i64 [ %niter1949.next.1, %.lr.ph1600 ], [ 0, %.lr.ph1600.preheader ]
  %1177 = load ptr, ptr %1154, align 8, !tbaa !80
  %1178 = getelementptr inbounds ptr, ptr %1177, i64 %.1913281605
  %1179 = load ptr, ptr %1178, align 8, !tbaa !110
  %1180 = getelementptr inbounds double, ptr %1179, i64 %.261598
  %1181 = load double, ptr %1180, align 8, !tbaa !82
  %1182 = load ptr, ptr %1153, align 8, !tbaa !80
  %1183 = getelementptr inbounds double, ptr %1182, i64 %.131599
  store double %1181, ptr %1183, align 8, !tbaa !82
  %1184 = or disjoint i64 %.261598, 1
  %1185 = load ptr, ptr %1154, align 8, !tbaa !80
  %1186 = getelementptr inbounds ptr, ptr %1185, i64 %.1913281605
  %1187 = load ptr, ptr %1186, align 8, !tbaa !110
  %1188 = getelementptr inbounds double, ptr %1187, i64 %1184
  %1189 = load double, ptr %1188, align 8, !tbaa !82
  %1190 = load ptr, ptr %1153, align 8, !tbaa !80
  %1191 = getelementptr double, ptr %1190, i64 %.131599
  %1192 = getelementptr i8, ptr %1191, i64 8
  store double %1189, ptr %1192, align 8, !tbaa !82
  %1193 = add nsw i64 %.131599, 2
  %1194 = add nuw nsw i64 %.261598, 2
  %niter1949.next.1 = add i64 %niter1949, 2
  %niter1949.ncmp.1 = icmp eq i64 %niter1949.next.1, %unroll_iter1948
  br i1 %niter1949.ncmp.1, label %._crit_edge1601.loopexit.unr-lcssa, label %.lr.ph1600, !llvm.loop !153

._crit_edge1601.loopexit.unr-lcssa:               ; preds = %.lr.ph1600, %.lr.ph1600.preheader
  %.lcssa1872.ph = phi i64 [ poison, %.lr.ph1600.preheader ], [ %1193, %.lr.ph1600 ]
  %.131599.unr = phi i64 [ %.12.lcssa, %.lr.ph1600.preheader ], [ %1193, %.lr.ph1600 ]
  %.261598.unr = phi i64 [ 0, %.lr.ph1600.preheader ], [ %1194, %.lr.ph1600 ]
  br i1 %lcmp.mod1946.not, label %._crit_edge1601, label %.lr.ph1600.epil

.lr.ph1600.epil:                                  ; preds = %._crit_edge1601.loopexit.unr-lcssa
  %1195 = load ptr, ptr %1154, align 8, !tbaa !80
  %1196 = getelementptr inbounds ptr, ptr %1195, i64 %.1913281605
  %1197 = load ptr, ptr %1196, align 8, !tbaa !110
  %1198 = getelementptr inbounds double, ptr %1197, i64 %.261598.unr
  %1199 = load double, ptr %1198, align 8, !tbaa !82
  %1200 = load ptr, ptr %1153, align 8, !tbaa !80
  %1201 = getelementptr inbounds double, ptr %1200, i64 %.131599.unr
  store double %1199, ptr %1201, align 8, !tbaa !82
  %1202 = add nsw i64 %.131599.unr, 1
  br label %._crit_edge1601

._crit_edge1601:                                  ; preds = %.lr.ph1600.epil, %._crit_edge1601.loopexit.unr-lcssa, %.preheader1532
  %.13.lcssa = phi i64 [ %.12.lcssa, %.preheader1532 ], [ %.lcssa1872.ph, %._crit_edge1601.loopexit.unr-lcssa ], [ %1202, %.lr.ph1600.epil ]
  %1203 = add nuw nsw i64 %.1913281605, 1
  %exitcond1806.not = icmp eq i64 %1203, %.61425.ph
  br i1 %exitcond1806.not, label %._crit_edge1607.loopexit, label %.preheader1533, !llvm.loop !154

._crit_edge1607.loopexit:                         ; preds = %._crit_edge1601
  %smax1805 = tail call i64 @llvm.smax.i64(i64 %.61409.ph, i64 0)
  br label %._crit_edge1607

._crit_edge1607:                                  ; preds = %._crit_edge1607.loopexit, %1142
  %.191328.lcssa = phi i64 [ 0, %1142 ], [ %.61425.ph, %._crit_edge1607.loopexit ]
  %.24.lcssa = phi i64 [ %.81295.ph, %1142 ], [ %smax1805, %._crit_edge1607.loopexit ]
  %.11.lcssa = phi i64 [ 0, %1142 ], [ %.13.lcssa, %._crit_edge1607.loopexit ]
  %1204 = getelementptr inbounds i8, ptr %0, i64 1144
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.61425.ph, ptr noundef nonnull %1204, ptr noundef %1)
  br label %1725

1205:                                             ; preds = %45, %1116
  %.121431 = phi i64 [ %.111430, %1116 ], [ %.01419, %45 ]
  %.121415 = phi i64 [ %.111414, %1116 ], [ %.01403, %45 ]
  %.121398 = phi i64 [ %.111397, %1116 ], [ %.01386, %45 ]
  %.121378 = phi double [ %.111377, %1116 ], [ %.01366, %45 ]
  %.71361 = phi double [ %.61360, %1116 ], [ %.01354, %45 ]
  %.27 = phi i64 [ %.23, %1116 ], [ %.01287, %45 ]
  %.not1482.not1611 = icmp sgt i64 %.121431, 0
  br i1 %.not1482.not1611, label %.lr.ph1615, label %._crit_edge1616

.lr.ph1615:                                       ; preds = %1205
  %1206 = getelementptr inbounds i8, ptr %0, i64 1200
  %1207 = getelementptr inbounds i8, ptr %0, i64 2400
  %1208 = getelementptr inbounds i8, ptr %0, i64 2856
  %1209 = getelementptr inbounds i8, ptr %0, i64 520
  %1210 = getelementptr inbounds i8, ptr %0, i64 2888
  %1211 = getelementptr inbounds i8, ptr %0, i64 2864
  %1212 = getelementptr inbounds i8, ptr %0, i64 2872
  %1213 = getelementptr inbounds i8, ptr %0, i64 2880
  br label %1214

1214:                                             ; preds = %.lr.ph1615, %1261
  %.2013291613 = phi i64 [ 0, %.lr.ph1615 ], [ %1269, %1261 ]
  %.113391612 = phi double [ 0.000000e+00, %.lr.ph1615 ], [ %.21340, %1261 ]
  %1215 = load ptr, ptr %1206, align 8, !tbaa !80
  %1216 = getelementptr inbounds double, ptr %1215, i64 %.2013291613
  %1217 = load double, ptr %1216, align 8, !tbaa !82
  %1218 = load ptr, ptr %1207, align 8, !tbaa !80
  %1219 = getelementptr inbounds double, ptr %1218, i64 %.2013291613
  %1220 = load double, ptr %1219, align 8, !tbaa !82
  %1221 = load double, ptr %1208, align 8, !tbaa !155
  %1222 = load ptr, ptr %1209, align 8, !tbaa !80
  %1223 = getelementptr inbounds double, ptr %1222, i64 %.2013291613
  %1224 = load double, ptr %1223, align 8, !tbaa !82
  %1225 = fsub double %1217, %1224
  %1226 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1225, ptr noundef %1)
  %1227 = fadd double %1221, %1226
  store double %1227, ptr %1208, align 8, !tbaa !155
  %1228 = load double, ptr %1210, align 8, !tbaa !156
  %1229 = load ptr, ptr %1209, align 8, !tbaa !80
  %1230 = getelementptr inbounds double, ptr %1229, i64 %.2013291613
  %1231 = load double, ptr %1230, align 8, !tbaa !82
  %1232 = fsub double %1217, %1231
  %1233 = fmul double %1220, %1232
  %1234 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1233, ptr noundef %1)
  %1235 = fadd double %1228, %1234
  store double %1235, ptr %1210, align 8, !tbaa !156
  %1236 = load double, ptr %1211, align 8, !tbaa !157
  %1237 = load ptr, ptr %1209, align 8, !tbaa !80
  %1238 = getelementptr inbounds double, ptr %1237, i64 %.2013291613
  %1239 = load double, ptr %1238, align 8, !tbaa !82
  %1240 = fsub double %1217, %1239
  %1241 = tail call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1240, ptr noundef %1)
  %1242 = fadd double %1236, %1241
  store double %1242, ptr %1211, align 8, !tbaa !157
  %1243 = load ptr, ptr %1209, align 8, !tbaa !80
  %1244 = getelementptr inbounds double, ptr %1243, i64 %.2013291613
  %1245 = load double, ptr %1244, align 8, !tbaa !82
  %1246 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1245, double noundef 0.000000e+00)
  br i1 %1246, label %1247, label %1261

1247:                                             ; preds = %1214
  %1248 = load double, ptr %1212, align 8, !tbaa !158
  %1249 = load ptr, ptr %1209, align 8, !tbaa !80
  %1250 = getelementptr inbounds double, ptr %1249, i64 %.2013291613
  %1251 = load double, ptr %1250, align 8, !tbaa !82
  %1252 = fsub double %1217, %1251
  %1253 = tail call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1252, ptr noundef %1)
  %1254 = load ptr, ptr %1209, align 8, !tbaa !80
  %1255 = getelementptr inbounds double, ptr %1254, i64 %.2013291613
  %1256 = load double, ptr %1255, align 8, !tbaa !82
  %1257 = tail call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1256, ptr noundef %1)
  %1258 = fdiv double %1253, %1257
  %1259 = fadd double %1248, %1258
  store double %1259, ptr %1212, align 8, !tbaa !158
  %1260 = fadd double %.113391612, 1.000000e+00
  br label %1261

1261:                                             ; preds = %1247, %1214
  %.21340 = phi double [ %1260, %1247 ], [ %.113391612, %1214 ]
  %1262 = load double, ptr %1213, align 8, !tbaa !159
  %1263 = load ptr, ptr %1209, align 8, !tbaa !80
  %1264 = getelementptr inbounds double, ptr %1263, i64 %.2013291613
  %1265 = load double, ptr %1264, align 8, !tbaa !82
  %1266 = fsub double %1217, %1265
  %1267 = tail call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1266, ptr noundef %1)
  %1268 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1262, double noundef %1267, ptr noundef %1)
  store double %1268, ptr %1213, align 8, !tbaa !159
  %1269 = add nuw nsw i64 %.2013291613, 1
  %exitcond1807.not = icmp eq i64 %1269, %.121431
  br i1 %exitcond1807.not, label %._crit_edge1616, label %1214, !llvm.loop !160

._crit_edge1616:                                  ; preds = %1261, %1205
  %.131379.lcssa = phi double [ %.121378, %1205 ], [ %1217, %1261 ]
  %.81362.lcssa = phi double [ %.71361, %1205 ], [ %1220, %1261 ]
  %.11339.lcssa = phi double [ 0.000000e+00, %1205 ], [ %.21340, %1261 ]
  %1270 = getelementptr inbounds i8, ptr %0, i64 2856
  %1271 = load double, ptr %1270, align 8, !tbaa !155
  %1272 = sitofp i64 %.121431 to double
  %1273 = fdiv double %1271, %1272
  %1274 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1273, ptr noundef %1)
  store double %1274, ptr %1270, align 8, !tbaa !155
  %1275 = getelementptr inbounds i8, ptr %0, i64 2888
  %1276 = load double, ptr %1275, align 8, !tbaa !156
  %1277 = fdiv double %1276, %1272
  %1278 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1277, ptr noundef %1)
  store double %1278, ptr %1275, align 8, !tbaa !156
  %1279 = getelementptr inbounds i8, ptr %0, i64 2864
  %1280 = load double, ptr %1279, align 8, !tbaa !157
  %1281 = fdiv double %1280, %1272
  store double %1281, ptr %1279, align 8, !tbaa !157
  %1282 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %.11339.lcssa, double noundef 0.000000e+00)
  br i1 %1282, label %1283, label %1287

1283:                                             ; preds = %._crit_edge1616
  %1284 = getelementptr inbounds i8, ptr %0, i64 2872
  %1285 = load double, ptr %1284, align 8, !tbaa !158
  %1286 = fdiv double %1285, %.11339.lcssa
  store double %1286, ptr %1284, align 8, !tbaa !158
  br label %1287

1287:                                             ; preds = %1283, %._crit_edge1616
  %1288 = getelementptr inbounds i8, ptr %0, i64 2664
  tail call void @_ZN11alglib_impl23rmatrixsetlengthatleastEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef nonnull %1288, i64 noundef %.121431, i64 noundef %.121398, ptr noundef %1)
  %1289 = getelementptr inbounds i8, ptr %0, i64 2600
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %1289, i64 noundef %.121431, ptr noundef %1)
  %1290 = getelementptr inbounds i8, ptr %0, i64 2536
  tail call void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %1290, i64 noundef %.121398, ptr noundef %1)
  %1291 = getelementptr inbounds i8, ptr %0, i64 624
  %1292 = load double, ptr %1291, align 8, !tbaa !161
  %1293 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1292, double noundef 0.000000e+00)
  %1294 = load i64, ptr %0, align 8, !tbaa !102
  %.not1489 = icmp eq i64 %1294, 1
  br i1 %1293, label %1550, label %1295

1295:                                             ; preds = %1287
  br i1 %.not1489, label %1296, label %1392

1296:                                             ; preds = %1295
  tail call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1297 = getelementptr inbounds i8, ptr %0, i64 745
  store i8 1, ptr %1297, align 1, !tbaa !121
  br label %1298

1298:                                             ; preds = %1388, %1296
  %.11439 = phi double [ %.01438, %1296 ], [ %.21440, %1388 ]
  %.131432 = phi i64 [ %.121431, %1296 ], [ %.01419, %1388 ]
  %.131416 = phi i64 [ %.121415, %1296 ], [ %.01403, %1388 ]
  %.131399 = phi i64 [ %.121398, %1296 ], [ %.01386, %1388 ]
  %.141380 = phi double [ %.131379.lcssa, %1296 ], [ %.01366, %1388 ]
  %.91363 = phi double [ %.81362.lcssa, %1296 ], [ %.01354, %1388 ]
  %.31341 = phi double [ %.11339.lcssa, %1296 ], [ %.01338, %1388 ]
  %.211330 = phi i64 [ 0, %1296 ], [ %1389, %1388 ]
  %.28 = phi i64 [ %.27, %1296 ], [ %.29, %1388 ]
  %.not1484 = icmp slt i64 %.211330, %.131432
  br i1 %.not1484, label %1299, label %1390

1299:                                             ; preds = %1298
  %1300 = getelementptr inbounds i8, ptr %0, i64 816
  %1301 = load ptr, ptr %1300, align 8, !tbaa !80
  %1302 = getelementptr inbounds i8, ptr %0, i64 456
  %1303 = load ptr, ptr %1302, align 8, !tbaa !80
  %1304 = getelementptr inbounds ptr, ptr %1303, i64 %.211330
  %1305 = load ptr, ptr %1304, align 8, !tbaa !110
  %1306 = add nsw i64 %.131416, -1
  %1307 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1306)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1301, i64 noundef 1, ptr noundef %1305, i64 noundef 1, i64 noundef %1307)
  %1308 = getelementptr inbounds i8, ptr %0, i64 752
  store i64 %.211330, ptr %1308, align 8, !tbaa !120
  br label %1725

1309:                                             ; preds = %45
  %1310 = getelementptr inbounds i8, ptr %0, i64 888
  %1311 = load double, ptr %1310, align 8, !tbaa !114
  %1312 = getelementptr inbounds i8, ptr %0, i64 2656
  %1313 = load ptr, ptr %1312, align 8, !tbaa !80
  %1314 = getelementptr inbounds double, ptr %1313, i64 %.01309
  store double %1311, ptr %1314, align 8, !tbaa !82
  br label %1315

1315:                                             ; preds = %1372, %1309
  %.21440 = phi double [ %.01438, %1309 ], [ %1374, %1372 ]
  %.29 = phi i64 [ 0, %1309 ], [ %1387, %1372 ]
  %.not = icmp slt i64 %.29, %.01386
  br i1 %.not, label %1316, label %1388

1316:                                             ; preds = %1315
  %1317 = getelementptr inbounds i8, ptr %0, i64 880
  %1318 = load ptr, ptr %1317, align 8, !tbaa !80
  %1319 = getelementptr inbounds double, ptr %1318, i64 %.29
  %1320 = load double, ptr %1319, align 8, !tbaa !82
  %1321 = getelementptr inbounds i8, ptr %0, i64 624
  %1322 = load double, ptr %1321, align 8, !tbaa !161
  %1323 = getelementptr inbounds i8, ptr %0, i64 248
  %1324 = load ptr, ptr %1323, align 8, !tbaa !80
  %1325 = getelementptr inbounds double, ptr %1324, i64 %.29
  %1326 = load double, ptr %1325, align 8, !tbaa !82
  %1327 = fneg double %1322
  %1328 = tail call double @llvm.fmuladd.f64(double %1327, double %1326, double %1320)
  store double %1328, ptr %1319, align 8, !tbaa !82
  %1329 = getelementptr inbounds i8, ptr %0, i64 312
  %1330 = load ptr, ptr %1329, align 8, !tbaa !80
  %1331 = getelementptr inbounds double, ptr %1330, i64 %.29
  %1332 = load double, ptr %1331, align 8, !tbaa !82
  %1333 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1332, ptr noundef %1)
  br i1 %1333, label %1334, label %1725

1334:                                             ; preds = %1316
  %1335 = load ptr, ptr %1317, align 8, !tbaa !80
  %1336 = getelementptr inbounds double, ptr %1335, i64 %.29
  %1337 = load double, ptr %1336, align 8, !tbaa !82
  %1338 = load ptr, ptr %1329, align 8, !tbaa !80
  %1339 = getelementptr inbounds double, ptr %1338, i64 %.29
  %1340 = load double, ptr %1339, align 8, !tbaa !82
  %1341 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1337, double noundef %1340, ptr noundef %1)
  %1342 = load ptr, ptr %1317, align 8, !tbaa !80
  %1343 = getelementptr inbounds double, ptr %1342, i64 %.29
  store double %1341, ptr %1343, align 8, !tbaa !82
  br label %1725

1344:                                             ; preds = %45
  %1345 = getelementptr inbounds i8, ptr %0, i64 888
  %1346 = load double, ptr %1345, align 8, !tbaa !114
  %1347 = getelementptr inbounds i8, ptr %0, i64 624
  %1348 = load double, ptr %1347, align 8, !tbaa !161
  %1349 = getelementptr inbounds i8, ptr %0, i64 248
  %1350 = load ptr, ptr %1349, align 8, !tbaa !80
  %1351 = getelementptr inbounds double, ptr %1350, i64 %.01287
  %1352 = load double, ptr %1351, align 8, !tbaa !82
  %1353 = tail call double @llvm.fmuladd.f64(double %1348, double %1352, double %.01366)
  %1354 = getelementptr inbounds i8, ptr %0, i64 880
  %1355 = load ptr, ptr %1354, align 8, !tbaa !80
  %1356 = getelementptr inbounds double, ptr %1355, i64 %.01287
  store double %1353, ptr %1356, align 8, !tbaa !82
  %1357 = getelementptr inbounds i8, ptr %0, i64 376
  %1358 = load ptr, ptr %1357, align 8, !tbaa !80
  %1359 = getelementptr inbounds double, ptr %1358, i64 %.01287
  %1360 = load double, ptr %1359, align 8, !tbaa !82
  %1361 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1360, ptr noundef %1)
  br i1 %1361, label %1362, label %1725

1362:                                             ; preds = %1344
  %1363 = load ptr, ptr %1354, align 8, !tbaa !80
  %1364 = getelementptr inbounds double, ptr %1363, i64 %.01287
  %1365 = load double, ptr %1364, align 8, !tbaa !82
  %1366 = load ptr, ptr %1357, align 8, !tbaa !80
  %1367 = getelementptr inbounds double, ptr %1366, i64 %.01287
  %1368 = load double, ptr %1367, align 8, !tbaa !82
  %1369 = tail call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1365, double noundef %1368, ptr noundef %1)
  %1370 = load ptr, ptr %1354, align 8, !tbaa !80
  %1371 = getelementptr inbounds double, ptr %1370, i64 %.01287
  store double %1369, ptr %1371, align 8, !tbaa !82
  br label %1725

1372:                                             ; preds = %45
  %1373 = getelementptr inbounds i8, ptr %0, i64 888
  %1374 = load double, ptr %1373, align 8, !tbaa !114
  %1375 = getelementptr inbounds i8, ptr %0, i64 880
  %1376 = load ptr, ptr %1375, align 8, !tbaa !80
  %1377 = getelementptr inbounds double, ptr %1376, i64 %.01287
  store double %.01366, ptr %1377, align 8, !tbaa !82
  %1378 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %.01442, double noundef %.01448)
  %1379 = fsub double %1374, %.01446
  %1380 = fsub double %.01442, %.01448
  %1381 = fdiv double %1379, %1380
  %.sink = select i1 %1378, double %1381, double 0.000000e+00
  %1382 = getelementptr inbounds i8, ptr %0, i64 2736
  %1383 = load ptr, ptr %1382, align 8, !tbaa !80
  %1384 = getelementptr inbounds ptr, ptr %1383, i64 %.01309
  %1385 = load ptr, ptr %1384, align 8, !tbaa !110
  %1386 = getelementptr inbounds double, ptr %1385, i64 %.01287
  store double %.sink, ptr %1386, align 8, !tbaa !82
  %1387 = add nsw i64 %.01287, 1
  br label %1315

1388:                                             ; preds = %1315
  %1389 = add nsw i64 %.01309, 1
  br label %1298

1390:                                             ; preds = %1298
  %1391 = getelementptr inbounds i8, ptr %0, i64 745
  store i8 0, ptr %1391, align 1, !tbaa !121
  br label %.loopexit1541

1392:                                             ; preds = %1295
  %1393 = getelementptr inbounds i8, ptr %0, i64 960
  store i64 3, ptr %1393, align 8, !tbaa !101
  %1394 = getelementptr inbounds i8, ptr %0, i64 1040
  store i64 %.121431, ptr %1394, align 8, !tbaa !106
  %1395 = getelementptr inbounds i8, ptr %0, i64 1048
  store i64 1, ptr %1395, align 8, !tbaa !107
  %1396 = getelementptr inbounds i8, ptr %0, i64 1056
  store i64 %.121398, ptr %1396, align 8, !tbaa !108
  %1397 = getelementptr inbounds i8, ptr %0, i64 1064
  store i64 %.121415, ptr %1397, align 8, !tbaa !109
  %1398 = getelementptr inbounds i8, ptr %0, i64 1072
  store i64 2, ptr %1398, align 8, !tbaa !141
  %1399 = add nsw i64 %.121398, %.121415
  %1400 = shl nsw i64 %.121398, 2
  %1401 = add nsw i64 %1399, %1400
  %1402 = mul nsw i64 %1401, %.121431
  %1403 = getelementptr inbounds i8, ptr %0, i64 1080
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1402, ptr noundef nonnull %1403, ptr noundef %1)
  br i1 %.not1482.not1611, label %.preheader1531.lr.ph, label %._crit_edge1646

.preheader1531.lr.ph:                             ; preds = %1392
  %.not1486.not1620 = icmp sgt i64 %.121398, 0
  %1404 = getelementptr inbounds i8, ptr %0, i64 184
  %1405 = getelementptr inbounds i8, ptr %0, i64 1136
  %.not1487.not1625 = icmp sgt i64 %.121415, 0
  %1406 = getelementptr inbounds i8, ptr %0, i64 456
  %1407 = getelementptr inbounds i8, ptr %0, i64 248
  %1408 = getelementptr inbounds i8, ptr %0, i64 312
  %1409 = getelementptr inbounds i8, ptr %0, i64 376
  %xtraiter1950 = and i64 %.121398, 1
  %1410 = icmp eq i64 %.121398, 1
  %unroll_iter1954 = and i64 %.121398, 9223372036854775806
  %lcmp.mod1952.not = icmp eq i64 %xtraiter1950, 0
  %xtraiter1956 = and i64 %.121415, 1
  %1411 = icmp eq i64 %.121415, 1
  %unroll_iter1960 = and i64 %.121415, 9223372036854775806
  %lcmp.mod1958.not = icmp eq i64 %xtraiter1956, 0
  br label %.preheader1531

.preheader1531:                                   ; preds = %.preheader1531.lr.ph, %._crit_edge1634
  %.141645 = phi i64 [ 0, %.preheader1531.lr.ph ], [ %.17.lcssa, %._crit_edge1634 ]
  %.2213311644 = phi i64 [ 0, %.preheader1531.lr.ph ], [ %1512, %._crit_edge1634 ]
  %.113451643 = phi double [ %.01344, %.preheader1531.lr.ph ], [ %.21346.lcssa, %._crit_edge1634 ]
  %.113501642 = phi double [ %.01349, %.preheader1531.lr.ph ], [ %.21351.lcssa, %._crit_edge1634 ]
  %.1513811641 = phi double [ %.131379.lcssa, %.preheader1531.lr.ph ], [ %.161382.lcssa, %._crit_edge1634 ]
  br i1 %.not1486.not1620, label %.lr.ph1623.preheader, label %.preheader1530

.lr.ph1623.preheader:                             ; preds = %.preheader1531
  br i1 %1410, label %.preheader1530.loopexit.unr-lcssa, label %.lr.ph1623

.preheader1530.loopexit.unr-lcssa:                ; preds = %.lr.ph1623, %.lr.ph1623.preheader
  %.lcssa1866.ph = phi i64 [ poison, %.lr.ph1623.preheader ], [ %1430, %.lr.ph1623 ]
  %.151622.unr = phi i64 [ %.141645, %.lr.ph1623.preheader ], [ %1430, %.lr.ph1623 ]
  %.311621.unr = phi i64 [ 0, %.lr.ph1623.preheader ], [ %1431, %.lr.ph1623 ]
  br i1 %lcmp.mod1952.not, label %.preheader1530, label %.lr.ph1623.epil

.lr.ph1623.epil:                                  ; preds = %.preheader1530.loopexit.unr-lcssa
  %1412 = load ptr, ptr %1404, align 8, !tbaa !80
  %1413 = getelementptr inbounds double, ptr %1412, i64 %.311621.unr
  %1414 = load double, ptr %1413, align 8, !tbaa !82
  %1415 = load ptr, ptr %1405, align 8, !tbaa !80
  %1416 = getelementptr inbounds double, ptr %1415, i64 %.151622.unr
  store double %1414, ptr %1416, align 8, !tbaa !82
  %1417 = add nsw i64 %.151622.unr, 1
  br label %.preheader1530

.preheader1530:                                   ; preds = %.lr.ph1623.epil, %.preheader1530.loopexit.unr-lcssa, %.preheader1531
  %.15.lcssa = phi i64 [ %.141645, %.preheader1531 ], [ %.lcssa1866.ph, %.preheader1530.loopexit.unr-lcssa ], [ %1417, %.lr.ph1623.epil ]
  br i1 %.not1487.not1625, label %.lr.ph1628.preheader, label %.preheader1529

.lr.ph1628.preheader:                             ; preds = %.preheader1530
  br i1 %1411, label %.preheader1529.loopexit.unr-lcssa, label %.lr.ph1628

.lr.ph1623:                                       ; preds = %.lr.ph1623.preheader, %.lr.ph1623
  %.151622 = phi i64 [ %1430, %.lr.ph1623 ], [ %.141645, %.lr.ph1623.preheader ]
  %.311621 = phi i64 [ %1431, %.lr.ph1623 ], [ 0, %.lr.ph1623.preheader ]
  %niter1955 = phi i64 [ %niter1955.next.1, %.lr.ph1623 ], [ 0, %.lr.ph1623.preheader ]
  %1418 = load ptr, ptr %1404, align 8, !tbaa !80
  %1419 = getelementptr inbounds double, ptr %1418, i64 %.311621
  %1420 = load double, ptr %1419, align 8, !tbaa !82
  %1421 = load ptr, ptr %1405, align 8, !tbaa !80
  %1422 = getelementptr inbounds double, ptr %1421, i64 %.151622
  store double %1420, ptr %1422, align 8, !tbaa !82
  %1423 = or disjoint i64 %.311621, 1
  %1424 = load ptr, ptr %1404, align 8, !tbaa !80
  %1425 = getelementptr inbounds double, ptr %1424, i64 %1423
  %1426 = load double, ptr %1425, align 8, !tbaa !82
  %1427 = load ptr, ptr %1405, align 8, !tbaa !80
  %1428 = getelementptr double, ptr %1427, i64 %.151622
  %1429 = getelementptr i8, ptr %1428, i64 8
  store double %1426, ptr %1429, align 8, !tbaa !82
  %1430 = add nsw i64 %.151622, 2
  %1431 = add nuw nsw i64 %.311621, 2
  %niter1955.next.1 = add i64 %niter1955, 2
  %niter1955.ncmp.1 = icmp eq i64 %niter1955.next.1, %unroll_iter1954
  br i1 %niter1955.ncmp.1, label %.preheader1530.loopexit.unr-lcssa, label %.lr.ph1623, !llvm.loop !162

.preheader1529.loopexit.unr-lcssa:                ; preds = %.lr.ph1628, %.lr.ph1628.preheader
  %.lcssa1867.ph = phi i64 [ poison, %.lr.ph1628.preheader ], [ %1456, %.lr.ph1628 ]
  %.161627.unr = phi i64 [ %.15.lcssa, %.lr.ph1628.preheader ], [ %1456, %.lr.ph1628 ]
  %.321626.unr = phi i64 [ 0, %.lr.ph1628.preheader ], [ %1457, %.lr.ph1628 ]
  br i1 %lcmp.mod1958.not, label %.preheader1529, label %.lr.ph1628.epil

.lr.ph1628.epil:                                  ; preds = %.preheader1529.loopexit.unr-lcssa
  %1432 = load ptr, ptr %1406, align 8, !tbaa !80
  %1433 = getelementptr inbounds ptr, ptr %1432, i64 %.2213311644
  %1434 = load ptr, ptr %1433, align 8, !tbaa !110
  %1435 = getelementptr inbounds double, ptr %1434, i64 %.321626.unr
  %1436 = load double, ptr %1435, align 8, !tbaa !82
  %1437 = load ptr, ptr %1405, align 8, !tbaa !80
  %1438 = getelementptr inbounds double, ptr %1437, i64 %.161627.unr
  store double %1436, ptr %1438, align 8, !tbaa !82
  %1439 = add nsw i64 %.161627.unr, 1
  br label %.preheader1529

.preheader1529:                                   ; preds = %.lr.ph1628.epil, %.preheader1529.loopexit.unr-lcssa, %.preheader1530
  %.16.lcssa = phi i64 [ %.15.lcssa, %.preheader1530 ], [ %.lcssa1867.ph, %.preheader1529.loopexit.unr-lcssa ], [ %1439, %.lr.ph1628.epil ]
  br i1 %.not1486.not1620, label %.lr.ph1633, label %._crit_edge1634

.lr.ph1628:                                       ; preds = %.lr.ph1628.preheader, %.lr.ph1628
  %.161627 = phi i64 [ %1456, %.lr.ph1628 ], [ %.15.lcssa, %.lr.ph1628.preheader ]
  %.321626 = phi i64 [ %1457, %.lr.ph1628 ], [ 0, %.lr.ph1628.preheader ]
  %niter1961 = phi i64 [ %niter1961.next.1, %.lr.ph1628 ], [ 0, %.lr.ph1628.preheader ]
  %1440 = load ptr, ptr %1406, align 8, !tbaa !80
  %1441 = getelementptr inbounds ptr, ptr %1440, i64 %.2213311644
  %1442 = load ptr, ptr %1441, align 8, !tbaa !110
  %1443 = getelementptr inbounds double, ptr %1442, i64 %.321626
  %1444 = load double, ptr %1443, align 8, !tbaa !82
  %1445 = load ptr, ptr %1405, align 8, !tbaa !80
  %1446 = getelementptr inbounds double, ptr %1445, i64 %.161627
  store double %1444, ptr %1446, align 8, !tbaa !82
  %1447 = or disjoint i64 %.321626, 1
  %1448 = load ptr, ptr %1406, align 8, !tbaa !80
  %1449 = getelementptr inbounds ptr, ptr %1448, i64 %.2213311644
  %1450 = load ptr, ptr %1449, align 8, !tbaa !110
  %1451 = getelementptr inbounds double, ptr %1450, i64 %1447
  %1452 = load double, ptr %1451, align 8, !tbaa !82
  %1453 = load ptr, ptr %1405, align 8, !tbaa !80
  %1454 = getelementptr double, ptr %1453, i64 %.161627
  %1455 = getelementptr i8, ptr %1454, i64 8
  store double %1452, ptr %1455, align 8, !tbaa !82
  %1456 = add nsw i64 %.161627, 2
  %1457 = add nuw nsw i64 %.321626, 2
  %niter1961.next.1 = add i64 %niter1961, 2
  %niter1961.ncmp.1 = icmp eq i64 %niter1961.next.1, %unroll_iter1960
  br i1 %niter1961.ncmp.1, label %.preheader1529.loopexit.unr-lcssa, label %.lr.ph1628, !llvm.loop !163

.lr.ph1633:                                       ; preds = %.preheader1529, %1492
  %.171632 = phi i64 [ %1510, %1492 ], [ %.16.lcssa, %.preheader1529 ]
  %.331631 = phi i64 [ %1511, %1492 ], [ 0, %.preheader1529 ]
  %1458 = load double, ptr %1291, align 8, !tbaa !161
  %1459 = load ptr, ptr %1407, align 8, !tbaa !80
  %1460 = getelementptr inbounds double, ptr %1459, i64 %.331631
  %1461 = load double, ptr %1460, align 8, !tbaa !82
  %1462 = fmul double %1458, %1461
  %1463 = load ptr, ptr %1404, align 8, !tbaa !80
  %1464 = getelementptr inbounds double, ptr %1463, i64 %.331631
  %1465 = load double, ptr %1464, align 8, !tbaa !82
  %1466 = fsub double %1465, %1462
  %1467 = load ptr, ptr %1408, align 8, !tbaa !80
  %1468 = getelementptr inbounds double, ptr %1467, i64 %.331631
  %1469 = load double, ptr %1468, align 8, !tbaa !82
  %1470 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1469, ptr noundef %1)
  br i1 %1470, label %1471, label %1477

1471:                                             ; preds = %.lr.ph1633
  %1472 = load ptr, ptr %1408, align 8, !tbaa !80
  %1473 = getelementptr inbounds double, ptr %1472, i64 %.331631
  %1474 = load double, ptr %1473, align 8, !tbaa !82
  %1475 = fcmp olt double %1466, %1474
  br i1 %1475, label %1476, label %1477

1476:                                             ; preds = %1471
  br label %1477

1477:                                             ; preds = %1476, %1471, %.lr.ph1633
  %.31352 = phi double [ %1474, %1476 ], [ %1466, %1471 ], [ %1466, %.lr.ph1633 ]
  %1478 = load ptr, ptr %1404, align 8, !tbaa !80
  %1479 = getelementptr inbounds double, ptr %1478, i64 %.331631
  %1480 = load double, ptr %1479, align 8, !tbaa !82
  %1481 = fadd double %1462, %1480
  %1482 = load ptr, ptr %1409, align 8, !tbaa !80
  %1483 = getelementptr inbounds double, ptr %1482, i64 %.331631
  %1484 = load double, ptr %1483, align 8, !tbaa !82
  %1485 = tail call noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef %1484, ptr noundef %1)
  br i1 %1485, label %1486, label %1492

1486:                                             ; preds = %1477
  %1487 = load ptr, ptr %1409, align 8, !tbaa !80
  %1488 = getelementptr inbounds double, ptr %1487, i64 %.331631
  %1489 = load double, ptr %1488, align 8, !tbaa !82
  %1490 = fcmp ogt double %1481, %1489
  br i1 %1490, label %1491, label %1492

1491:                                             ; preds = %1486
  br label %1492

1492:                                             ; preds = %1491, %1486, %1477
  %.31347 = phi double [ %1489, %1491 ], [ %1481, %1486 ], [ %1481, %1477 ]
  %1493 = fcmp olt double %.31352, %.31347
  %1494 = fsub double %.31347, %.31352
  %1495 = fdiv double 1.000000e+00, %1494
  %.171383 = select i1 %1493, double %1495, double 0.000000e+00
  %1496 = load ptr, ptr %1405, align 8, !tbaa !80
  %1497 = getelementptr inbounds double, ptr %1496, i64 %.171632
  store double %.31352, ptr %1497, align 8, !tbaa !82
  %1498 = fneg double %.171383
  %1499 = load ptr, ptr %1405, align 8, !tbaa !80
  %1500 = getelementptr double, ptr %1499, i64 %.171632
  %1501 = getelementptr i8, ptr %1500, i64 8
  store double %1498, ptr %1501, align 8, !tbaa !82
  %1502 = load ptr, ptr %1405, align 8, !tbaa !80
  %1503 = getelementptr double, ptr %1502, i64 %.171632
  %1504 = getelementptr i8, ptr %1503, i64 16
  store double %.31347, ptr %1504, align 8, !tbaa !82
  %1505 = load ptr, ptr %1405, align 8, !tbaa !80
  %1506 = getelementptr double, ptr %1505, i64 %.171632
  %1507 = getelementptr i8, ptr %1506, i64 24
  store double %.171383, ptr %1507, align 8, !tbaa !82
  %1508 = load i64, ptr %1398, align 8, !tbaa !141
  %1509 = shl nsw i64 %1508, 1
  %1510 = add nsw i64 %1509, %.171632
  %1511 = add nuw nsw i64 %.331631, 1
  %exitcond1810.not = icmp eq i64 %1511, %.121398
  br i1 %exitcond1810.not, label %._crit_edge1634, label %.lr.ph1633, !llvm.loop !164

._crit_edge1634:                                  ; preds = %1492, %.preheader1529
  %.161382.lcssa = phi double [ %.1513811641, %.preheader1529 ], [ %.171383, %1492 ]
  %.21351.lcssa = phi double [ %.113501642, %.preheader1529 ], [ %.31352, %1492 ]
  %.21346.lcssa = phi double [ %.113451643, %.preheader1529 ], [ %.31347, %1492 ]
  %.17.lcssa = phi i64 [ %.16.lcssa, %.preheader1529 ], [ %1510, %1492 ]
  %1512 = add nuw nsw i64 %.2213311644, 1
  %exitcond1812.not = icmp eq i64 %1512, %.121431
  br i1 %exitcond1812.not, label %._crit_edge1646.loopexit, label %.preheader1531, !llvm.loop !165

._crit_edge1646.loopexit:                         ; preds = %._crit_edge1634
  %smax1811 = tail call i64 @llvm.smax.i64(i64 %.121398, i64 0)
  br label %._crit_edge1646

._crit_edge1646:                                  ; preds = %._crit_edge1646.loopexit, %1392
  %.151381.lcssa = phi double [ %.131379.lcssa, %1392 ], [ %.161382.lcssa, %._crit_edge1646.loopexit ]
  %.11350.lcssa = phi double [ %.01349, %1392 ], [ %.21351.lcssa, %._crit_edge1646.loopexit ]
  %.11345.lcssa = phi double [ %.01344, %1392 ], [ %.21346.lcssa, %._crit_edge1646.loopexit ]
  %.221331.lcssa = phi i64 [ 0, %1392 ], [ %.121431, %._crit_edge1646.loopexit ]
  %.30.lcssa = phi i64 [ %.27, %1392 ], [ %smax1811, %._crit_edge1646.loopexit ]
  %.14.lcssa = phi i64 [ 0, %1392 ], [ %.17.lcssa, %._crit_edge1646.loopexit ]
  %1513 = getelementptr inbounds i8, ptr %0, i64 1144
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.121431, ptr noundef nonnull %1513, ptr noundef %1)
  %1514 = mul nsw i64 %.121398, %.121431
  %1515 = getelementptr inbounds i8, ptr %0, i64 1208
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1514, ptr noundef nonnull %1515, ptr noundef %1)
  br label %1725

1516:                                             ; preds = %45
  %1517 = getelementptr inbounds i8, ptr %0, i64 1144
  %1518 = getelementptr inbounds i8, ptr %0, i64 2600
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01419, ptr noundef nonnull %1517, ptr noundef nonnull %1518, ptr noundef %1)
  %.not.not14721563 = icmp sgt i64 %.01419, 0
  br i1 %.not.not14721563, label %.preheader1540.lr.ph, label %.loopexit1541

.preheader1540.lr.ph:                             ; preds = %1516
  %.not.not14731559 = icmp sgt i64 %.01386, 0
  %1519 = getelementptr inbounds i8, ptr %0, i64 1264
  %1520 = getelementptr inbounds i8, ptr %0, i64 2736
  br i1 %.not.not14731559, label %.preheader1540.us.preheader, label %._crit_edge1676

.preheader1540.us.preheader:                      ; preds = %.preheader1540.lr.ph
  %xtraiter1887 = and i64 %.01386, 1
  %1521 = icmp eq i64 %.01386, 1
  %unroll_iter1889 = and i64 %.01386, 9223372036854775806
  %lcmp.mod1888.not = icmp eq i64 %xtraiter1887, 0
  br label %.preheader1540.us

.preheader1540.us:                                ; preds = %.preheader1540.us.preheader, %._crit_edge1562.us
  %.2313321564.us = phi i64 [ %1549, %._crit_edge1562.us ], [ 0, %.preheader1540.us.preheader ]
  %1522 = mul nuw nsw i64 %.2313321564.us, %.01386
  br i1 %1521, label %._crit_edge1562.us.unr-lcssa, label %.preheader1540.us.new

.preheader1540.us.new:                            ; preds = %.preheader1540.us, %.preheader1540.us.new
  %.341560.us = phi i64 [ %1540, %.preheader1540.us.new ], [ 0, %.preheader1540.us ]
  %niter1890 = phi i64 [ %niter1890.next.1, %.preheader1540.us.new ], [ 0, %.preheader1540.us ]
  %1523 = load ptr, ptr %1519, align 8, !tbaa !80
  %1524 = getelementptr double, ptr %1523, i64 %1522
  %1525 = getelementptr double, ptr %1524, i64 %.341560.us
  %1526 = load double, ptr %1525, align 8, !tbaa !82
  %1527 = load ptr, ptr %1520, align 8, !tbaa !80
  %1528 = getelementptr inbounds ptr, ptr %1527, i64 %.2313321564.us
  %1529 = load ptr, ptr %1528, align 8, !tbaa !110
  %1530 = getelementptr inbounds double, ptr %1529, i64 %.341560.us
  store double %1526, ptr %1530, align 8, !tbaa !82
  %1531 = or disjoint i64 %.341560.us, 1
  %1532 = load ptr, ptr %1519, align 8, !tbaa !80
  %1533 = getelementptr double, ptr %1532, i64 %1522
  %1534 = getelementptr double, ptr %1533, i64 %1531
  %1535 = load double, ptr %1534, align 8, !tbaa !82
  %1536 = load ptr, ptr %1520, align 8, !tbaa !80
  %1537 = getelementptr inbounds ptr, ptr %1536, i64 %.2313321564.us
  %1538 = load ptr, ptr %1537, align 8, !tbaa !110
  %1539 = getelementptr inbounds double, ptr %1538, i64 %1531
  store double %1535, ptr %1539, align 8, !tbaa !82
  %1540 = add nuw nsw i64 %.341560.us, 2
  %niter1890.next.1 = add i64 %niter1890, 2
  %niter1890.ncmp.1 = icmp eq i64 %niter1890.next.1, %unroll_iter1889
  br i1 %niter1890.ncmp.1, label %._crit_edge1562.us.unr-lcssa, label %.preheader1540.us.new, !llvm.loop !166

._crit_edge1562.us.unr-lcssa:                     ; preds = %.preheader1540.us.new, %.preheader1540.us
  %.341560.us.unr = phi i64 [ 0, %.preheader1540.us ], [ %1540, %.preheader1540.us.new ]
  br i1 %lcmp.mod1888.not, label %._crit_edge1562.us, label %._crit_edge1562.us.epilog-lcssa

._crit_edge1562.us.epilog-lcssa:                  ; preds = %._crit_edge1562.us.unr-lcssa
  %1541 = load ptr, ptr %1519, align 8, !tbaa !80
  %1542 = getelementptr double, ptr %1541, i64 %1522
  %1543 = getelementptr double, ptr %1542, i64 %.341560.us.unr
  %1544 = load double, ptr %1543, align 8, !tbaa !82
  %1545 = load ptr, ptr %1520, align 8, !tbaa !80
  %1546 = getelementptr inbounds ptr, ptr %1545, i64 %.2313321564.us
  %1547 = load ptr, ptr %1546, align 8, !tbaa !110
  %1548 = getelementptr inbounds double, ptr %1547, i64 %.341560.us.unr
  store double %1544, ptr %1548, align 8, !tbaa !82
  br label %._crit_edge1562.us

._crit_edge1562.us:                               ; preds = %._crit_edge1562.us.unr-lcssa, %._crit_edge1562.us.epilog-lcssa
  %1549 = add nuw nsw i64 %.2313321564.us, 1
  %exitcond1786.not = icmp eq i64 %1549, %.01419
  br i1 %exitcond1786.not, label %.loopexit1541, label %.preheader1540.us, !llvm.loop !167

1550:                                             ; preds = %1287
  br i1 %.not1489, label %1551, label %1600

1551:                                             ; preds = %1550
  tail call void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %1552 = getelementptr inbounds i8, ptr %0, i64 746
  store i8 1, ptr %1552, align 2, !tbaa !112
  br label %1553

1553:                                             ; preds = %._crit_edge, %1551
  %.141433 = phi i64 [ %.121431, %1551 ], [ %.01419, %._crit_edge ]
  %.141417 = phi i64 [ %.121415, %1551 ], [ %.01403, %._crit_edge ]
  %.141400 = phi i64 [ %.121398, %1551 ], [ %.01386, %._crit_edge ]
  %.181384 = phi double [ %.131379.lcssa, %1551 ], [ %.01366, %._crit_edge ]
  %.101364 = phi double [ %.81362.lcssa, %1551 ], [ %.01354, %._crit_edge ]
  %.41342 = phi double [ %.11339.lcssa, %1551 ], [ %.01338, %._crit_edge ]
  %.241333 = phi i64 [ 0, %1551 ], [ %1597, %._crit_edge ]
  %.35 = phi i64 [ %.27, %1551 ], [ %.36.lcssa, %._crit_edge ]
  %.not1490 = icmp slt i64 %.241333, %.141433
  br i1 %.not1490, label %1554, label %1598

1554:                                             ; preds = %1553
  %1555 = getelementptr inbounds i8, ptr %0, i64 816
  %1556 = load ptr, ptr %1555, align 8, !tbaa !80
  %1557 = getelementptr inbounds i8, ptr %0, i64 456
  %1558 = load ptr, ptr %1557, align 8, !tbaa !80
  %1559 = getelementptr inbounds ptr, ptr %1558, i64 %.241333
  %1560 = load ptr, ptr %1559, align 8, !tbaa !110
  %1561 = add nsw i64 %.141417, -1
  %1562 = tail call noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef 0, i64 noundef %1561)
  tail call void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef %1556, i64 noundef 1, ptr noundef %1560, i64 noundef 1, i64 noundef %1562)
  %1563 = getelementptr inbounds i8, ptr %0, i64 752
  store i64 %.241333, ptr %1563, align 8, !tbaa !120
  br label %1725

1564:                                             ; preds = %45
  %1565 = getelementptr inbounds i8, ptr %0, i64 888
  %1566 = load double, ptr %1565, align 8, !tbaa !114
  %1567 = getelementptr inbounds i8, ptr %0, i64 2656
  %1568 = load ptr, ptr %1567, align 8, !tbaa !80
  %1569 = getelementptr inbounds double, ptr %1568, i64 %.01309
  store double %1566, ptr %1569, align 8, !tbaa !82
  %.not.not14711557 = icmp sgt i64 %.01386, 0
  br i1 %.not.not14711557, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %1564
  %1570 = getelementptr inbounds i8, ptr %0, i64 952
  %1571 = getelementptr inbounds i8, ptr %0, i64 2736
  %xtraiter1882 = and i64 %.01386, 1
  %1572 = icmp eq i64 %.01386, 1
  br i1 %1572, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph.new

.lr.ph.new:                                       ; preds = %.lr.ph
  %unroll_iter1884 = and i64 %.01386, 9223372036854775806
  br label %1573

1573:                                             ; preds = %1573, %.lr.ph.new
  %.361558 = phi i64 [ 0, %.lr.ph.new ], [ %1589, %1573 ]
  %niter1885 = phi i64 [ 0, %.lr.ph.new ], [ %niter1885.next.1, %1573 ]
  %1574 = load ptr, ptr %1570, align 8, !tbaa !80
  %1575 = getelementptr inbounds double, ptr %1574, i64 %.361558
  %1576 = load double, ptr %1575, align 8, !tbaa !82
  %1577 = load ptr, ptr %1571, align 8, !tbaa !80
  %1578 = getelementptr inbounds ptr, ptr %1577, i64 %.01309
  %1579 = load ptr, ptr %1578, align 8, !tbaa !110
  %1580 = getelementptr inbounds double, ptr %1579, i64 %.361558
  store double %1576, ptr %1580, align 8, !tbaa !82
  %1581 = or disjoint i64 %.361558, 1
  %1582 = load ptr, ptr %1570, align 8, !tbaa !80
  %1583 = getelementptr inbounds double, ptr %1582, i64 %1581
  %1584 = load double, ptr %1583, align 8, !tbaa !82
  %1585 = load ptr, ptr %1571, align 8, !tbaa !80
  %1586 = getelementptr inbounds ptr, ptr %1585, i64 %.01309
  %1587 = load ptr, ptr %1586, align 8, !tbaa !110
  %1588 = getelementptr inbounds double, ptr %1587, i64 %1581
  store double %1584, ptr %1588, align 8, !tbaa !82
  %1589 = add nuw nsw i64 %.361558, 2
  %niter1885.next.1 = add i64 %niter1885, 2
  %niter1885.ncmp.1 = icmp eq i64 %niter1885.next.1, %unroll_iter1884
  br i1 %niter1885.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %1573, !llvm.loop !168

._crit_edge.loopexit.unr-lcssa:                   ; preds = %1573, %.lr.ph
  %.361558.unr = phi i64 [ 0, %.lr.ph ], [ %1589, %1573 ]
  %lcmp.mod1883.not = icmp eq i64 %xtraiter1882, 0
  br i1 %lcmp.mod1883.not, label %._crit_edge, label %._crit_edge.loopexit.epilog-lcssa

._crit_edge.loopexit.epilog-lcssa:                ; preds = %._crit_edge.loopexit.unr-lcssa
  %1590 = load ptr, ptr %1570, align 8, !tbaa !80
  %1591 = getelementptr inbounds double, ptr %1590, i64 %.361558.unr
  %1592 = load double, ptr %1591, align 8, !tbaa !82
  %1593 = load ptr, ptr %1571, align 8, !tbaa !80
  %1594 = getelementptr inbounds ptr, ptr %1593, i64 %.01309
  %1595 = load ptr, ptr %1594, align 8, !tbaa !110
  %1596 = getelementptr inbounds double, ptr %1595, i64 %.361558.unr
  store double %1592, ptr %1596, align 8, !tbaa !82
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit.epilog-lcssa, %._crit_edge.loopexit.unr-lcssa, %1564
  %.36.lcssa = phi i64 [ 0, %1564 ], [ %.01386, %._crit_edge.loopexit.unr-lcssa ], [ %.01386, %._crit_edge.loopexit.epilog-lcssa ]
  %1597 = add nsw i64 %.01309, 1
  br label %1553

1598:                                             ; preds = %1553
  %1599 = getelementptr inbounds i8, ptr %0, i64 746
  store i8 0, ptr %1599, align 2, !tbaa !112
  br label %.loopexit1541

1600:                                             ; preds = %1550
  %1601 = icmp eq i64 %1294, 2
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1601, ptr noundef nonnull @.str.653, ptr noundef %1)
  %1602 = getelementptr inbounds i8, ptr %0, i64 960
  store i64 2, ptr %1602, align 8, !tbaa !101
  %1603 = getelementptr inbounds i8, ptr %0, i64 1040
  store i64 %.121431, ptr %1603, align 8, !tbaa !106
  %1604 = getelementptr inbounds i8, ptr %0, i64 1048
  store i64 1, ptr %1604, align 8, !tbaa !107
  %1605 = getelementptr inbounds i8, ptr %0, i64 1056
  store i64 %.121398, ptr %1605, align 8, !tbaa !108
  %1606 = getelementptr inbounds i8, ptr %0, i64 1064
  store i64 %.121415, ptr %1606, align 8, !tbaa !109
  %1607 = add nsw i64 %.121398, %.121415
  %1608 = mul nsw i64 %1607, %.121431
  %1609 = getelementptr inbounds i8, ptr %0, i64 1080
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1608, ptr noundef nonnull %1609, ptr noundef %1)
  br i1 %.not1482.not1611, label %.preheader1528.lr.ph, label %._crit_edge1668

.preheader1528.lr.ph:                             ; preds = %1600
  %.not1493.not1653 = icmp sgt i64 %.121398, 0
  %1610 = getelementptr inbounds i8, ptr %0, i64 184
  %1611 = getelementptr inbounds i8, ptr %0, i64 1136
  %.not1494.not1658 = icmp sgt i64 %.121415, 0
  %1612 = getelementptr inbounds i8, ptr %0, i64 456
  %xtraiter1962 = and i64 %.121398, 1
  %1613 = icmp eq i64 %.121398, 1
  %unroll_iter1966 = and i64 %.121398, 9223372036854775806
  %lcmp.mod1964.not = icmp eq i64 %xtraiter1962, 0
  %xtraiter1968 = and i64 %.121415, 1
  %1614 = icmp eq i64 %.121415, 1
  %unroll_iter1972 = and i64 %.121415, 9223372036854775806
  %lcmp.mod1970.not = icmp eq i64 %xtraiter1968, 0
  br label %.preheader1528

.preheader1528:                                   ; preds = %.preheader1528.lr.ph, %._crit_edge1662
  %.181667 = phi i64 [ 0, %.preheader1528.lr.ph ], [ %.20.lcssa, %._crit_edge1662 ]
  %.2513341666 = phi i64 [ 0, %.preheader1528.lr.ph ], [ %1661, %._crit_edge1662 ]
  br i1 %.not1493.not1653, label %.lr.ph1656.preheader, label %.preheader1527

.lr.ph1656.preheader:                             ; preds = %.preheader1528
  br i1 %1613, label %.preheader1527.loopexit.unr-lcssa, label %.lr.ph1656

.preheader1527.loopexit.unr-lcssa:                ; preds = %.lr.ph1656, %.lr.ph1656.preheader
  %.lcssa.ph = phi i64 [ poison, %.lr.ph1656.preheader ], [ %1633, %.lr.ph1656 ]
  %.191655.unr = phi i64 [ %.181667, %.lr.ph1656.preheader ], [ %1633, %.lr.ph1656 ]
  %.381654.unr = phi i64 [ 0, %.lr.ph1656.preheader ], [ %1634, %.lr.ph1656 ]
  br i1 %lcmp.mod1964.not, label %.preheader1527, label %.lr.ph1656.epil

.lr.ph1656.epil:                                  ; preds = %.preheader1527.loopexit.unr-lcssa
  %1615 = load ptr, ptr %1610, align 8, !tbaa !80
  %1616 = getelementptr inbounds double, ptr %1615, i64 %.381654.unr
  %1617 = load double, ptr %1616, align 8, !tbaa !82
  %1618 = load ptr, ptr %1611, align 8, !tbaa !80
  %1619 = getelementptr inbounds double, ptr %1618, i64 %.191655.unr
  store double %1617, ptr %1619, align 8, !tbaa !82
  %1620 = add nsw i64 %.191655.unr, 1
  br label %.preheader1527

.preheader1527:                                   ; preds = %.lr.ph1656.epil, %.preheader1527.loopexit.unr-lcssa, %.preheader1528
  %.19.lcssa = phi i64 [ %.181667, %.preheader1528 ], [ %.lcssa.ph, %.preheader1527.loopexit.unr-lcssa ], [ %1620, %.lr.ph1656.epil ]
  br i1 %.not1494.not1658, label %.lr.ph1661.preheader, label %._crit_edge1662

.lr.ph1661.preheader:                             ; preds = %.preheader1527
  br i1 %1614, label %._crit_edge1662.loopexit.unr-lcssa, label %.lr.ph1661

.lr.ph1656:                                       ; preds = %.lr.ph1656.preheader, %.lr.ph1656
  %.191655 = phi i64 [ %1633, %.lr.ph1656 ], [ %.181667, %.lr.ph1656.preheader ]
  %.381654 = phi i64 [ %1634, %.lr.ph1656 ], [ 0, %.lr.ph1656.preheader ]
  %niter1967 = phi i64 [ %niter1967.next.1, %.lr.ph1656 ], [ 0, %.lr.ph1656.preheader ]
  %1621 = load ptr, ptr %1610, align 8, !tbaa !80
  %1622 = getelementptr inbounds double, ptr %1621, i64 %.381654
  %1623 = load double, ptr %1622, align 8, !tbaa !82
  %1624 = load ptr, ptr %1611, align 8, !tbaa !80
  %1625 = getelementptr inbounds double, ptr %1624, i64 %.191655
  store double %1623, ptr %1625, align 8, !tbaa !82
  %1626 = or disjoint i64 %.381654, 1
  %1627 = load ptr, ptr %1610, align 8, !tbaa !80
  %1628 = getelementptr inbounds double, ptr %1627, i64 %1626
  %1629 = load double, ptr %1628, align 8, !tbaa !82
  %1630 = load ptr, ptr %1611, align 8, !tbaa !80
  %1631 = getelementptr double, ptr %1630, i64 %.191655
  %1632 = getelementptr i8, ptr %1631, i64 8
  store double %1629, ptr %1632, align 8, !tbaa !82
  %1633 = add nsw i64 %.191655, 2
  %1634 = add nuw nsw i64 %.381654, 2
  %niter1967.next.1 = add i64 %niter1967, 2
  %niter1967.ncmp.1 = icmp eq i64 %niter1967.next.1, %unroll_iter1966
  br i1 %niter1967.ncmp.1, label %.preheader1527.loopexit.unr-lcssa, label %.lr.ph1656, !llvm.loop !169

.lr.ph1661:                                       ; preds = %.lr.ph1661.preheader, %.lr.ph1661
  %.201660 = phi i64 [ %1651, %.lr.ph1661 ], [ %.19.lcssa, %.lr.ph1661.preheader ]
  %.391659 = phi i64 [ %1652, %.lr.ph1661 ], [ 0, %.lr.ph1661.preheader ]
  %niter1973 = phi i64 [ %niter1973.next.1, %.lr.ph1661 ], [ 0, %.lr.ph1661.preheader ]
  %1635 = load ptr, ptr %1612, align 8, !tbaa !80
  %1636 = getelementptr inbounds ptr, ptr %1635, i64 %.2513341666
  %1637 = load ptr, ptr %1636, align 8, !tbaa !110
  %1638 = getelementptr inbounds double, ptr %1637, i64 %.391659
  %1639 = load double, ptr %1638, align 8, !tbaa !82
  %1640 = load ptr, ptr %1611, align 8, !tbaa !80
  %1641 = getelementptr inbounds double, ptr %1640, i64 %.201660
  store double %1639, ptr %1641, align 8, !tbaa !82
  %1642 = or disjoint i64 %.391659, 1
  %1643 = load ptr, ptr %1612, align 8, !tbaa !80
  %1644 = getelementptr inbounds ptr, ptr %1643, i64 %.2513341666
  %1645 = load ptr, ptr %1644, align 8, !tbaa !110
  %1646 = getelementptr inbounds double, ptr %1645, i64 %1642
  %1647 = load double, ptr %1646, align 8, !tbaa !82
  %1648 = load ptr, ptr %1611, align 8, !tbaa !80
  %1649 = getelementptr double, ptr %1648, i64 %.201660
  %1650 = getelementptr i8, ptr %1649, i64 8
  store double %1647, ptr %1650, align 8, !tbaa !82
  %1651 = add nsw i64 %.201660, 2
  %1652 = add nuw nsw i64 %.391659, 2
  %niter1973.next.1 = add i64 %niter1973, 2
  %niter1973.ncmp.1 = icmp eq i64 %niter1973.next.1, %unroll_iter1972
  br i1 %niter1973.ncmp.1, label %._crit_edge1662.loopexit.unr-lcssa, label %.lr.ph1661, !llvm.loop !170

._crit_edge1662.loopexit.unr-lcssa:               ; preds = %.lr.ph1661, %.lr.ph1661.preheader
  %.lcssa1865.ph = phi i64 [ poison, %.lr.ph1661.preheader ], [ %1651, %.lr.ph1661 ]
  %.201660.unr = phi i64 [ %.19.lcssa, %.lr.ph1661.preheader ], [ %1651, %.lr.ph1661 ]
  %.391659.unr = phi i64 [ 0, %.lr.ph1661.preheader ], [ %1652, %.lr.ph1661 ]
  br i1 %lcmp.mod1970.not, label %._crit_edge1662, label %.lr.ph1661.epil

.lr.ph1661.epil:                                  ; preds = %._crit_edge1662.loopexit.unr-lcssa
  %1653 = load ptr, ptr %1612, align 8, !tbaa !80
  %1654 = getelementptr inbounds ptr, ptr %1653, i64 %.2513341666
  %1655 = load ptr, ptr %1654, align 8, !tbaa !110
  %1656 = getelementptr inbounds double, ptr %1655, i64 %.391659.unr
  %1657 = load double, ptr %1656, align 8, !tbaa !82
  %1658 = load ptr, ptr %1611, align 8, !tbaa !80
  %1659 = getelementptr inbounds double, ptr %1658, i64 %.201660.unr
  store double %1657, ptr %1659, align 8, !tbaa !82
  %1660 = add nsw i64 %.201660.unr, 1
  br label %._crit_edge1662

._crit_edge1662:                                  ; preds = %.lr.ph1661.epil, %._crit_edge1662.loopexit.unr-lcssa, %.preheader1527
  %.20.lcssa = phi i64 [ %.19.lcssa, %.preheader1527 ], [ %.lcssa1865.ph, %._crit_edge1662.loopexit.unr-lcssa ], [ %1660, %.lr.ph1661.epil ]
  %1661 = add nuw nsw i64 %.2513341666, 1
  %exitcond1816.not = icmp eq i64 %1661, %.121431
  br i1 %exitcond1816.not, label %._crit_edge1668.loopexit, label %.preheader1528, !llvm.loop !171

._crit_edge1668.loopexit:                         ; preds = %._crit_edge1662
  %smax1815 = tail call i64 @llvm.smax.i64(i64 %.121415, i64 0)
  br label %._crit_edge1668

._crit_edge1668:                                  ; preds = %._crit_edge1668.loopexit, %1600
  %.251334.lcssa = phi i64 [ 0, %1600 ], [ %.121431, %._crit_edge1668.loopexit ]
  %.37.lcssa = phi i64 [ %.27, %1600 ], [ %smax1815, %._crit_edge1668.loopexit ]
  %.18.lcssa = phi i64 [ 0, %1600 ], [ %.20.lcssa, %._crit_edge1668.loopexit ]
  %1662 = getelementptr inbounds i8, ptr %0, i64 1144
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.121431, ptr noundef nonnull %1662, ptr noundef %1)
  %1663 = mul nsw i64 %.121398, %.121431
  %1664 = getelementptr inbounds i8, ptr %0, i64 1208
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1663, ptr noundef nonnull %1664, ptr noundef %1)
  br label %1725

1665:                                             ; preds = %45
  %1666 = getelementptr inbounds i8, ptr %0, i64 1144
  %1667 = getelementptr inbounds i8, ptr %0, i64 2600
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01419, ptr noundef nonnull %1666, ptr noundef nonnull %1667, ptr noundef %1)
  %.not.not14691555 = icmp sgt i64 %.01419, 0
  br i1 %.not.not14691555, label %.preheader1542.lr.ph, label %.loopexit1541

.preheader1542.lr.ph:                             ; preds = %1665
  %.not.not14701553 = icmp sgt i64 %.01386, 0
  %1668 = getelementptr inbounds i8, ptr %0, i64 1264
  %1669 = getelementptr inbounds i8, ptr %0, i64 2736
  br i1 %.not.not14701553, label %.preheader1542.us.preheader, label %._crit_edge1676

.preheader1542.us.preheader:                      ; preds = %.preheader1542.lr.ph
  %xtraiter = and i64 %.01386, 1
  %1670 = icmp eq i64 %.01386, 1
  %unroll_iter = and i64 %.01386, 9223372036854775806
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br label %.preheader1542.us

.preheader1542.us:                                ; preds = %.preheader1542.us.preheader, %._crit_edge.us
  %.2613351556.us = phi i64 [ %1698, %._crit_edge.us ], [ 0, %.preheader1542.us.preheader ]
  %1671 = mul nuw nsw i64 %.2613351556.us, %.01386
  br i1 %1670, label %._crit_edge.us.unr-lcssa, label %.preheader1542.us.new

.preheader1542.us.new:                            ; preds = %.preheader1542.us, %.preheader1542.us.new
  %.401554.us = phi i64 [ %1689, %.preheader1542.us.new ], [ 0, %.preheader1542.us ]
  %niter = phi i64 [ %niter.next.1, %.preheader1542.us.new ], [ 0, %.preheader1542.us ]
  %1672 = load ptr, ptr %1668, align 8, !tbaa !80
  %1673 = getelementptr double, ptr %1672, i64 %1671
  %1674 = getelementptr double, ptr %1673, i64 %.401554.us
  %1675 = load double, ptr %1674, align 8, !tbaa !82
  %1676 = load ptr, ptr %1669, align 8, !tbaa !80
  %1677 = getelementptr inbounds ptr, ptr %1676, i64 %.2613351556.us
  %1678 = load ptr, ptr %1677, align 8, !tbaa !110
  %1679 = getelementptr inbounds double, ptr %1678, i64 %.401554.us
  store double %1675, ptr %1679, align 8, !tbaa !82
  %1680 = or disjoint i64 %.401554.us, 1
  %1681 = load ptr, ptr %1668, align 8, !tbaa !80
  %1682 = getelementptr double, ptr %1681, i64 %1671
  %1683 = getelementptr double, ptr %1682, i64 %1680
  %1684 = load double, ptr %1683, align 8, !tbaa !82
  %1685 = load ptr, ptr %1669, align 8, !tbaa !80
  %1686 = getelementptr inbounds ptr, ptr %1685, i64 %.2613351556.us
  %1687 = load ptr, ptr %1686, align 8, !tbaa !110
  %1688 = getelementptr inbounds double, ptr %1687, i64 %1680
  store double %1684, ptr %1688, align 8, !tbaa !82
  %1689 = add nuw nsw i64 %.401554.us, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.us.unr-lcssa, label %.preheader1542.us.new, !llvm.loop !172

._crit_edge.us.unr-lcssa:                         ; preds = %.preheader1542.us.new, %.preheader1542.us
  %.401554.us.unr = phi i64 [ 0, %.preheader1542.us ], [ %1689, %.preheader1542.us.new ]
  br i1 %lcmp.mod.not, label %._crit_edge.us, label %._crit_edge.us.epilog-lcssa

._crit_edge.us.epilog-lcssa:                      ; preds = %._crit_edge.us.unr-lcssa
  %1690 = load ptr, ptr %1668, align 8, !tbaa !80
  %1691 = getelementptr double, ptr %1690, i64 %1671
  %1692 = getelementptr double, ptr %1691, i64 %.401554.us.unr
  %1693 = load double, ptr %1692, align 8, !tbaa !82
  %1694 = load ptr, ptr %1669, align 8, !tbaa !80
  %1695 = getelementptr inbounds ptr, ptr %1694, i64 %.2613351556.us
  %1696 = load ptr, ptr %1695, align 8, !tbaa !110
  %1697 = getelementptr inbounds double, ptr %1696, i64 %.401554.us.unr
  store double %1693, ptr %1697, align 8, !tbaa !82
  br label %._crit_edge.us

._crit_edge.us:                                   ; preds = %._crit_edge.us.unr-lcssa, %._crit_edge.us.epilog-lcssa
  %1698 = add nuw nsw i64 %.2613351556.us, 1
  %exitcond1783.not = icmp eq i64 %1698, %.01419
  br i1 %exitcond1783.not, label %.loopexit1541, label %.preheader1542.us, !llvm.loop !173

.loopexit1541:                                    ; preds = %._crit_edge.us, %._crit_edge1562.us, %1665, %1516, %1598, %1390
  %.151434 = phi i64 [ %.141433, %1598 ], [ %.131432, %1390 ], [ %.01419, %1516 ], [ %.01419, %1665 ], [ %.01419, %._crit_edge1562.us ], [ %.01419, %._crit_edge.us ]
  %.151401 = phi i64 [ %.141400, %1598 ], [ %.131399, %1390 ], [ %.01386, %1516 ], [ %.01386, %1665 ], [ %.01386, %._crit_edge1562.us ], [ %.01386, %._crit_edge.us ]
  %.not1491.not1672 = icmp sgt i64 %.151401, 0
  br i1 %.not1491.not1672, label %.lr.ph1675, label %._crit_edge1676

.lr.ph1675:                                       ; preds = %.loopexit1541
  %1699 = getelementptr inbounds i8, ptr %0, i64 2592
  %xtraiter1975 = and i64 %.151401, 3
  %1700 = icmp ult i64 %.151401, 4
  br i1 %1700, label %._crit_edge1676.loopexit.unr-lcssa, label %.lr.ph1675.new

.lr.ph1675.new:                                   ; preds = %.lr.ph1675
  %unroll_iter1978 = and i64 %.151401, 9223372036854775804
  br label %1701

1701:                                             ; preds = %1701, %.lr.ph1675.new
  %.2713361673 = phi i64 [ 0, %.lr.ph1675.new ], [ %1713, %1701 ]
  %niter1979 = phi i64 [ 0, %.lr.ph1675.new ], [ %niter1979.next.3, %1701 ]
  %1702 = load ptr, ptr %1699, align 8, !tbaa !80
  %1703 = getelementptr inbounds double, ptr %1702, i64 %.2713361673
  store double 0.000000e+00, ptr %1703, align 8, !tbaa !82
  %1704 = or disjoint i64 %.2713361673, 1
  %1705 = load ptr, ptr %1699, align 8, !tbaa !80
  %1706 = getelementptr inbounds double, ptr %1705, i64 %1704
  store double 0.000000e+00, ptr %1706, align 8, !tbaa !82
  %1707 = or disjoint i64 %.2713361673, 2
  %1708 = load ptr, ptr %1699, align 8, !tbaa !80
  %1709 = getelementptr inbounds double, ptr %1708, i64 %1707
  store double 0.000000e+00, ptr %1709, align 8, !tbaa !82
  %1710 = or disjoint i64 %.2713361673, 3
  %1711 = load ptr, ptr %1699, align 8, !tbaa !80
  %1712 = getelementptr inbounds double, ptr %1711, i64 %1710
  store double 0.000000e+00, ptr %1712, align 8, !tbaa !82
  %1713 = add nuw nsw i64 %.2713361673, 4
  %niter1979.next.3 = add i64 %niter1979, 4
  %niter1979.ncmp.3 = icmp eq i64 %niter1979.next.3, %unroll_iter1978
  br i1 %niter1979.ncmp.3, label %._crit_edge1676.loopexit.unr-lcssa, label %1701, !llvm.loop !174

._crit_edge1676.loopexit.unr-lcssa:               ; preds = %1701, %.lr.ph1675
  %.2713361673.unr = phi i64 [ 0, %.lr.ph1675 ], [ %1713, %1701 ]
  %lcmp.mod1977.not = icmp eq i64 %xtraiter1975, 0
  br i1 %lcmp.mod1977.not, label %._crit_edge1676, label %.epil.preheader1974

.epil.preheader1974:                              ; preds = %._crit_edge1676.loopexit.unr-lcssa, %.epil.preheader1974
  %.2713361673.epil = phi i64 [ %1716, %.epil.preheader1974 ], [ %.2713361673.unr, %._crit_edge1676.loopexit.unr-lcssa ]
  %epil.iter1976 = phi i64 [ %epil.iter1976.next, %.epil.preheader1974 ], [ 0, %._crit_edge1676.loopexit.unr-lcssa ]
  %1714 = load ptr, ptr %1699, align 8, !tbaa !80
  %1715 = getelementptr inbounds double, ptr %1714, i64 %.2713361673.epil
  store double 0.000000e+00, ptr %1715, align 8, !tbaa !82
  %1716 = add nuw nsw i64 %.2713361673.epil, 1
  %epil.iter1976.next = add i64 %epil.iter1976, 1
  %epil.iter1976.cmp.not = icmp eq i64 %epil.iter1976.next, %xtraiter1975
  br i1 %epil.iter1976.cmp.not, label %._crit_edge1676, label %.epil.preheader1974, !llvm.loop !175

._crit_edge1676:                                  ; preds = %._crit_edge1676.loopexit.unr-lcssa, %.epil.preheader1974, %.preheader1542.lr.ph, %.preheader1540.lr.ph, %.loopexit1541
  %.1514011826 = phi i64 [ %.151401, %.loopexit1541 ], [ %.01386, %.preheader1540.lr.ph ], [ %.01386, %.preheader1542.lr.ph ], [ %.151401, %.epil.preheader1974 ], [ %.151401, %._crit_edge1676.loopexit.unr-lcssa ]
  %.1514341825 = phi i64 [ %.151434, %.loopexit1541 ], [ %.01419, %.preheader1540.lr.ph ], [ %.01419, %.preheader1542.lr.ph ], [ %.151434, %.epil.preheader1974 ], [ %.151434, %._crit_edge1676.loopexit.unr-lcssa ]
  %1717 = getelementptr inbounds i8, ptr %0, i64 2664
  %1718 = getelementptr inbounds i8, ptr %0, i64 2600
  %1719 = getelementptr inbounds i8, ptr %0, i64 464
  %1720 = getelementptr inbounds i8, ptr %0, i64 2344
  %1721 = getelementptr inbounds i8, ptr %0, i64 2536
  %1722 = getelementptr inbounds i8, ptr %0, i64 192
  %1723 = getelementptr inbounds i8, ptr %0, i64 2896
  %1724 = getelementptr inbounds i8, ptr %0, i64 2744
  tail call void @_ZN11alglib_implL20lsfit_estimateerrorsEPKNS_9ae_matrixEPKNS_9ae_vectorES5_S5_S5_S5_llPNS_11lsfitreportEPS0_lPNS_8ae_stateE(ptr noundef nonnull %1717, ptr noundef nonnull %1718, ptr noundef nonnull %1719, ptr noundef nonnull %1720, ptr noundef nonnull %1721, ptr noundef nonnull %1722, i64 noundef %.1514341825, i64 noundef %.1514011826, ptr noundef nonnull %1723, ptr noundef nonnull %1724, i64 noundef 0, ptr noundef %1)
  br label %1762

1725:                                             ; preds = %1344, %1362, %1316, %1334, %344, %350, %358, %._crit_edge1668, %1554, %._crit_edge1646, %1299, %._crit_edge1607, %1117, %._crit_edge1692, %._crit_edge1716, %._crit_edge1735, %816, %801, %755, %702, %642, %601, %502, %454, %416, %306, %._crit_edge1747
  %.sink1848 = phi i32 [ 22, %._crit_edge1668 ], [ 21, %1554 ], [ 20, %._crit_edge1646 ], [ 17, %1299 ], [ 16, %._crit_edge1607 ], [ 15, %1117 ], [ 14, %._crit_edge1692 ], [ 13, %._crit_edge1716 ], [ 12, %._crit_edge1735 ], [ 11, %816 ], [ 10, %801 ], [ 9, %755 ], [ 8, %702 ], [ 7, %642 ], [ 6, %601 ], [ 5, %502 ], [ 4, %454 ], [ 3, %416 ], [ 1, %306 ], [ 0, %._crit_edge1747 ], [ 2, %358 ], [ 2, %350 ], [ 2, %344 ], [ 18, %1334 ], [ 18, %1316 ], [ 19, %1362 ], [ 19, %1344 ]
  %.11449 = phi double [ %.01448, %._crit_edge1668 ], [ %.01448, %1554 ], [ %.01448, %._crit_edge1646 ], [ %.01448, %1299 ], [ %.01448, %._crit_edge1607 ], [ %.01448, %1117 ], [ %.01448, %._crit_edge1692 ], [ %.01448, %._crit_edge1716 ], [ %.01448, %._crit_edge1735 ], [ %.01448, %816 ], [ %.01448, %801 ], [ %.01448, %755 ], [ %.01448, %702 ], [ %.01448, %642 ], [ %.01448, %601 ], [ %.01448, %502 ], [ %.01448, %454 ], [ %419, %416 ], [ %.01448, %306 ], [ %232, %._crit_edge1747 ], [ %.01448, %358 ], [ %.01448, %350 ], [ %.01448, %344 ], [ %1328, %1334 ], [ %1328, %1316 ], [ %.01448, %1362 ], [ %.01448, %1344 ]
  %.11447 = phi double [ %.01446, %._crit_edge1668 ], [ %.01446, %1554 ], [ %.01446, %._crit_edge1646 ], [ %.01446, %1299 ], [ %.01446, %._crit_edge1607 ], [ %.01446, %1117 ], [ %.01446, %._crit_edge1692 ], [ %.01446, %._crit_edge1716 ], [ %.01446, %._crit_edge1735 ], [ %.01446, %816 ], [ %.01446, %801 ], [ %.01446, %755 ], [ %.01446, %702 ], [ %.01446, %642 ], [ %.01446, %601 ], [ %.01446, %502 ], [ %424, %454 ], [ %.01446, %416 ], [ %267, %306 ], [ %.01446, %._crit_edge1747 ], [ %.01446, %358 ], [ %.01446, %350 ], [ %.01446, %344 ], [ %.01446, %1334 ], [ %.01446, %1316 ], [ %1346, %1362 ], [ %1346, %1344 ]
  %.11445 = phi double [ %.01444, %._crit_edge1668 ], [ %.01444, %1554 ], [ %.01444, %._crit_edge1646 ], [ %.01444, %1299 ], [ %.01444, %._crit_edge1607 ], [ %.01444, %1117 ], [ %.01444, %._crit_edge1692 ], [ %.01444, %._crit_edge1716 ], [ %.01444, %._crit_edge1735 ], [ %.01444, %816 ], [ %.01444, %801 ], [ %.01444, %755 ], [ %.01444, %702 ], [ %.01444, %642 ], [ %.01444, %601 ], [ %.01444, %502 ], [ %428, %454 ], [ %.01444, %416 ], [ %271, %306 ], [ %.01444, %._crit_edge1747 ], [ %.01444, %358 ], [ %.01444, %350 ], [ %.01444, %344 ], [ %.01444, %1334 ], [ %.01444, %1316 ], [ %.01444, %1362 ], [ %.01444, %1344 ]
  %.11443 = phi double [ %.01442, %._crit_edge1668 ], [ %.01442, %1554 ], [ %.01442, %._crit_edge1646 ], [ %.01442, %1299 ], [ %.01442, %._crit_edge1607 ], [ %.01442, %1117 ], [ %.01442, %._crit_edge1692 ], [ %.01442, %._crit_edge1716 ], [ %.01442, %._crit_edge1735 ], [ %.01442, %816 ], [ %.01442, %801 ], [ %.01442, %755 ], [ %.01442, %702 ], [ %.01442, %642 ], [ %.01442, %601 ], [ %.01442, %502 ], [ %457, %454 ], [ %.01442, %416 ], [ %309, %306 ], [ %.01442, %._crit_edge1747 ], [ %.01442, %358 ], [ %.01442, %350 ], [ %.01442, %344 ], [ %.01442, %1334 ], [ %.01442, %1316 ], [ %1353, %1362 ], [ %1353, %1344 ]
  %.31441 = phi double [ %.01438, %._crit_edge1668 ], [ %.01438, %1554 ], [ %.01438, %._crit_edge1646 ], [ %.11439, %1299 ], [ %.01438, %._crit_edge1607 ], [ %.01438, %1117 ], [ %.01438, %._crit_edge1692 ], [ %.01438, %._crit_edge1716 ], [ %.01438, %._crit_edge1735 ], [ %.01438, %816 ], [ %.01438, %801 ], [ %.01438, %755 ], [ %.01438, %702 ], [ %.01438, %642 ], [ %.01438, %601 ], [ %461, %502 ], [ %.01438, %454 ], [ %.01438, %416 ], [ %.01438, %306 ], [ %.01438, %._crit_edge1747 ], [ %313, %358 ], [ %313, %350 ], [ %313, %344 ], [ %.21440, %1334 ], [ %.21440, %1316 ], [ %.01438, %1362 ], [ %.01438, %1344 ]
  %.11437 = phi double [ %.01436, %._crit_edge1668 ], [ %.01436, %1554 ], [ %.01436, %._crit_edge1646 ], [ %.01436, %1299 ], [ %.01436, %._crit_edge1607 ], [ %.01436, %1117 ], [ %.01436, %._crit_edge1692 ], [ %.01436, %._crit_edge1716 ], [ %.01436, %._crit_edge1735 ], [ %.01436, %816 ], [ %.01436, %801 ], [ %.01436, %755 ], [ %.01436, %702 ], [ %.01436, %642 ], [ %.01436, %601 ], [ %465, %502 ], [ %.01436, %454 ], [ %.01436, %416 ], [ %.01436, %306 ], [ %.01436, %._crit_edge1747 ], [ %317, %358 ], [ %317, %350 ], [ %317, %344 ], [ %.01436, %1334 ], [ %.01436, %1316 ], [ %.01436, %1362 ], [ %.01436, %1344 ]
  %.161435 = phi i64 [ %.121431, %._crit_edge1668 ], [ %.141433, %1554 ], [ %.121431, %._crit_edge1646 ], [ %.131432, %1299 ], [ %.61425.ph, %._crit_edge1607 ], [ %.111430, %1117 ], [ %.61425.ph, %._crit_edge1692 ], [ %.61425.ph, %._crit_edge1716 ], [ %.61425.ph, %._crit_edge1735 ], [ %.61425.ph, %816 ], [ %.61425.ph, %801 ], [ %.101429, %755 ], [ %.91428, %702 ], [ %.81427, %642 ], [ %.71426, %601 ], [ %.01419, %502 ], [ %.01419, %454 ], [ %.31422, %416 ], [ %.01419, %306 ], [ %.21421, %._crit_edge1747 ], [ %.01419, %358 ], [ %.01419, %350 ], [ %.01419, %344 ], [ %.01419, %1334 ], [ %.01419, %1316 ], [ %.01419, %1362 ], [ %.01419, %1344 ]
  %.151418 = phi i64 [ %.121415, %._crit_edge1668 ], [ %.141417, %1554 ], [ %.121415, %._crit_edge1646 ], [ %.131416, %1299 ], [ %.61409.ph, %._crit_edge1607 ], [ %.111414, %1117 ], [ %.61409.ph, %._crit_edge1692 ], [ %.61409.ph, %._crit_edge1716 ], [ %.61409.ph, %._crit_edge1735 ], [ %.61409.ph, %816 ], [ %.61409.ph, %801 ], [ %.101413, %755 ], [ %.91412, %702 ], [ %.81411, %642 ], [ %.71410, %601 ], [ %.01403, %502 ], [ %.01403, %454 ], [ %.31406, %416 ], [ %.01403, %306 ], [ %.21405, %._crit_edge1747 ], [ %.01403, %358 ], [ %.01403, %350 ], [ %.01403, %344 ], [ %.01403, %1334 ], [ %.01403, %1316 ], [ %.01403, %1362 ], [ %.01403, %1344 ]
  %.161402 = phi i64 [ %.121398, %._crit_edge1668 ], [ %.141400, %1554 ], [ %.121398, %._crit_edge1646 ], [ %.131399, %1299 ], [ %.61392.ph, %._crit_edge1607 ], [ %.111397, %1117 ], [ %.61392.ph, %._crit_edge1692 ], [ %.61392.ph, %._crit_edge1716 ], [ %.61392.ph, %._crit_edge1735 ], [ %.61392.ph, %816 ], [ %.61392.ph, %801 ], [ %.101396, %755 ], [ %.91395, %702 ], [ %.81394, %642 ], [ %.71393, %601 ], [ %.01386, %502 ], [ %.01386, %454 ], [ %.31389, %416 ], [ %.01386, %306 ], [ %.21388, %._crit_edge1747 ], [ %.01386, %358 ], [ %.01386, %350 ], [ %.01386, %344 ], [ %.01386, %1334 ], [ %.01386, %1316 ], [ %.01386, %1362 ], [ %.01386, %1344 ]
  %.191385 = phi double [ %.131379.lcssa, %._crit_edge1668 ], [ %.181384, %1554 ], [ %.151381.lcssa, %._crit_edge1646 ], [ %.141380, %1299 ], [ %.61372.ph, %._crit_edge1607 ], [ %.111377, %1117 ], [ %.61372.ph, %._crit_edge1692 ], [ %.61372.ph, %._crit_edge1716 ], [ %.61372.ph, %._crit_edge1735 ], [ %.61372.ph, %816 ], [ %.61372.ph, %801 ], [ %.101376, %755 ], [ %.91375, %702 ], [ %.81374, %642 ], [ %.71373, %601 ], [ %.01366, %502 ], [ %.01366, %454 ], [ %.31369, %416 ], [ %.01366, %306 ], [ %.21368, %._crit_edge1747 ], [ %.01366, %358 ], [ %.01366, %350 ], [ %.01366, %344 ], [ %1320, %1334 ], [ %1320, %1316 ], [ %.01366, %1362 ], [ %.01366, %1344 ]
  %.111365 = phi double [ %.81362.lcssa, %._crit_edge1668 ], [ %.101364, %1554 ], [ %.81362.lcssa, %._crit_edge1646 ], [ %.91363, %1299 ], [ %.11355.ph, %._crit_edge1607 ], [ %.61360, %1117 ], [ %.11355.ph, %._crit_edge1692 ], [ %.11355.ph, %._crit_edge1716 ], [ %.11355.ph, %._crit_edge1735 ], [ %.11355.ph, %816 ], [ %.11355.ph, %801 ], [ %.51359, %755 ], [ %.41358, %702 ], [ %.31357, %642 ], [ %.21356, %601 ], [ %.01354, %502 ], [ %.01354, %454 ], [ %.01354, %416 ], [ %.01354, %306 ], [ %.01354, %._crit_edge1747 ], [ %.01354, %358 ], [ %.01354, %350 ], [ %.01354, %344 ], [ %.01354, %1334 ], [ %.01354, %1316 ], [ %.01354, %1362 ], [ %.01354, %1344 ]
  %.41353 = phi double [ %.01349, %._crit_edge1668 ], [ %.01349, %1554 ], [ %.11350.lcssa, %._crit_edge1646 ], [ %.01349, %1299 ], [ %.01349, %._crit_edge1607 ], [ %.01349, %1117 ], [ %.01349, %._crit_edge1692 ], [ %.01349, %._crit_edge1716 ], [ %.01349, %._crit_edge1735 ], [ %.01349, %816 ], [ %.01349, %801 ], [ %.01349, %755 ], [ %.01349, %702 ], [ %.01349, %642 ], [ %.01349, %601 ], [ %.01349, %502 ], [ %.01349, %454 ], [ %.01349, %416 ], [ %.01349, %306 ], [ %.01349, %._crit_edge1747 ], [ %.01349, %358 ], [ %.01349, %350 ], [ %.01349, %344 ], [ %.01349, %1334 ], [ %.01349, %1316 ], [ %.01349, %1362 ], [ %.01349, %1344 ]
  %.41348 = phi double [ %.01344, %._crit_edge1668 ], [ %.01344, %1554 ], [ %.11345.lcssa, %._crit_edge1646 ], [ %.01344, %1299 ], [ %.01344, %._crit_edge1607 ], [ %.01344, %1117 ], [ %.01344, %._crit_edge1692 ], [ %.01344, %._crit_edge1716 ], [ %.01344, %._crit_edge1735 ], [ %.01344, %816 ], [ %.01344, %801 ], [ %.01344, %755 ], [ %.01344, %702 ], [ %.01344, %642 ], [ %.01344, %601 ], [ %.01344, %502 ], [ %.01344, %454 ], [ %.01344, %416 ], [ %.01344, %306 ], [ %.01344, %._crit_edge1747 ], [ %.01344, %358 ], [ %.01344, %350 ], [ %.01344, %344 ], [ %.01344, %1334 ], [ %.01344, %1316 ], [ %.01344, %1362 ], [ %.01344, %1344 ]
  %.51343 = phi double [ %.11339.lcssa, %._crit_edge1668 ], [ %.41342, %1554 ], [ %.11339.lcssa, %._crit_edge1646 ], [ %.31341, %1299 ], [ %.01338, %._crit_edge1607 ], [ %.01338, %1117 ], [ %.01338, %._crit_edge1692 ], [ %.01338, %._crit_edge1716 ], [ %.01338, %._crit_edge1735 ], [ %.01338, %816 ], [ %.01338, %801 ], [ %.01338, %755 ], [ %.01338, %702 ], [ %.01338, %642 ], [ %.01338, %601 ], [ %.01338, %502 ], [ %.01338, %454 ], [ %.01338, %416 ], [ %.01338, %306 ], [ %.01338, %._crit_edge1747 ], [ %.01338, %358 ], [ %.01338, %350 ], [ %.01338, %344 ], [ %.01338, %1334 ], [ %.01338, %1316 ], [ %.01338, %1362 ], [ %.01338, %1344 ]
  %.281337 = phi i64 [ %.251334.lcssa, %._crit_edge1668 ], [ %.241333, %1554 ], [ %.221331.lcssa, %._crit_edge1646 ], [ %.211330, %1299 ], [ %.191328.lcssa, %._crit_edge1607 ], [ %.181327, %1117 ], [ %.171326.lcssa, %._crit_edge1692 ], [ %.161325.lcssa, %._crit_edge1716 ], [ %.151324.lcssa, %._crit_edge1735 ], [ %.91318.ph, %816 ], [ %.91318.ph, %801 ], [ %.141323, %755 ], [ %.131322, %702 ], [ %.111320, %642 ], [ %.101319, %601 ], [ %.01309, %502 ], [ %.01309, %454 ], [ %.61315, %416 ], [ %.01309, %306 ], [ %.51314, %._crit_edge1747 ], [ %.01309, %358 ], [ %.01309, %350 ], [ %.01309, %344 ], [ %.01309, %1334 ], [ %.01309, %1316 ], [ %.01309, %1362 ], [ %.01309, %1344 ]
  %.41 = phi i64 [ %.37.lcssa, %._crit_edge1668 ], [ %.35, %1554 ], [ %.30.lcssa, %._crit_edge1646 ], [ %.28, %1299 ], [ %.24.lcssa, %._crit_edge1607 ], [ %.23, %1117 ], [ %.201307.lcssa, %._crit_edge1692 ], [ %.161303.lcssa, %._crit_edge1716 ], [ %.131300.lcssa, %._crit_edge1735 ], [ %.81295.ph, %816 ], [ %.81295.ph, %801 ], [ %.121299, %755 ], [ %.111298, %702 ], [ %.101297, %642 ], [ %.91296, %601 ], [ %.01287, %502 ], [ %.01287, %454 ], [ %.31290, %416 ], [ %.01287, %306 ], [ %.21289, %._crit_edge1747 ], [ %.01287, %358 ], [ %.01287, %350 ], [ %.01287, %344 ], [ %.29, %1334 ], [ %.29, %1316 ], [ %.01287, %1362 ], [ %.01287, %1344 ]
  %.21286 = phi i64 [ %.01284, %._crit_edge1668 ], [ %.01284, %1554 ], [ %.01284, %._crit_edge1646 ], [ %.01284, %1299 ], [ %.01284, %._crit_edge1607 ], [ %.01284, %1117 ], [ %.01284, %._crit_edge1692 ], [ %.01284, %._crit_edge1716 ], [ %.01284, %._crit_edge1735 ], [ %.01284, %816 ], [ %.01284, %801 ], [ %.01284, %755 ], [ %.01284, %702 ], [ %.01284, %642 ], [ %.01284, %601 ], [ %.01284, %502 ], [ %.01284, %454 ], [ %.01284, %416 ], [ %.01284, %306 ], [ %.11285.lcssa, %._crit_edge1747 ], [ %.01284, %358 ], [ %.01284, %350 ], [ %.01284, %344 ], [ %.01284, %1334 ], [ %.01284, %1316 ], [ %.01284, %1362 ], [ %.01284, %1344 ]
  %.21 = phi i64 [ %.18.lcssa, %._crit_edge1668 ], [ %.0, %1554 ], [ %.14.lcssa, %._crit_edge1646 ], [ %.0, %1299 ], [ %.11.lcssa, %._crit_edge1607 ], [ %.0, %1117 ], [ %.8.lcssa, %._crit_edge1692 ], [ %.4.lcssa, %._crit_edge1716 ], [ %.1.lcssa, %._crit_edge1735 ], [ %.0, %816 ], [ %.0, %801 ], [ %.0, %755 ], [ %.0, %702 ], [ %.0, %642 ], [ %.0, %601 ], [ %.0, %502 ], [ %.0, %454 ], [ %.0, %416 ], [ %.0, %306 ], [ %.0, %._crit_edge1747 ], [ %.0, %358 ], [ %.0, %350 ], [ %.0, %344 ], [ %.0, %1334 ], [ %.0, %1316 ], [ %.0, %1362 ], [ %.0, %1344 ]
  store i32 %.sink1848, ptr %3, align 8, !tbaa !5
  %1726 = getelementptr inbounds i8, ptr %0, i64 286776
  %1727 = load ptr, ptr %1726, align 8, !tbaa !80
  store i64 %.161435, ptr %1727, align 8, !tbaa !81
  %1728 = load ptr, ptr %1726, align 8, !tbaa !80
  %1729 = getelementptr inbounds i8, ptr %1728, i64 8
  store i64 %.151418, ptr %1729, align 8, !tbaa !81
  %1730 = load ptr, ptr %1726, align 8, !tbaa !80
  %1731 = getelementptr inbounds i8, ptr %1730, i64 16
  store i64 %.161402, ptr %1731, align 8, !tbaa !81
  %1732 = load ptr, ptr %1726, align 8, !tbaa !80
  %1733 = getelementptr inbounds i8, ptr %1732, i64 24
  store i64 %.281337, ptr %1733, align 8, !tbaa !81
  %1734 = load ptr, ptr %1726, align 8, !tbaa !80
  %1735 = getelementptr inbounds i8, ptr %1734, i64 32
  store i64 %.41, ptr %1735, align 8, !tbaa !81
  %1736 = load ptr, ptr %1726, align 8, !tbaa !80
  %1737 = getelementptr inbounds i8, ptr %1736, i64 40
  store i64 %.21286, ptr %1737, align 8, !tbaa !81
  %1738 = load ptr, ptr %1726, align 8, !tbaa !80
  %1739 = getelementptr inbounds i8, ptr %1738, i64 48
  store i64 %.21, ptr %1739, align 8, !tbaa !81
  %1740 = getelementptr inbounds i8, ptr %0, i64 286904
  %1741 = load ptr, ptr %1740, align 8, !tbaa !80
  store double %.11449, ptr %1741, align 8, !tbaa !82
  %1742 = load ptr, ptr %1740, align 8, !tbaa !80
  %1743 = getelementptr inbounds i8, ptr %1742, i64 8
  store double %.11447, ptr %1743, align 8, !tbaa !82
  %1744 = load ptr, ptr %1740, align 8, !tbaa !80
  %1745 = getelementptr inbounds i8, ptr %1744, i64 16
  store double %.11445, ptr %1745, align 8, !tbaa !82
  %1746 = load ptr, ptr %1740, align 8, !tbaa !80
  %1747 = getelementptr inbounds i8, ptr %1746, i64 24
  store double %.11443, ptr %1747, align 8, !tbaa !82
  %1748 = load ptr, ptr %1740, align 8, !tbaa !80
  %1749 = getelementptr inbounds i8, ptr %1748, i64 32
  store double %.31441, ptr %1749, align 8, !tbaa !82
  %1750 = load ptr, ptr %1740, align 8, !tbaa !80
  %1751 = getelementptr inbounds i8, ptr %1750, i64 40
  store double %.11437, ptr %1751, align 8, !tbaa !82
  %1752 = load ptr, ptr %1740, align 8, !tbaa !80
  %1753 = getelementptr inbounds i8, ptr %1752, i64 48
  store double %.191385, ptr %1753, align 8, !tbaa !82
  %1754 = load ptr, ptr %1740, align 8, !tbaa !80
  %1755 = getelementptr inbounds i8, ptr %1754, i64 56
  store double %.111365, ptr %1755, align 8, !tbaa !82
  %1756 = load ptr, ptr %1740, align 8, !tbaa !80
  %1757 = getelementptr inbounds i8, ptr %1756, i64 64
  store double %.41353, ptr %1757, align 8, !tbaa !82
  %1758 = load ptr, ptr %1740, align 8, !tbaa !80
  %1759 = getelementptr inbounds i8, ptr %1758, i64 72
  store double %.41348, ptr %1759, align 8, !tbaa !82
  %1760 = load ptr, ptr %1740, align 8, !tbaa !80
  %1761 = getelementptr inbounds i8, ptr %1760, i64 80
  store double %.51343, ptr %1761, align 8, !tbaa !82
  br label %1762

1762:                                             ; preds = %._crit_edge1676, %._crit_edge1590, %1725, %516, %370
  %.01450 = phi i1 [ true, %1725 ], [ false, %370 ], [ false, %516 ], [ false, %._crit_edge1590 ], [ false, %._crit_edge1676 ]
  ret i1 %.01450
}

declare noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #2

declare noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef, double noundef) local_unnamed_addr #0

declare noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) local_unnamed_addr #0

declare noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) local_unnamed_addr #0

declare noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #0

declare noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef, double noundef) local_unnamed_addr #0

declare noundef i64 @_ZN11alglib_impl8ae_v_lenEll(i64 noundef, i64 noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl9ae_v_moveEPdlPKdll(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl10ae_v_movedEPdlPKdlld(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, double noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl23rvectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare noundef zeroext i1 @_ZN11alglib_impl11ae_isfiniteEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl23rmatrixsetlengthatleastEPNS_9ae_matrixEllPNS_8ae_stateE(ptr noundef, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl23ivectorsetlengthatleastEPNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #0

declare noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef, double noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl5raddvEldPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl13minlmsetscaleEPNS_10minlmstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl12minlmsetcondEPNS_10minlmstateEdlPNS_8ae_stateE(ptr noundef, double noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl12minlmsetxrepEPNS_10minlmstateEbPNS_8ae_stateE(ptr noundef, i1 noundef zeroext, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl10minlmsetbcEPNS_10minlmstateEPKNS_9ae_vectorES4_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl9ae_v_adddEPdlPKdlld(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef, double noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL29lsfit_lsfitclearrequestfieldsEPNS_10lsfitstateEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl14minlmsetstpmaxEPNS_10minlmstateEdPNS_8ae_stateE(ptr noundef, double noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl10minlmsetlcEPNS_10minlmstateEPKNS_9ae_matrixEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl25minlmsetnonmonotonicstepsEPNS_10minlmstateElPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare noundef zeroext i1 @_ZN11alglib_impl15derivativecheckEdddddddPNS_8ae_stateE(double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl18minlmsetprotocolv1EPNS_10minlmstateEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl18minlmsetprotocolv2EPNS_10minlmstateEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #0

declare noundef zeroext i1 @_ZN11alglib_impl14minlmiterationEPNS_10minlmstateEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl10rmergemulvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl12minlmresultsEPKNS_10minlmstateEPNS_9ae_vectorEPNS_11minlmreportEPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL20lsfit_estimateerrorsEPKNS_9ae_matrixEPKNS_9ae_vectorES5_S5_S5_S5_llPNS_11lsfitreportEPS0_lPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef, i64 noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #3

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !21, i64 286712}
!6 = !{!"_ZTSN11alglib_impl10lsfitstateE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !10, i64 32, !7, i64 40, !10, i64 48, !11, i64 56, !12, i64 64, !12, i64 128, !12, i64 192, !12, i64 256, !12, i64 320, !15, i64 384, !12, i64 464, !7, i64 528, !12, i64 536, !7, i64 600, !7, i64 608, !7, i64 616, !10, i64 624, !10, i64 632, !15, i64 640, !7, i64 720, !7, i64 728, !7, i64 736, !11, i64 744, !11, i64 745, !11, i64 746, !7, i64 752, !12, i64 760, !12, i64 824, !10, i64 888, !12, i64 896, !7, i64 960, !12, i64 968, !10, i64 1032, !7, i64 1040, !7, i64 1048, !7, i64 1056, !7, i64 1064, !7, i64 1072, !12, i64 1080, !12, i64 1144, !12, i64 1208, !16, i64 1272, !12, i64 1640, !12, i64 1704, !12, i64 1768, !12, i64 1832, !15, i64 1896, !16, i64 1976, !12, i64 2344, !12, i64 2408, !12, i64 2472, !12, i64 2536, !12, i64 2600, !15, i64 2664, !15, i64 2744, !10, i64 2824, !7, i64 2832, !7, i64 2840, !7, i64 2848, !10, i64 2856, !10, i64 2864, !10, i64 2872, !10, i64 2880, !10, i64 2888, !17, i64 2896, !18, i64 3248, !79, i64 286640, !7, i64 286696, !7, i64 286704, !20, i64 286712}
!7 = !{!"long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"double", !8, i64 0}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"_ZTSN11alglib_impl9ae_vectorE", !7, i64 0, !7, i64 8, !11, i64 16, !13, i64 24, !8, i64 56}
!13 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24}
!14 = !{!"any pointer", !8, i64 0}
!15 = !{!"_ZTSN11alglib_impl9ae_matrixE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !11, i64 32, !13, i64 40, !8, i64 72}
!16 = !{!"_ZTSN11alglib_impl12sparsematrixE", !12, i64 0, !12, i64 64, !12, i64 128, !12, i64 192, !12, i64 256, !7, i64 320, !7, i64 328, !7, i64 336, !7, i64 344, !7, i64 352, !7, i64 360}
!17 = !{!"_ZTSN11alglib_impl11lsfitreportE", !7, i64 0, !10, i64 8, !7, i64 16, !7, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !15, i64 72, !12, i64 152, !12, i64 216, !12, i64 280, !10, i64 344}
!18 = !{!"_ZTSN11alglib_impl10minlmstateE", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !10, i64 32, !7, i64 40, !11, i64 48, !10, i64 56, !7, i64 64, !11, i64 72, !7, i64 80, !11, i64 88, !12, i64 96, !10, i64 160, !12, i64 168, !15, i64 232, !15, i64 312, !12, i64 392, !11, i64 456, !11, i64 457, !11, i64 458, !11, i64 459, !11, i64 460, !11, i64 461, !7, i64 464, !12, i64 472, !10, i64 536, !7, i64 544, !7, i64 552, !7, i64 560, !7, i64 568, !7, i64 576, !12, i64 584, !12, i64 648, !12, i64 712, !16, i64 776, !12, i64 1144, !12, i64 1208, !12, i64 1272, !12, i64 1336, !15, i64 1400, !16, i64 1480, !7, i64 1848, !12, i64 1856, !10, i64 1920, !12, i64 1928, !12, i64 1992, !15, i64 2056, !12, i64 2136, !12, i64 2200, !12, i64 2264, !12, i64 2328, !12, i64 2392, !15, i64 2456, !7, i64 2536, !7, i64 2544, !10, i64 2552, !10, i64 2560, !7, i64 2568, !7, i64 2576, !12, i64 2584, !12, i64 2648, !12, i64 2712, !12, i64 2776, !12, i64 2840, !11, i64 2904, !11, i64 2905, !19, i64 2912, !10, i64 8616, !12, i64 8624, !7, i64 8688, !7, i64 8696, !7, i64 8704, !7, i64 8712, !7, i64 8720, !7, i64 8728, !7, i64 8736, !7, i64 8744, !11, i64 8752, !7, i64 8760, !7, i64 8768, !20, i64 8776, !12, i64 9040, !12, i64 9104, !10, i64 9168, !10, i64 9176, !10, i64 9184, !10, i64 9192, !12, i64 9200, !12, i64 9264, !12, i64 9328, !12, i64 9392, !12, i64 9456, !12, i64 9520, !26, i64 9584, !30, i64 19608, !31, i64 19632, !77, i64 150464, !78, i64 150704}
!19 = !{!"_ZTSN11alglib_impl17smoothnessmonitorE", !7, i64 0, !7, i64 8, !11, i64 16, !12, i64 24, !12, i64 88, !7, i64 152, !12, i64 160, !12, i64 224, !12, i64 288, !15, i64 352, !12, i64 432, !12, i64 496, !7, i64 560, !7, i64 568, !7, i64 576, !10, i64 584, !7, i64 592, !12, i64 600, !12, i64 664, !10, i64 728, !12, i64 736, !12, i64 800, !10, i64 864, !15, i64 872, !15, i64 952, !15, i64 1032, !12, i64 1112, !12, i64 1176, !20, i64 1240, !11, i64 1504, !11, i64 1505, !7, i64 1512, !7, i64 1520, !10, i64 1528, !10, i64 1536, !11, i64 1544, !22, i64 1552, !10, i64 1848, !10, i64 1856, !23, i64 1864, !23, i64 2184, !10, i64 2504, !10, i64 2512, !24, i64 2520, !24, i64 2840, !10, i64 3160, !10, i64 3168, !25, i64 3176, !25, i64 3504, !11, i64 3832, !12, i64 3840, !12, i64 3904, !15, i64 3968, !20, i64 4048, !12, i64 4312, !12, i64 4376, !12, i64 4440, !12, i64 4504, !12, i64 4568, !12, i64 4632, !12, i64 4696, !12, i64 4760, !15, i64 4824, !15, i64 4904, !12, i64 4984, !12, i64 5048, !12, i64 5112, !12, i64 5176, !12, i64 5240, !12, i64 5304, !12, i64 5368, !12, i64 5432, !12, i64 5496, !12, i64 5560, !15, i64 5624}
!20 = !{!"_ZTSN11alglib_impl10rcommstateE", !21, i64 0, !12, i64 8, !12, i64 72, !12, i64 136, !12, i64 200}
!21 = !{!"int", !8, i64 0}
!22 = !{!"_ZTSN11alglib_impl14optguardreportE", !11, i64 0, !11, i64 1, !7, i64 8, !10, i64 16, !11, i64 24, !11, i64 25, !11, i64 26, !7, i64 32, !10, i64 40, !11, i64 48, !7, i64 56, !7, i64 64, !12, i64 72, !15, i64 136, !15, i64 216}
!23 = !{!"_ZTSN11alglib_impl19optguardnonc0reportE", !11, i64 0, !7, i64 8, !12, i64 16, !12, i64 80, !7, i64 144, !12, i64 152, !12, i64 216, !7, i64 280, !7, i64 288, !7, i64 296, !7, i64 304, !7, i64 312}
!24 = !{!"_ZTSN11alglib_impl24optguardnonc1test0reportE", !11, i64 0, !7, i64 8, !12, i64 16, !12, i64 80, !7, i64 144, !12, i64 152, !12, i64 216, !7, i64 280, !7, i64 288, !7, i64 296, !7, i64 304, !7, i64 312}
!25 = !{!"_ZTSN11alglib_impl24optguardnonc1test1reportE", !11, i64 0, !7, i64 8, !7, i64 16, !12, i64 24, !12, i64 88, !7, i64 152, !12, i64 160, !12, i64 224, !7, i64 288, !7, i64 296, !7, i64 304, !7, i64 312, !7, i64 320}
!26 = !{!"_ZTSN11alglib_impl13minlbfgsstateE", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !7, i64 40, !11, i64 48, !10, i64 56, !12, i64 64, !10, i64 128, !7, i64 136, !7, i64 144, !7, i64 152, !7, i64 160, !7, i64 168, !12, i64 176, !15, i64 240, !15, i64 320, !12, i64 400, !12, i64 464, !12, i64 528, !10, i64 592, !10, i64 600, !12, i64 608, !10, i64 672, !10, i64 680, !12, i64 688, !7, i64 752, !10, i64 760, !15, i64 768, !12, i64 848, !12, i64 912, !12, i64 976, !15, i64 1040, !7, i64 1120, !27, i64 1128, !28, i64 1592, !10, i64 2040, !10, i64 2048, !10, i64 2056, !10, i64 2064, !10, i64 2072, !10, i64 2080, !12, i64 2088, !12, i64 2152, !7, i64 2216, !11, i64 2224, !12, i64 2232, !10, i64 2296, !12, i64 2304, !11, i64 2368, !11, i64 2369, !11, i64 2370, !7, i64 2376, !12, i64 2384, !10, i64 2448, !7, i64 2456, !7, i64 2464, !7, i64 2472, !7, i64 2480, !7, i64 2488, !12, i64 2496, !12, i64 2560, !12, i64 2624, !16, i64 2688, !12, i64 3056, !12, i64 3120, !12, i64 3184, !12, i64 3248, !15, i64 3312, !16, i64 3392, !10, i64 3760, !20, i64 3768, !7, i64 4032, !7, i64 4040, !7, i64 4048, !29, i64 4056, !7, i64 4248, !19, i64 4256, !12, i64 9960}
!27 = !{!"_ZTSN11alglib_impl12precbuflbfgsE", !12, i64 0, !12, i64 64, !12, i64 128, !15, i64 192, !12, i64 272, !12, i64 336, !12, i64 400}
!28 = !{!"_ZTSN11alglib_impl14precbuflowrankE", !7, i64 0, !7, i64 8, !12, i64 16, !15, i64 80, !12, i64 160, !15, i64 224, !15, i64 304, !12, i64 384}
!29 = !{!"_ZTSN11alglib_impl11linminstateE", !11, i64 0, !11, i64 1, !7, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176, !10, i64 184}
!30 = !{!"_ZTSN11alglib_impl14minlbfgsreportE", !7, i64 0, !7, i64 8, !7, i64 16}
!31 = !{!"_ZTSN11alglib_impl10minqpstateE", !7, i64 0, !32, i64 8, !33, i64 80, !10, i64 104, !7, i64 112, !11, i64 120, !11, i64 121, !7, i64 128, !7, i64 136, !34, i64 144, !11, i64 1832, !16, i64 1840, !11, i64 2208, !10, i64 2216, !10, i64 2224, !10, i64 2232, !12, i64 2240, !12, i64 2304, !12, i64 2368, !7, i64 2432, !12, i64 2440, !12, i64 2504, !12, i64 2568, !12, i64 2632, !12, i64 2696, !11, i64 2760, !35, i64 2768, !36, i64 4584, !39, i64 4792, !12, i64 4936, !10, i64 5000, !7, i64 5008, !7, i64 5016, !7, i64 5024, !7, i64 5032, !7, i64 5040, !12, i64 5048, !12, i64 5112, !12, i64 5176, !7, i64 5240, !7, i64 5248, !7, i64 5256, !7, i64 5264, !12, i64 5272, !12, i64 5336, !12, i64 5400, !12, i64 5464, !12, i64 5528, !12, i64 5592, !15, i64 5656, !16, i64 5736, !15, i64 6104, !40, i64 6184, !46, i64 12176, !46, i64 12320, !47, i64 12464, !51, i64 19768, !52, i64 31392, !63, i64 58040, !68, i64 81936, !70, i64 99144, !16, i64 130320, !39, i64 130688}
!32 = !{!"_ZTSN11alglib_impl11qqpsettingsE", !10, i64 0, !10, i64 8, !10, i64 16, !7, i64 24, !11, i64 32, !11, i64 33, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64}
!33 = !{!"_ZTSN11alglib_impl18qpdenseaulsettingsE", !10, i64 0, !7, i64 8, !10, i64 16}
!34 = !{!"_ZTSN11alglib_impl20convexquadraticmodelE", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !15, i64 40, !15, i64 120, !12, i64 200, !12, i64 264, !12, i64 328, !12, i64 392, !12, i64 456, !15, i64 520, !15, i64 600, !12, i64 680, !12, i64 744, !12, i64 808, !10, i64 872, !10, i64 880, !12, i64 888, !12, i64 952, !7, i64 1016, !7, i64 1024, !15, i64 1032, !15, i64 1112, !15, i64 1192, !12, i64 1272, !12, i64 1336, !10, i64 1400, !12, i64 1408, !12, i64 1472, !12, i64 1536, !15, i64 1600, !11, i64 1680, !11, i64 1681, !11, i64 1682, !11, i64 1683}
!35 = !{!"_ZTSN11alglib_impl18xlinearconstraintsE", !7, i64 0, !7, i64 8, !7, i64 16, !15, i64 24, !16, i64 104, !12, i64 472, !12, i64 536, !12, i64 600, !12, i64 664, !7, i64 728, !7, i64 736, !15, i64 744, !12, i64 824, !12, i64 888, !16, i64 952, !12, i64 1320, !12, i64 1384, !16, i64 1448}
!36 = !{!"_ZTSN11alglib_impl21xquadraticconstraintsE", !7, i64 0, !37, i64 8, !12, i64 144}
!37 = !{!"_ZTSN11alglib_impl12ae_obj_arrayE", !7, i64 0, !7, i64 8, !11, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !38, i64 56, !13, i64 104}
!38 = !{!"_ZTSN11alglib_impl7ae_lockE", !14, i64 0, !13, i64 8, !11, i64 40}
!39 = !{!"_ZTSN11alglib_impl17xconicconstraintsE", !7, i64 0, !37, i64 8}
!40 = !{!"_ZTSN11alglib_impl12presolveinfoE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !12, i64 64, !12, i64 128, !12, i64 192, !11, i64 256, !16, i64 264, !16, i64 632, !36, i64 1000, !39, i64 1208, !7, i64 1352, !12, i64 1360, !12, i64 1424, !12, i64 1488, !12, i64 1552, !16, i64 1616, !16, i64 1984, !12, i64 2352, !12, i64 2416, !36, i64 2480, !39, i64 2688, !12, i64 2832, !12, i64 2896, !12, i64 2960, !12, i64 3024, !12, i64 3088, !12, i64 3152, !12, i64 3216, !12, i64 3280, !41, i64 3344, !12, i64 4240, !12, i64 4304, !12, i64 4368, !12, i64 4432, !12, i64 4496, !12, i64 4560, !12, i64 4624, !42, i64 4688}
!41 = !{!"_ZTSN11alglib_impl14presolverstackE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !12, i64 40, !12, i64 104, !12, i64 168, !12, i64 232, !12, i64 296, !7, i64 360, !7, i64 368, !7, i64 376, !12, i64 384, !12, i64 448, !12, i64 512, !12, i64 576, !12, i64 640, !12, i64 704, !12, i64 768, !12, i64 832}
!42 = !{!"_ZTSN11alglib_impl15presolvebuffersE", !43, i64 0, !43, i64 152, !43, i64 304, !43, i64 456, !12, i64 608, !12, i64 672, !12, i64 736, !12, i64 800, !44, i64 864}
!43 = !{!"_ZTSN11alglib_impl5nisetE", !7, i64 0, !7, i64 8, !12, i64 16, !12, i64 80, !7, i64 144}
!44 = !{!"_ZTSN11alglib_impl21dynamiccrsqconstraintE", !7, i64 0, !12, i64 8, !12, i64 72, !45, i64 136, !10, i64 416, !10, i64 424, !11, i64 432}
!45 = !{!"_ZTSN11alglib_impl10dynamiccrsE", !7, i64 0, !7, i64 8, !7, i64 16, !12, i64 24, !12, i64 88, !12, i64 152, !12, i64 216}
!46 = !{!"_ZTSN11alglib_impl9ae_nxpoolE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !13, i64 32, !38, i64 64, !13, i64 112}
!47 = !{!"_ZTSN11alglib_impl10qqpbuffersE", !7, i64 0, !7, i64 8, !15, i64 16, !16, i64 96, !11, i64 464, !10, i64 472, !10, i64 480, !10, i64 488, !12, i64 496, !12, i64 560, !12, i64 624, !12, i64 688, !12, i64 752, !12, i64 816, !12, i64 880, !12, i64 944, !12, i64 1008, !12, i64 1072, !12, i64 1136, !12, i64 1200, !12, i64 1264, !48, i64 1328, !12, i64 5672, !7, i64 5736, !7, i64 5744, !15, i64 5752, !16, i64 5832, !12, i64 6200, !12, i64 6264, !12, i64 6328, !12, i64 6392, !12, i64 6456, !12, i64 6520, !12, i64 6584, !12, i64 6648, !12, i64 6712, !50, i64 6776, !7, i64 7272, !7, i64 7280, !7, i64 7288, !7, i64 7296}
!48 = !{!"_ZTSN11alglib_impl10sactivesetE", !7, i64 0, !7, i64 8, !12, i64 16, !11, i64 80, !12, i64 88, !12, i64 152, !12, i64 216, !11, i64 280, !15, i64 288, !15, i64 368, !15, i64 448, !7, i64 528, !12, i64 536, !7, i64 600, !7, i64 608, !11, i64 616, !11, i64 617, !12, i64 624, !12, i64 688, !12, i64 752, !12, i64 816, !15, i64 880, !7, i64 960, !7, i64 968, !12, i64 976, !12, i64 1040, !12, i64 1104, !12, i64 1168, !12, i64 1232, !12, i64 1296, !49, i64 1360, !12, i64 3000, !12, i64 3064, !12, i64 3128, !15, i64 3192, !12, i64 3272, !12, i64 3336, !12, i64 3400, !15, i64 3464, !15, i64 3544, !12, i64 3624, !12, i64 3688, !12, i64 3752, !15, i64 3816, !12, i64 3896, !12, i64 3960, !12, i64 4024, !12, i64 4088, !12, i64 4152, !12, i64 4216, !12, i64 4280}
!49 = !{!"_ZTSN11alglib_impl11snnlssolverE", !7, i64 0, !7, i64 8, !7, i64 16, !15, i64 24, !12, i64 104, !12, i64 168, !10, i64 232, !7, i64 240, !12, i64 248, !12, i64 312, !15, i64 376, !15, i64 456, !15, i64 536, !12, i64 616, !12, i64 680, !12, i64 744, !12, i64 808, !12, i64 872, !12, i64 936, !12, i64 1000, !12, i64 1064, !12, i64 1128, !12, i64 1192, !12, i64 1256, !12, i64 1320, !12, i64 1384, !12, i64 1448, !12, i64 1512, !12, i64 1576}
!50 = !{!"_ZTSN11alglib_impl13sparsebuffersE", !12, i64 0, !12, i64 64, !16, i64 128}
!51 = !{!"_ZTSN11alglib_impl17qpdenseaulbuffersE", !12, i64 0, !15, i64 64, !12, i64 144, !12, i64 208, !12, i64 272, !12, i64 336, !12, i64 400, !12, i64 464, !15, i64 528, !12, i64 608, !12, i64 672, !15, i64 736, !12, i64 816, !12, i64 880, !12, i64 944, !12, i64 1008, !12, i64 1072, !12, i64 1136, !32, i64 1200, !47, i64 1272, !12, i64 8576, !12, i64 8640, !12, i64 8704, !15, i64 8768, !12, i64 8848, !12, i64 8912, !12, i64 8976, !34, i64 9040, !16, i64 10728, !15, i64 11096, !12, i64 11176, !12, i64 11240, !12, i64 11304, !12, i64 11368, !12, i64 11432, !12, i64 11496, !7, i64 11560, !7, i64 11568, !7, i64 11576, !7, i64 11584, !7, i64 11592, !7, i64 11600, !7, i64 11608, !7, i64 11616}
!52 = !{!"_ZTSN11alglib_impl9vipmstateE", !11, i64 0, !11, i64 1, !7, i64 8, !7, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !11, i64 48, !12, i64 56, !12, i64 120, !12, i64 184, !10, i64 248, !12, i64 256, !15, i64 320, !16, i64 400, !12, i64 768, !7, i64 832, !11, i64 840, !12, i64 848, !12, i64 912, !12, i64 976, !12, i64 1040, !12, i64 1104, !12, i64 1168, !15, i64 1232, !15, i64 1312, !16, i64 1392, !16, i64 1760, !16, i64 2128, !12, i64 2496, !12, i64 2560, !12, i64 2624, !12, i64 2688, !12, i64 2752, !7, i64 2816, !7, i64 2824, !53, i64 2832, !53, i64 3488, !53, i64 4144, !53, i64 4800, !53, i64 5456, !12, i64 6112, !12, i64 6176, !12, i64 6240, !12, i64 6304, !12, i64 6368, !7, i64 6432, !7, i64 6440, !7, i64 6448, !7, i64 6456, !7, i64 6464, !7, i64 6472, !11, i64 6480, !11, i64 6481, !7, i64 6488, !11, i64 6496, !11, i64 6497, !12, i64 6504, !12, i64 6568, !12, i64 6632, !12, i64 6696, !12, i64 6760, !12, i64 6824, !12, i64 6888, !12, i64 6952, !12, i64 7016, !12, i64 7080, !12, i64 7144, !12, i64 7208, !12, i64 7272, !12, i64 7336, !12, i64 7400, !15, i64 7464, !12, i64 7544, !12, i64 7608, !12, i64 7672, !12, i64 7736, !12, i64 7800, !54, i64 7864, !62, i64 23944, !12, i64 24584, !12, i64 24648, !12, i64 24712, !12, i64 24776, !12, i64 24840, !12, i64 24904, !12, i64 24968, !12, i64 25032, !53, i64 25096, !12, i64 25752, !12, i64 25816, !12, i64 25880, !12, i64 25944, !12, i64 26008, !15, i64 26072, !12, i64 26152, !12, i64 26216, !16, i64 26280}
!53 = !{!"_ZTSN11alglib_impl8vipmvarsE", !7, i64 0, !7, i64 8, !12, i64 16, !12, i64 80, !12, i64 144, !12, i64 208, !12, i64 272, !12, i64 336, !12, i64 400, !12, i64 464, !12, i64 528, !12, i64 592}
!54 = !{!"_ZTSN11alglib_impl23vipmreducedsparsesystemE", !16, i64 0, !12, i64 368, !12, i64 432, !12, i64 496, !12, i64 560, !7, i64 624, !55, i64 632, !12, i64 15696, !12, i64 15760, !12, i64 15824, !12, i64 15888, !12, i64 15952, !12, i64 16016}
!55 = !{!"_ZTSN11alglib_impl14spcholanalysisE", !7, i64 0, !7, i64 8, !7, i64 16, !11, i64 24, !7, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !12, i64 72, !11, i64 136, !11, i64 137, !11, i64 138, !11, i64 139, !11, i64 140, !12, i64 144, !7, i64 208, !12, i64 216, !12, i64 280, !12, i64 344, !12, i64 408, !12, i64 472, !12, i64 536, !11, i64 600, !12, i64 608, !12, i64 672, !12, i64 736, !12, i64 800, !12, i64 864, !12, i64 928, !11, i64 992, !11, i64 993, !56, i64 1000, !12, i64 1512, !12, i64 1576, !12, i64 1640, !12, i64 1704, !12, i64 1768, !12, i64 1832, !46, i64 1896, !46, i64 2040, !46, i64 2184, !46, i64 2328, !46, i64 2472, !46, i64 2616, !12, i64 2760, !12, i64 2824, !12, i64 2888, !12, i64 2952, !12, i64 3016, !57, i64 3080, !61, i64 7464, !12, i64 13816, !12, i64 13880, !12, i64 13944, !12, i64 14008, !12, i64 14072, !12, i64 14136, !16, i64 14200, !16, i64 14568, !12, i64 14936, !12, i64 15000}
!56 = !{!"_ZTSN11alglib_impl9spcholadjE", !12, i64 0, !12, i64 64, !12, i64 128, !12, i64 192, !12, i64 256, !12, i64 320, !12, i64 384, !12, i64 448}
!57 = !{!"_ZTSN11alglib_impl9amdbufferE", !7, i64 0, !11, i64 8, !11, i64 9, !12, i64 16, !12, i64 80, !12, i64 144, !58, i64 208, !58, i64 568, !58, i64 928, !59, i64 1288, !60, i64 1496, !43, i64 1968, !12, i64 2120, !12, i64 2184, !12, i64 2248, !43, i64 2312, !43, i64 2464, !43, i64 2616, !43, i64 2768, !43, i64 2920, !43, i64 3072, !12, i64 3224, !7, i64 3288, !43, i64 3296, !43, i64 3448, !58, i64 3600, !43, i64 3960, !12, i64 4112, !12, i64 4176, !12, i64 4240, !15, i64 4304}
!58 = !{!"_ZTSN11alglib_impl8amdknsetE", !7, i64 0, !7, i64 8, !12, i64 16, !12, i64 80, !12, i64 144, !12, i64 208, !12, i64 272, !7, i64 336, !7, i64 344, !7, i64 352}
!59 = !{!"_ZTSN11alglib_impl11amdllmatrixE", !7, i64 0, !12, i64 8, !12, i64 72, !12, i64 136, !7, i64 200}
!60 = !{!"_ZTSN11alglib_impl12amdvertexsetE", !7, i64 0, !11, i64 8, !7, i64 16, !12, i64 24, !12, i64 88, !12, i64 152, !12, i64 216, !12, i64 280, !12, i64 344, !12, i64 408}
!61 = !{!"_ZTSN11alglib_impl18priorityamdbuffersE", !12, i64 0, !12, i64 64, !57, i64 128, !16, i64 4512, !16, i64 4880, !16, i64 5248, !16, i64 5616, !16, i64 5984}
!62 = !{!"_ZTSN11alglib_impl17vipmrighthandsideE", !12, i64 0, !12, i64 64, !12, i64 128, !12, i64 192, !12, i64 256, !12, i64 320, !12, i64 384, !12, i64 448, !12, i64 512, !12, i64 576}
!63 = !{!"_ZTSN11alglib_impl9ipm2stateE", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !7, i64 48, !11, i64 56, !12, i64 64, !12, i64 128, !12, i64 192, !10, i64 256, !12, i64 264, !16, i64 328, !12, i64 696, !11, i64 760, !10, i64 768, !12, i64 776, !12, i64 840, !12, i64 904, !12, i64 968, !12, i64 1032, !12, i64 1096, !12, i64 1160, !12, i64 1224, !12, i64 1288, !12, i64 1352, !12, i64 1416, !12, i64 1480, !12, i64 1544, !12, i64 1608, !12, i64 1672, !16, i64 1736, !12, i64 2104, !7, i64 2168, !64, i64 2176, !64, i64 2576, !64, i64 2976, !64, i64 3376, !12, i64 3776, !12, i64 3840, !12, i64 3904, !12, i64 3968, !7, i64 4032, !7, i64 4040, !12, i64 4048, !12, i64 4112, !12, i64 4176, !65, i64 4240, !7, i64 4624, !7, i64 4632, !11, i64 4640, !11, i64 4641, !11, i64 4642, !66, i64 4648, !66, i64 4672, !66, i64 4696, !66, i64 4720, !66, i64 4744, !67, i64 4768, !65, i64 21736, !12, i64 22120, !12, i64 22184, !12, i64 22248, !12, i64 22312, !12, i64 22376, !15, i64 22440, !16, i64 22520, !12, i64 22888, !12, i64 22952, !16, i64 23016, !16, i64 23384, !15, i64 23752, !12, i64 23832}
!64 = !{!"_ZTSN11alglib_impl8ipm2varsE", !7, i64 0, !7, i64 8, !12, i64 16, !12, i64 80, !12, i64 144, !12, i64 208, !12, i64 272, !12, i64 336}
!65 = !{!"_ZTSN11alglib_impl17ipm2righthandsideE", !12, i64 0, !12, i64 64, !12, i64 128, !12, i64 192, !12, i64 256, !12, i64 320}
!66 = !{!"_ZTSN11alglib_impl6stimerE", !7, i64 0, !7, i64 8, !11, i64 16}
!67 = !{!"_ZTSN11alglib_impl17ipm2reducedsystemE", !16, i64 0, !12, i64 368, !55, i64 432, !12, i64 15496, !12, i64 15560, !12, i64 15624, !12, i64 15688, !12, i64 15752, !12, i64 15816, !12, i64 15880, !12, i64 15944, !12, i64 16008, !12, i64 16072, !12, i64 16136, !12, i64 16200, !12, i64 16264, !12, i64 16328, !12, i64 16392, !12, i64 16456, !12, i64 16520, !12, i64 16584, !12, i64 16648, !12, i64 16712, !12, i64 16776, !12, i64 16840, !12, i64 16904}
!68 = !{!"_ZTSN11alglib_impl9ecqpstateE", !16, i64 0, !12, i64 368, !55, i64 432, !12, i64 15496, !12, i64 15560, !12, i64 15624, !12, i64 15688, !12, i64 15752, !69, i64 15816, !7, i64 17064, !7, i64 17072, !11, i64 17080, !11, i64 17081, !66, i64 17088, !66, i64 17112, !66, i64 17136, !66, i64 17160, !66, i64 17184}
!69 = !{!"_ZTSN11alglib_impl14fblsgmresstateE", !12, i64 0, !12, i64 64, !12, i64 128, !12, i64 192, !15, i64 256, !15, i64 336, !15, i64 416, !15, i64 496, !15, i64 576, !12, i64 656, !12, i64 720, !12, i64 784, !12, i64 848, !7, i64 912, !7, i64 920, !10, i64 928, !10, i64 936, !10, i64 944, !10, i64 952, !7, i64 960, !7, i64 968, !10, i64 976, !20, i64 984}
!70 = !{!"_ZTSN11alglib_impl11gqpipmstateE", !11, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !12, i64 40, !7, i64 104, !10, i64 112, !7, i64 120, !12, i64 128, !12, i64 192, !12, i64 256, !12, i64 320, !12, i64 384, !12, i64 448, !7, i64 512, !12, i64 520, !12, i64 584, !15, i64 648, !16, i64 728, !16, i64 1096, !12, i64 1464, !12, i64 1528, !36, i64 1592, !39, i64 1800, !10, i64 1944, !7, i64 1952, !7, i64 1960, !7, i64 1968, !11, i64 1976, !11, i64 1977, !66, i64 1984, !71, i64 2008, !15, i64 12320, !15, i64 12400, !12, i64 12480, !12, i64 12544, !15, i64 12608, !15, i64 12688, !12, i64 12768, !12, i64 12832, !16, i64 12896, !16, i64 13264, !16, i64 13632, !16, i64 14000, !12, i64 14368, !55, i64 14432, !46, i64 29496, !12, i64 29640, !12, i64 29704, !16, i64 29768, !12, i64 30136, !12, i64 30200, !12, i64 30264, !12, i64 30328, !12, i64 30392, !12, i64 30456, !15, i64 30520, !12, i64 30600, !12, i64 30664, !12, i64 30728, !12, i64 30792, !12, i64 30856, !12, i64 30920, !12, i64 30984, !12, i64 31048, !12, i64 31112}
!71 = !{!"_ZTSN11alglib_impl9gipmstateE", !7, i64 0, !7, i64 8, !7, i64 16, !12, i64 24, !12, i64 88, !12, i64 152, !12, i64 216, !12, i64 280, !12, i64 344, !12, i64 408, !10, i64 472, !7, i64 480, !7, i64 488, !12, i64 496, !10, i64 560, !12, i64 568, !12, i64 632, !16, i64 696, !12, i64 1064, !12, i64 1128, !11, i64 1192, !11, i64 1193, !11, i64 1194, !12, i64 1200, !12, i64 1264, !12, i64 1328, !12, i64 1392, !12, i64 1456, !12, i64 1520, !12, i64 1584, !12, i64 1648, !10, i64 1712, !10, i64 1720, !10, i64 1728, !10, i64 1736, !10, i64 1744, !7, i64 1752, !72, i64 1760, !72, i64 2560, !73, i64 3360, !73, i64 3960, !10, i64 4560, !7, i64 4568, !74, i64 4576, !11, i64 4744, !11, i64 4745, !11, i64 4746, !7, i64 4752, !7, i64 4760, !66, i64 4768, !46, i64 4792, !75, i64 4936, !76, i64 5704, !72, i64 6856, !72, i64 7656, !12, i64 8456, !12, i64 8520, !12, i64 8584, !72, i64 8648, !73, i64 9448, !20, i64 10048}
!72 = !{!"_ZTSN11alglib_impl8gipmvarsE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !12, i64 32, !12, i64 96, !12, i64 160, !12, i64 224, !12, i64 288, !12, i64 352, !12, i64 416, !12, i64 480, !12, i64 544, !12, i64 608, !12, i64 672, !12, i64 736}
!73 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !7, i64 0, !7, i64 8, !11, i64 16, !12, i64 24, !12, i64 88, !15, i64 152, !16, i64 232}
!74 = !{!"_ZTSN11alglib_impl9nlpfilterE", !10, i64 0, !7, i64 8, !10, i64 16, !10, i64 24, !11, i64 32, !12, i64 40, !12, i64 104}
!75 = !{!"_ZTSN11alglib_impl7gipmrhsE", !12, i64 0, !12, i64 64, !12, i64 128, !12, i64 192, !12, i64 256, !12, i64 320, !12, i64 384, !12, i64 448, !12, i64 512, !12, i64 576, !12, i64 640, !12, i64 704}
!76 = !{!"_ZTSN11alglib_impl19gipmcondensedsystemE", !12, i64 0, !12, i64 64, !12, i64 128, !12, i64 192, !12, i64 256, !12, i64 320, !12, i64 384, !12, i64 448, !12, i64 512, !12, i64 576, !12, i64 640, !12, i64 704, !12, i64 768, !12, i64 832, !12, i64 896, !12, i64 960, !12, i64 1024, !12, i64 1088}
!77 = !{!"_ZTSN11alglib_impl11minqpreportE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !10, i64 40, !12, i64 48, !12, i64 112, !12, i64 176}
!78 = !{!"_ZTSN11alglib_impl15minlmstepfinderE", !7, i64 0, !7, i64 8, !10, i64 16, !7, i64 24, !7, i64 32, !10, i64 40, !12, i64 48, !10, i64 112, !12, i64 120, !11, i64 184, !11, i64 185, !10, i64 192, !12, i64 200, !12, i64 264, !12, i64 328, !12, i64 392, !12, i64 456, !12, i64 520, !12, i64 584, !12, i64 648, !20, i64 712, !12, i64 976, !12, i64 1040, !12, i64 1104, !12, i64 1168, !10, i64 1232, !10, i64 1240, !31, i64 1248, !77, i64 132080, !16, i64 132320}
!79 = !{!"_ZTSN11alglib_impl11minlmreportE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48}
!80 = !{!8, !8, i64 0}
!81 = !{!7, !7, i64 0}
!82 = !{!10, !10, i64 0}
!83 = !{!6, !7, i64 608}
!84 = !{!6, !7, i64 528}
!85 = !{!6, !7, i64 600}
!86 = !{!6, !7, i64 2848}
!87 = !{!6, !7, i64 16}
!88 = !{!6, !7, i64 24}
!89 = !{!6, !7, i64 720}
!90 = !{!6, !7, i64 728}
!91 = distinct !{!91, !92}
!92 = !{!"llvm.loop.mustprogress"}
!93 = distinct !{!93, !92}
!94 = !{!6, !10, i64 32}
!95 = !{!6, !7, i64 40}
!96 = !{!6, !10, i64 48}
!97 = !{!6, !11, i64 56}
!98 = !{i8 0, i8 2}
!99 = !{}
!100 = !{!6, !7, i64 736}
!101 = !{!6, !7, i64 960}
!102 = !{!6, !7, i64 0}
!103 = !{!6, !10, i64 632}
!104 = !{!6, !7, i64 8}
!105 = distinct !{!105, !92}
!106 = !{!6, !7, i64 1040}
!107 = !{!6, !7, i64 1048}
!108 = !{!6, !7, i64 1056}
!109 = !{!6, !7, i64 1064}
!110 = !{!14, !14, i64 0}
!111 = distinct !{!111, !92}
!112 = !{!6, !11, i64 746}
!113 = !{!6, !7, i64 2840}
!114 = !{!6, !10, i64 888}
!115 = distinct !{!115, !92}
!116 = distinct !{!116, !117}
!117 = !{!"llvm.loop.unroll.disable"}
!118 = distinct !{!118, !92}
!119 = !{!6, !11, i64 3708}
!120 = !{!6, !7, i64 752}
!121 = !{!6, !11, i64 745}
!122 = !{!6, !11, i64 3704}
!123 = !{!6, !10, i64 3408}
!124 = !{!6, !11, i64 3705}
!125 = distinct !{!125, !92}
!126 = distinct !{!126, !117}
!127 = !{!6, !11, i64 3707}
!128 = !{!6, !11, i64 3709}
!129 = !{!6, !11, i64 744}
!130 = !{!6, !7, i64 3712}
!131 = !{!6, !10, i64 3784}
!132 = !{!6, !10, i64 1032}
!133 = !{!6, !7, i64 3792}
!134 = !{!6, !7, i64 3800}
!135 = !{!6, !7, i64 3808}
!136 = !{!6, !7, i64 3816}
!137 = distinct !{!137, !92}
!138 = distinct !{!138, !92}
!139 = distinct !{!139, !92}
!140 = !{!6, !7, i64 3824}
!141 = !{!6, !7, i64 1072}
!142 = distinct !{!142, !92}
!143 = distinct !{!143, !92}
!144 = distinct !{!144, !92}
!145 = distinct !{!145, !92}
!146 = distinct !{!146, !92}
!147 = distinct !{!147, !92}
!148 = distinct !{!148, !92}
!149 = !{!6, !7, i64 286648}
!150 = !{!6, !7, i64 286640}
!151 = !{!6, !7, i64 2832}
!152 = distinct !{!152, !92}
!153 = distinct !{!153, !92}
!154 = distinct !{!154, !92}
!155 = !{!6, !10, i64 2856}
!156 = !{!6, !10, i64 2888}
!157 = !{!6, !10, i64 2864}
!158 = !{!6, !10, i64 2872}
!159 = !{!6, !10, i64 2880}
!160 = distinct !{!160, !92}
!161 = !{!6, !10, i64 624}
!162 = distinct !{!162, !92}
!163 = distinct !{!163, !92}
!164 = distinct !{!164, !92}
!165 = distinct !{!165, !92}
!166 = distinct !{!166, !92}
!167 = distinct !{!167, !92}
!168 = distinct !{!168, !92}
!169 = distinct !{!169, !92}
!170 = distinct !{!170, !92}
!171 = distinct !{!171, !92}
!172 = distinct !{!172, !92}
!173 = distinct !{!173, !92}
!174 = distinct !{!174, !92}
!175 = distinct !{!175, !117}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass