; LLVM IR from Dimandragon/non-parametric-dsp :: alglib-cpp/src/optimization.ll (ZN11alglib_impl12nbiiterationEPNS_8nbistateEPNS_8ae_stateE)

; 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::nbistate" = type { i64, i64, double, i64, i8, %"struct.alglib_impl::ae_vector", i64, i8, %"struct.alglib_impl::ae_vector", %"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", i64, %"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", i8, i8, %"struct.alglib_impl::rcommstate", i8, %"struct.alglib_impl::ae_matrix", i64, i64, i64, i64, i64, double, i64, double, i64, double, i64, %"struct.alglib_impl::minnlcstate", %"struct.alglib_impl::minnlcreport", %"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", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, %"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::hqrndstate", %"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::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::rcommstate" = type { i32, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"struct.alglib_impl::minnlcstate" = type { double, double, i64, i64, %"struct.alglib_impl::nlpstoppingcriteria", i64, 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::xlinearconstraints", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i8, %"struct.alglib_impl::ae_vector", double, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", 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", %"struct.alglib_impl::rcommstate", %"struct.alglib_impl::rcommstate", %"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::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", double, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::minaulstate", %"struct.alglib_impl::sparsematrix", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i8, %"struct.alglib_impl::minsqpstate", %"struct.alglib_impl::minfsqpstate", i64, %"struct.alglib_impl::smoothnessmonitor", %"struct.alglib_impl::ae_vector", i64, i64, i64, i64, double, i64, double, i64, 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", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64 }
%"struct.alglib_impl::nlpstoppingcriteria" = type { double, double, i64 }
%"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::minaulstate" = 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", %"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::nlpstoppingcriteria", i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", double, i8, i8, i8, double, %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", 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", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::minaulpreconditioner", %"struct.alglib_impl::xbfgshessian", %"struct.alglib_impl::xbfgshessian", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, i64, double, i64, %"struct.alglib_impl::linminstate", double, double, %"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::varsfuncjac", %"struct.alglib_impl::varsfuncjac", i64, i64, i64, double, i64, double, i64, double, i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::minaulpreconditioner" = type { i64, i64, %"struct.alglib_impl::spcholanalysis", %"struct.alglib_impl::sparsematrix", i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i64, %"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_matrix", %"struct.alglib_impl::ae_matrix", %"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::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::ae_lock" = type { ptr, %"struct.alglib_impl::ae_dyn_block", i8 }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"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::niset" = type { i64, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", 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::xbfgshessian" = type { i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64, i64, double, double, double, double, double, double, double, i64, double, double, %"struct.alglib_impl::ae_matrix", i64, double, double, double, i64, double, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i8, i64, %"struct.alglib_impl::ae_matrix", %"struct.alglib_impl::ae_matrix", i8, %"struct.alglib_impl::ae_vector", i8, i64, %"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", i8, %"struct.alglib_impl::ae_vector", double, double, i64, %"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_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_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_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::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::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::minsqpstate" = type { i64, i64, i64, i64, i64, i8, %"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::nlpstoppingcriteria", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_matrix", double, i8, i8, double, double, double, i64, i64, %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::minsqpsubsolver", %"struct.alglib_impl::xbfgshessian", %"struct.alglib_impl::ae_obj_array", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"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", i64, i64, double, i64, double, i64, double, i64, %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::minsqpsubsolver" = type { %"struct.alglib_impl::vipmstate", %"struct.alglib_impl::ipm2state", %"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_matrix", %"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_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", i64, %"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::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::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::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::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::stimer" = type { i64, i64, i8 }
%"struct.alglib_impl::minfsqpstate" = type { i64, i64, i64, i8, %"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_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", double, double, %"struct.alglib_impl::nlpstoppingcriteria", i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::sparsematrix", double, i8, i8, double, double, i64, i64, %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::minfsqpsubsolver", %"struct.alglib_impl::xbfgshessian", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::varsfuncjac", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::nlpfilter", %"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", i64, i64, double, i64, double, i64, double, i64, %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::stimer", %"struct.alglib_impl::rcommstate" }
%"struct.alglib_impl::minfsqpsubsolver" = type { %"struct.alglib_impl::vipmstate", %"struct.alglib_impl::ipm2state", %"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", double, double, %"struct.alglib_impl::ae_matrix", %"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_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", i64, %"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::nlpfilter" = type { double, i64, double, double, i8, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector" }
%"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::minnlcreport" = type { i64, i64, i64, double, i64, double, i64, double, i64, %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", %"struct.alglib_impl::ae_vector", i64 }
%"struct.alglib_impl::hqrndstate" = type { i64, i64, i64 }
%"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::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"struct.alglib_impl::ae_state" = type { i64, double, double, double, ptr, %"struct.alglib_impl::ae_dyn_block", ptr, i32, ptr, i64, ptr, ptr, ptr }

@.str.208 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.1653 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1654 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.1655 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.1656 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1657 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.1658 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1659 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1660 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1661 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1662 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1663 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1664 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.1665 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1666 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1667 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1668 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1669 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1670 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1671 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.1672 = 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
declare dso_local void @_ZN11alglib_impl12minnlccreateElPKNS_9ae_vectorEPNS_11minnlcstateEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl13minnlcsetcondEPNS_11minnlcstateEdlPNS_8ae_stateE(ptr noundef, double noundef, i64 noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef, ptr noundef) #2

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

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

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

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

declare noundef double @_ZN11alglib_impl8coalesceEddPNS_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 zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef, double noundef) #1

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

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

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

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

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

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

declare void @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef, ...) #1

declare noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef) #1

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

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

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

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

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

declare noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) #1

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

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

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

declare void @_ZN11alglib_impl6rcopymEllPKNS_9ae_matrixEPS0_PNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef, 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_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef) #1

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

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

declare noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) #1

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN11alglib_implL24monbi_clearrequestfieldsEPNS_8nbistateEPNS_8ae_stateE(ptr noundef, ptr noundef) #4

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl12nbiiterationEPNS_8nbistateEPNS_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 i64, align 8
  %7 = alloca i64, align 8
  %8 = alloca i64, align 8
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = 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) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #5
  %19 = load ptr, ptr %4, align 8, !tbaa !5
  %20 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %19, i32 0, i32 25
  %21 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %20, i32 0, i32 0
  %22 = load i32, ptr %21, align 8, !tbaa !9
  %23 = icmp sge i32 %22, 0
  br i1 %23, label %24, label %104

24:                                               ; preds = %2
  %25 = load ptr, ptr %4, align 8, !tbaa !5
  %26 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %25, i32 0, i32 25
  %27 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %26, i32 0, i32 1
  %28 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %27, i32 0, i32 4
  %29 = load ptr, ptr %28, align 8, !tbaa !60
  %30 = getelementptr inbounds i64, ptr %29, i64 0
  %31 = load i64, ptr %30, align 8, !tbaa !61
  store i64 %31, ptr %6, align 8, !tbaa !61
  %32 = load ptr, ptr %4, align 8, !tbaa !5
  %33 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %32, i32 0, i32 25
  %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 !60
  %37 = getelementptr inbounds i64, ptr %36, i64 1
  %38 = load i64, ptr %37, align 8, !tbaa !61
  store i64 %38, ptr %7, align 8, !tbaa !61
  %39 = load ptr, ptr %4, align 8, !tbaa !5
  %40 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %39, i32 0, i32 25
  %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 !60
  %44 = getelementptr inbounds i64, ptr %43, i64 2
  %45 = load i64, ptr %44, align 8, !tbaa !61
  store i64 %45, ptr %8, align 8, !tbaa !61
  %46 = load ptr, ptr %4, align 8, !tbaa !5
  %47 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %46, i32 0, i32 25
  %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 !60
  %51 = getelementptr inbounds i64, ptr %50, i64 3
  %52 = load i64, ptr %51, align 8, !tbaa !61
  store i64 %52, ptr %9, align 8, !tbaa !61
  %53 = load ptr, ptr %4, align 8, !tbaa !5
  %54 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %53, i32 0, i32 25
  %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 !60
  %58 = getelementptr inbounds i64, ptr %57, i64 4
  %59 = load i64, ptr %58, align 8, !tbaa !61
  store i64 %59, ptr %10, align 8, !tbaa !61
  %60 = load ptr, ptr %4, align 8, !tbaa !5
  %61 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %60, i32 0, i32 25
  %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 !60
  %65 = getelementptr inbounds i64, ptr %64, i64 5
  %66 = load i64, ptr %65, align 8, !tbaa !61
  store i64 %66, ptr %11, align 8, !tbaa !61
  %67 = load ptr, ptr %4, align 8, !tbaa !5
  %68 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %67, i32 0, i32 25
  %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 !60
  %72 = getelementptr inbounds i64, ptr %71, i64 6
  %73 = load i64, ptr %72, align 8, !tbaa !61
  store i64 %73, ptr %12, align 8, !tbaa !61
  %74 = load ptr, ptr %4, align 8, !tbaa !5
  %75 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %74, i32 0, i32 25
  %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 !60
  %79 = getelementptr inbounds i64, ptr %78, i64 7
  %80 = load i64, ptr %79, align 8, !tbaa !61
  store i64 %80, ptr %13, align 8, !tbaa !61
  %81 = load ptr, ptr %4, align 8, !tbaa !5
  %82 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %81, i32 0, i32 25
  %83 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %82, i32 0, i32 2
  %84 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %83, i32 0, i32 4
  %85 = load ptr, ptr %84, align 8, !tbaa !60
  %86 = getelementptr inbounds i8, ptr %85, i64 0
  %87 = load i8, ptr %86, align 1, !tbaa !62, !range !63, !noundef !64
  %88 = trunc i8 %87 to i1
  %89 = zext i1 %88 to i8
  store i8 %89, ptr %16, align 1, !tbaa !62
  %90 = load ptr, ptr %4, align 8, !tbaa !5
  %91 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %90, i32 0, i32 25
  %92 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %91, i32 0, i32 3
  %93 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %92, i32 0, i32 4
  %94 = load ptr, ptr %93, align 8, !tbaa !60
  %95 = getelementptr inbounds double, ptr %94, i64 0
  %96 = load double, ptr %95, align 8, !tbaa !65
  store double %96, ptr %14, align 8, !tbaa !65
  %97 = load ptr, ptr %4, align 8, !tbaa !5
  %98 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %97, i32 0, i32 25
  %99 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %98, i32 0, i32 3
  %100 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %99, i32 0, i32 4
  %101 = load ptr, ptr %100, align 8, !tbaa !60
  %102 = getelementptr inbounds double, ptr %101, i64 1
  %103 = load double, ptr %102, align 8, !tbaa !65
  store double %103, ptr %15, align 8, !tbaa !65
  br label %105

104:                                              ; preds = %2
  store i64 359, ptr %6, align 8, !tbaa !61
  store i64 -58, ptr %7, align 8, !tbaa !61
  store i64 -919, ptr %8, align 8, !tbaa !61
  store i64 -909, ptr %9, align 8, !tbaa !61
  store i64 81, ptr %10, align 8, !tbaa !61
  store i64 255, ptr %11, align 8, !tbaa !61
  store i64 74, ptr %12, align 8, !tbaa !61
  store i64 -788, ptr %13, align 8, !tbaa !61
  store i8 1, ptr %16, align 1, !tbaa !62
  store double 2.050000e+02, ptr %14, align 8, !tbaa !65
  store double -8.380000e+02, ptr %15, align 8, !tbaa !65
  br label %105

105:                                              ; preds = %104, %24
  %106 = load ptr, ptr %4, align 8, !tbaa !5
  %107 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %106, i32 0, i32 25
  %108 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %107, i32 0, i32 0
  %109 = load i32, ptr %108, align 8, !tbaa !9
  %110 = icmp eq i32 %109, 0
  br i1 %110, label %111, label %112

111:                                              ; preds = %105
  br label %373

112:                                              ; preds = %105
  %113 = load ptr, ptr %4, align 8, !tbaa !5
  %114 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %113, i32 0, i32 25
  %115 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %114, i32 0, i32 0
  %116 = load i32, ptr %115, align 8, !tbaa !9
  %117 = icmp eq i32 %116, 1
  br i1 %117, label %118, label %119

118:                                              ; preds = %112
  br label %437

119:                                              ; preds = %112
  %120 = load ptr, ptr %4, align 8, !tbaa !5
  %121 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %120, i32 0, i32 25
  %122 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %121, i32 0, i32 0
  %123 = load i32, ptr %122, align 8, !tbaa !9
  %124 = icmp eq i32 %123, 2
  br i1 %124, label %125, label %126

125:                                              ; preds = %119
  br label %611

126:                                              ; preds = %119
  %127 = load ptr, ptr %4, align 8, !tbaa !5
  %128 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %127, i32 0, i32 25
  %129 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %128, i32 0, i32 0
  %130 = load i32, ptr %129, align 8, !tbaa !9
  %131 = icmp eq i32 %130, 3
  br i1 %131, label %132, label %133

132:                                              ; preds = %126
  br label %661

133:                                              ; preds = %126
  %134 = load ptr, ptr %4, align 8, !tbaa !5
  %135 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %134, i32 0, i32 25
  %136 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %135, i32 0, i32 0
  %137 = load i32, ptr %136, align 8, !tbaa !9
  %138 = icmp eq i32 %137, 4
  br i1 %138, label %139, label %140

139:                                              ; preds = %133
  br label %731

140:                                              ; preds = %133
  %141 = load ptr, ptr %4, align 8, !tbaa !5
  %142 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %141, i32 0, i32 25
  %143 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %142, i32 0, i32 0
  %144 = load i32, ptr %143, align 8, !tbaa !9
  %145 = icmp eq i32 %144, 5
  br i1 %145, label %146, label %147

146:                                              ; preds = %140
  br label %979

147:                                              ; preds = %140
  %148 = load ptr, ptr %4, align 8, !tbaa !5
  %149 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %148, i32 0, i32 25
  %150 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %149, i32 0, i32 0
  %151 = load i32, ptr %150, align 8, !tbaa !9
  %152 = icmp eq i32 %151, 6
  br i1 %152, label %153, label %154

153:                                              ; preds = %147
  br label %1031

154:                                              ; preds = %147
  %155 = load ptr, ptr %4, align 8, !tbaa !5
  %156 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %155, i32 0, i32 25
  %157 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %156, i32 0, i32 0
  %158 = load i32, ptr %157, align 8, !tbaa !9
  %159 = icmp eq i32 %158, 7
  br i1 %159, label %160, label %161

160:                                              ; preds = %154
  br label %1202

161:                                              ; preds = %154
  %162 = load ptr, ptr %4, align 8, !tbaa !5
  %163 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %162, i32 0, i32 25
  %164 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %163, i32 0, i32 0
  %165 = load i32, ptr %164, align 8, !tbaa !9
  %166 = icmp eq i32 %165, 8
  br i1 %166, label %167, label %168

167:                                              ; preds = %161
  br label %1706

168:                                              ; preds = %161
  %169 = load ptr, ptr %4, align 8, !tbaa !5
  %170 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %169, i32 0, i32 25
  %171 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %170, i32 0, i32 0
  %172 = load i32, ptr %171, align 8, !tbaa !9
  %173 = icmp eq i32 %172, 9
  br i1 %173, label %174, label %175

174:                                              ; preds = %168
  br label %1803

175:                                              ; preds = %168
  %176 = load ptr, ptr %4, align 8, !tbaa !5
  %177 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %176, i32 0, i32 25
  %178 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %177, i32 0, i32 0
  %179 = load i32, ptr %178, align 8, !tbaa !9
  %180 = icmp eq i32 %179, 10
  br i1 %180, label %181, label %182

181:                                              ; preds = %175
  br label %2109

182:                                              ; preds = %175
  %183 = load ptr, ptr %4, align 8, !tbaa !5
  %184 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %183, i32 0, i32 25
  %185 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %184, i32 0, i32 0
  %186 = load i32, ptr %185, align 8, !tbaa !9
  %187 = icmp eq i32 %186, 11
  br i1 %187, label %188, label %189

188:                                              ; preds = %182
  br label %2159

189:                                              ; preds = %182
  %190 = load ptr, ptr %4, align 8, !tbaa !5
  %191 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %190, i32 0, i32 25
  %192 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %191, i32 0, i32 0
  %193 = load i32, ptr %192, align 8, !tbaa !9
  %194 = icmp eq i32 %193, 12
  br i1 %194, label %195, label %196

195:                                              ; preds = %189
  br label %2260

196:                                              ; preds = %189
  %197 = load ptr, ptr %4, align 8, !tbaa !5
  %198 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %197, i32 0, i32 25
  %199 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %198, i32 0, i32 0
  %200 = load i32, ptr %199, align 8, !tbaa !9
  %201 = icmp eq i32 %200, 13
  br i1 %201, label %202, label %203

202:                                              ; preds = %196
  br label %2522

203:                                              ; preds = %196
  %204 = load ptr, ptr %4, align 8, !tbaa !5
  %205 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %204, i32 0, i32 25
  %206 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %205, i32 0, i32 0
  %207 = load i32, ptr %206, align 8, !tbaa !9
  %208 = icmp eq i32 %207, 14
  br i1 %208, label %209, label %210

209:                                              ; preds = %203
  br label %2574

210:                                              ; preds = %203
  %211 = load ptr, ptr %4, align 8, !tbaa !5
  %212 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %211, i32 0, i32 25
  %213 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %212, i32 0, i32 0
  %214 = load i32, ptr %213, align 8, !tbaa !9
  %215 = icmp eq i32 %214, 15
  br i1 %215, label %216, label %217

216:                                              ; preds = %210
  br label %2753

217:                                              ; preds = %210
  %218 = load ptr, ptr %4, align 8, !tbaa !5
  %219 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %218, i32 0, i32 0
  %220 = load i64, ptr %219, align 8, !tbaa !66
  store i64 %220, ptr %6, align 8, !tbaa !61
  %221 = load ptr, ptr %4, align 8, !tbaa !5
  %222 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %221, i32 0, i32 1
  %223 = load i64, ptr %222, align 8, !tbaa !67
  store i64 %223, ptr %7, align 8, !tbaa !61
  %224 = load ptr, ptr %4, align 8, !tbaa !5
  %225 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %224, i32 0, i32 6
  %226 = load i64, ptr %225, align 8, !tbaa !68
  store i64 %226, ptr %9, align 8, !tbaa !61
  %227 = load ptr, ptr %4, align 8, !tbaa !5
  %228 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %227, i32 0, i32 57
  %229 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9hqrndseedEllPNS_10hqrndstateEPNS_8ae_stateE(i64 noundef 348546, i64 noundef 436734, ptr noundef %228, ptr noundef %229)
  %230 = load i64, ptr %7, align 8, !tbaa !61
  %231 = icmp sgt i64 %230, 1
  br i1 %231, label %235, label %232

232:                                              ; preds = %217
  %233 = load i64, ptr %9, align 8, !tbaa !61
  %234 = icmp eq i64 %233, 1
  br label %235

235:                                              ; preds = %232, %217
  %236 = phi i1 [ true, %217 ], [ %234, %232 ]
  %237 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %236, ptr noundef @.str.1653, ptr noundef %237)
  %238 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1654)
  %239 = zext i1 %238 to i8
  store i8 %239, ptr %16, align 1, !tbaa !62
  %240 = load i8, ptr %16, align 1, !tbaa !62, !range !63, !noundef !64
  %241 = trunc i8 %240 to i1
  br i1 %241, label %242, label %247

242:                                              ; preds = %235
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.612)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.212)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1655)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.212)
  %243 = load i64, ptr %6, align 8, !tbaa !61
  %244 = trunc i64 %243 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1656, i32 noundef %244)
  %245 = load i64, ptr %7, align 8, !tbaa !61
  %246 = trunc i64 %245 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1657, i32 noundef %246)
  br label %247

247:                                              ; preds = %242, %235
  %248 = load ptr, ptr %4, align 8, !tbaa !5
  %249 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL24monbi_clearrequestfieldsEPNS_8nbistateEPNS_8ae_stateE(ptr noundef %248, ptr noundef %249)
  %250 = load ptr, ptr %4, align 8, !tbaa !5
  %251 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %250, i32 0, i32 6
  %252 = load i64, ptr %251, align 8, !tbaa !68
  %253 = load i64, ptr %7, align 8, !tbaa !61
  %254 = icmp sge i64 %252, %253
  %255 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %254, ptr noundef @.str.1658, ptr noundef %255)
  %256 = load i64, ptr %9, align 8, !tbaa !61
  %257 = load i64, ptr %6, align 8, !tbaa !61
  %258 = load i64, ptr %7, align 8, !tbaa !61
  %259 = add nsw i64 %257, %258
  %260 = load i64, ptr %7, align 8, !tbaa !61
  %261 = add nsw i64 %259, %260
  %262 = load ptr, ptr %5, align 8, !tbaa !5
  %263 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %262, i32 0, i32 1
  %264 = load double, ptr %263, align 8, !tbaa !69
  %265 = load ptr, ptr %4, align 8, !tbaa !5
  %266 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %265, i32 0, i32 27
  %267 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %256, i64 noundef %261, double noundef %264, ptr noundef %266, ptr noundef %267)
  %268 = load ptr, ptr %4, align 8, !tbaa !5
  %269 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %268, i32 0, i32 28
  store i64 0, ptr %269, align 8, !tbaa !73
  %270 = load ptr, ptr %4, align 8, !tbaa !5
  %271 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %270, i32 0, i32 32
  store i64 2, ptr %271, align 8, !tbaa !74
  %272 = load ptr, ptr %4, align 8, !tbaa !5
  %273 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %272, i32 0, i32 26
  store i8 0, ptr %273, align 8, !tbaa !75
  %274 = load ptr, ptr %4, align 8, !tbaa !5
  %275 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %274, i32 0, i32 13
  %276 = load ptr, ptr %4, align 8, !tbaa !5
  %277 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %276, i32 0, i32 10
  %278 = load i64, ptr %277, align 8, !tbaa !76
  %279 = load ptr, ptr %4, align 8, !tbaa !5
  %280 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %279, i32 0, i32 12
  %281 = load ptr, ptr %4, align 8, !tbaa !5
  %282 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %281, i32 0, i32 11
  %283 = load i64, ptr %282, align 8, !tbaa !77
  %284 = load i64, ptr %6, align 8, !tbaa !61
  %285 = load ptr, ptr %4, align 8, !tbaa !5
  %286 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %285, i32 0, i32 14
  %287 = load ptr, ptr %4, align 8, !tbaa !5
  %288 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %287, i32 0, i32 15
  %289 = load ptr, ptr %4, align 8, !tbaa !5
  %290 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %289, i32 0, i32 44
  %291 = load ptr, ptr %4, align 8, !tbaa !5
  %292 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %291, i32 0, i32 45
  %293 = load ptr, ptr %4, align 8, !tbaa !5
  %294 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %293, i32 0, i32 46
  %295 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl30converttwosidedlctoonesidedoldEPKNS_12sparsematrixElPKNS_9ae_matrixEllPKNS_9ae_vectorES8_PS3_PS6_PlPNS_8ae_stateE(ptr noundef %275, i64 noundef %278, ptr noundef %280, i64 noundef %283, i64 noundef %284, ptr noundef %286, ptr noundef %288, ptr noundef %290, ptr noundef %292, ptr noundef %294, ptr noundef %295)
  %296 = load ptr, ptr %4, align 8, !tbaa !5
  %297 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %296, i32 0, i32 17
  %298 = load ptr, ptr %4, align 8, !tbaa !5
  %299 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %298, i32 0, i32 18
  %300 = load ptr, ptr %4, align 8, !tbaa !5
  %301 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %300, i32 0, i32 16
  %302 = load i64, ptr %301, align 8, !tbaa !78
  %303 = load ptr, ptr %4, align 8, !tbaa !5
  %304 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %303, i32 0, i32 47
  %305 = load ptr, ptr %4, align 8, !tbaa !5
  %306 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %305, i32 0, i32 48
  %307 = load ptr, ptr %4, align 8, !tbaa !5
  %308 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %307, i32 0, i32 49
  %309 = load ptr, ptr %4, align 8, !tbaa !5
  %310 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %309, i32 0, i32 50
  %311 = load ptr, ptr %4, align 8, !tbaa !5
  %312 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %311, i32 0, i32 51
  %313 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl31converttwosidednlctoonesidedoldEPKNS_9ae_vectorES2_lPS0_S3_S3_PlS4_PNS_8ae_stateE(ptr noundef %297, ptr noundef %299, i64 noundef %302, ptr noundef %304, ptr noundef %306, ptr noundef %308, ptr noundef %310, ptr noundef %312, ptr noundef %313)
  %314 = load i64, ptr %6, align 8, !tbaa !61
  %315 = load ptr, ptr %4, align 8, !tbaa !5
  %316 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %315, i32 0, i32 5
  %317 = load ptr, ptr %4, align 8, !tbaa !5
  %318 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %317, i32 0, i32 39
  %319 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl12minnlccreateElPKNS_9ae_vectorEPNS_11minnlcstateEPNS_8ae_stateE(i64 noundef %314, ptr noundef %316, ptr noundef %318, ptr noundef %319)
  %320 = load ptr, ptr %4, align 8, !tbaa !5
  %321 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %320, i32 0, i32 39
  %322 = load ptr, ptr %4, align 8, !tbaa !5
  %323 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %322, i32 0, i32 2
  %324 = load double, ptr %323, align 8, !tbaa !79
  %325 = load ptr, ptr %4, align 8, !tbaa !5
  %326 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %325, i32 0, i32 3
  %327 = load i64, ptr %326, align 8, !tbaa !80
  %328 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl13minnlcsetcondEPNS_11minnlcstateEdlPNS_8ae_stateE(ptr noundef %321, double noundef %324, i64 noundef %327, ptr noundef %328)
  %329 = load ptr, ptr %4, align 8, !tbaa !5
  %330 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %329, i32 0, i32 39
  %331 = load ptr, ptr %4, align 8, !tbaa !5
  %332 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %331, i32 0, i32 8
  %333 = load ptr, ptr %4, align 8, !tbaa !5
  %334 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %333, i32 0, i32 9
  %335 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11minnlcsetbcEPNS_11minnlcstateEPKNS_9ae_vectorES4_PNS_8ae_stateE(ptr noundef %330, ptr noundef %332, ptr noundef %334, ptr noundef %335)
  %336 = load ptr, ptr %4, align 8, !tbaa !5
  %337 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %336, i32 0, i32 39
  %338 = load ptr, ptr %4, align 8, !tbaa !5
  %339 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %338, i32 0, i32 44
  %340 = load ptr, ptr %4, align 8, !tbaa !5
  %341 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %340, i32 0, i32 45
  %342 = load ptr, ptr %4, align 8, !tbaa !5
  %343 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %342, i32 0, i32 46
  %344 = load i64, ptr %343, align 8, !tbaa !81
  %345 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11minnlcsetlcEPNS_11minnlcstateEPKNS_9ae_matrixEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %337, ptr noundef %339, ptr noundef %341, i64 noundef %344, ptr noundef %345)
  %346 = load ptr, ptr %4, align 8, !tbaa !5
  %347 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %346, i32 0, i32 39
  %348 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL16monbi_setnlcalgoEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef %347, ptr noundef %348)
  store i64 0, ptr %8, align 8, !tbaa !61
  br label %349

349:                                              ; preds = %1214, %247
  %350 = load i64, ptr %8, align 8, !tbaa !61
  %351 = load i64, ptr %7, align 8, !tbaa !61
  %352 = sub nsw i64 %351, 1
  %353 = icmp sgt i64 %350, %352
  br i1 %353, label %354, label %355

354:                                              ; preds = %349
  br label %1217

355:                                              ; preds = %349
  %356 = load i8, ptr %16, align 1, !tbaa !62, !range !63, !noundef !64
  %357 = trunc i8 %356 to i1
  br i1 %357, label %359, label %358

358:                                              ; preds = %355
  br label %386

359:                                              ; preds = %355
  %360 = load i64, ptr %8, align 8, !tbaa !61
  %361 = trunc i64 %360 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1659, i32 noundef %361)
  %362 = load ptr, ptr %4, align 8, !tbaa !5
  %363 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %362, i32 0, i32 23
  store i8 1, ptr %363, align 8, !tbaa !82
  %364 = load i64, ptr %6, align 8, !tbaa !61
  %365 = load ptr, ptr %4, align 8, !tbaa !5
  %366 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %365, i32 0, i32 5
  %367 = load ptr, ptr %4, align 8, !tbaa !5
  %368 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %367, i32 0, i32 19
  %369 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %364, ptr noundef %366, ptr noundef %368, ptr noundef %369)
  %370 = load ptr, ptr %4, align 8, !tbaa !5
  %371 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %370, i32 0, i32 25
  %372 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %371, i32 0, i32 0
  store i32 0, ptr %372, align 8, !tbaa !9
  br label %2771

373:                                              ; preds = %111
  %374 = load ptr, ptr %4, align 8, !tbaa !5
  %375 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %374, i32 0, i32 23
  store i8 0, ptr %375, align 8, !tbaa !82
  %376 = load ptr, ptr %4, align 8, !tbaa !5
  %377 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %376, i32 0, i32 31
  %378 = load i64, ptr %377, align 8, !tbaa !83
  %379 = add nsw i64 %378, 1
  %380 = load ptr, ptr %4, align 8, !tbaa !5
  %381 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %380, i32 0, i32 31
  store i64 %379, ptr %381, align 8, !tbaa !83
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1660)
  %382 = load ptr, ptr %4, align 8, !tbaa !5
  %383 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %382, i32 0, i32 21
  %384 = load i64, ptr %7, align 8, !tbaa !61
  %385 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %383, i64 noundef 0, i64 noundef %384, ptr noundef %385)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %386

386:                                              ; preds = %373, %358
  %387 = load ptr, ptr %4, align 8, !tbaa !5
  %388 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %387, i32 0, i32 39
  %389 = load ptr, ptr %4, align 8, !tbaa !5
  %390 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %389, i32 0, i32 50
  %391 = load i64, ptr %390, align 8, !tbaa !84
  %392 = load ptr, ptr %4, align 8, !tbaa !5
  %393 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %392, i32 0, i32 51
  %394 = load i64, ptr %393, align 8, !tbaa !85
  %395 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl12minnlcsetnlcEPNS_11minnlcstateEllPNS_8ae_stateE(ptr noundef %388, i64 noundef %391, i64 noundef %394, ptr noundef %395)
  %396 = load ptr, ptr %4, align 8, !tbaa !5
  %397 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %396, i32 0, i32 39
  %398 = load ptr, ptr %4, align 8, !tbaa !5
  %399 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %398, i32 0, i32 5
  %400 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl17minnlcrestartfromEPNS_11minnlcstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %397, ptr noundef %399, ptr noundef %400)
  br label %401

401:                                              ; preds = %547, %546, %386
  %402 = load ptr, ptr %4, align 8, !tbaa !5
  %403 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %402, i32 0, i32 39
  %404 = load ptr, ptr %5, align 8, !tbaa !5
  %405 = call noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef %403, ptr noundef %404)
  br i1 %405, label %407, label %406

406:                                              ; preds = %401
  br label %549

407:                                              ; preds = %401
  %408 = load ptr, ptr %4, align 8, !tbaa !5
  %409 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %408, i32 0, i32 26
  %410 = load i8, ptr %409, align 8, !tbaa !75, !range !63, !noundef !64
  %411 = trunc i8 %410 to i1
  br i1 %411, label %412, label %417

412:                                              ; preds = %407
  %413 = load ptr, ptr %4, align 8, !tbaa !5
  %414 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %413, i32 0, i32 32
  store i64 8, ptr %414, align 8, !tbaa !74
  store i8 0, ptr %17, align 1, !tbaa !62
  %415 = load i8, ptr %17, align 1, !tbaa !62, !range !63, !noundef !64
  %416 = trunc i8 %415 to i1
  store i1 %416, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %2853

417:                                              ; preds = %407
  %418 = load ptr, ptr %4, align 8, !tbaa !5
  %419 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %418, i32 0, i32 39
  %420 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %419, i32 0, i32 25
  %421 = load i8, ptr %420, align 8, !tbaa !86, !range !63, !noundef !64
  %422 = trunc i8 %421 to i1
  br i1 %422, label %424, label %423

423:                                              ; preds = %417
  br label %547

424:                                              ; preds = %417
  %425 = load ptr, ptr %4, align 8, !tbaa !5
  %426 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %425, i32 0, i32 23
  store i8 1, ptr %426, align 8, !tbaa !82
  %427 = load i64, ptr %6, align 8, !tbaa !61
  %428 = load ptr, ptr %4, align 8, !tbaa !5
  %429 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %428, i32 0, i32 39
  %430 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %429, i32 0, i32 21
  %431 = load ptr, ptr %4, align 8, !tbaa !5
  %432 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %431, i32 0, i32 19
  %433 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %427, ptr noundef %430, ptr noundef %432, ptr noundef %433)
  %434 = load ptr, ptr %4, align 8, !tbaa !5
  %435 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %434, i32 0, i32 25
  %436 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %435, i32 0, i32 0
  store i32 1, ptr %436, align 8, !tbaa !9
  br label %2771

437:                                              ; preds = %118
  %438 = load ptr, ptr %4, align 8, !tbaa !5
  %439 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %438, i32 0, i32 23
  store i8 0, ptr %439, align 8, !tbaa !82
  %440 = load ptr, ptr %4, align 8, !tbaa !5
  %441 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %440, i32 0, i32 21
  %442 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %441, i32 0, i32 4
  %443 = load ptr, ptr %442, align 8, !tbaa !60
  %444 = load i64, ptr %8, align 8, !tbaa !61
  %445 = getelementptr inbounds double, ptr %443, i64 %444
  %446 = load double, ptr %445, align 8, !tbaa !65
  %447 = load ptr, ptr %4, align 8, !tbaa !5
  %448 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %447, i32 0, i32 39
  %449 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %448, i32 0, i32 23
  %450 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %449, i32 0, i32 4
  %451 = load ptr, ptr %450, align 8, !tbaa !60
  %452 = getelementptr inbounds double, ptr %451, i64 0
  store double %446, ptr %452, align 8, !tbaa !65
  %453 = load i64, ptr %6, align 8, !tbaa !61
  %454 = load ptr, ptr %4, align 8, !tbaa !5
  %455 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %454, i32 0, i32 22
  %456 = load i64, ptr %8, align 8, !tbaa !61
  %457 = load ptr, ptr %4, align 8, !tbaa !5
  %458 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %457, i32 0, i32 39
  %459 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %458, i32 0, i32 24
  %460 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %453, ptr noundef %455, i64 noundef %456, ptr noundef %459, i64 noundef 0, ptr noundef %460)
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %461

461:                                              ; preds = %543, %437
  %462 = load i64, ptr %10, align 8, !tbaa !61
  %463 = load ptr, ptr %4, align 8, !tbaa !5
  %464 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %463, i32 0, i32 50
  %465 = load i64, ptr %464, align 8, !tbaa !84
  %466 = load ptr, ptr %4, align 8, !tbaa !5
  %467 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %466, i32 0, i32 51
  %468 = load i64, ptr %467, align 8, !tbaa !85
  %469 = add nsw i64 %465, %468
  %470 = sub nsw i64 %469, 1
  %471 = icmp sle i64 %462, %470
  br i1 %471, label %472, label %546

472:                                              ; preds = %461
  %473 = load ptr, ptr %4, align 8, !tbaa !5
  %474 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %473, i32 0, i32 21
  %475 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %474, i32 0, i32 4
  %476 = load ptr, ptr %475, align 8, !tbaa !60
  %477 = load i64, ptr %7, align 8, !tbaa !61
  %478 = load ptr, ptr %4, align 8, !tbaa !5
  %479 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %478, i32 0, i32 47
  %480 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %479, i32 0, i32 4
  %481 = load ptr, ptr %480, align 8, !tbaa !60
  %482 = load i64, ptr %10, align 8, !tbaa !61
  %483 = getelementptr inbounds i64, ptr %481, i64 %482
  %484 = load i64, ptr %483, align 8, !tbaa !61
  %485 = add nsw i64 %477, %484
  %486 = getelementptr inbounds double, ptr %476, i64 %485
  %487 = load double, ptr %486, align 8, !tbaa !65
  %488 = load ptr, ptr %4, align 8, !tbaa !5
  %489 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %488, i32 0, i32 48
  %490 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %489, i32 0, i32 4
  %491 = load ptr, ptr %490, align 8, !tbaa !60
  %492 = load i64, ptr %10, align 8, !tbaa !61
  %493 = getelementptr inbounds double, ptr %491, i64 %492
  %494 = load double, ptr %493, align 8, !tbaa !65
  %495 = load ptr, ptr %4, align 8, !tbaa !5
  %496 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %495, i32 0, i32 49
  %497 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %496, i32 0, i32 4
  %498 = load ptr, ptr %497, align 8, !tbaa !60
  %499 = load i64, ptr %10, align 8, !tbaa !61
  %500 = getelementptr inbounds double, ptr %498, i64 %499
  %501 = load double, ptr %500, align 8, !tbaa !65
  %502 = call double @llvm.fmuladd.f64(double %487, double %494, double %501)
  %503 = load ptr, ptr %4, align 8, !tbaa !5
  %504 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %503, i32 0, i32 39
  %505 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %504, i32 0, i32 23
  %506 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %505, i32 0, i32 4
  %507 = load ptr, ptr %506, align 8, !tbaa !60
  %508 = load i64, ptr %10, align 8, !tbaa !61
  %509 = add nsw i64 %508, 1
  %510 = getelementptr inbounds double, ptr %507, i64 %509
  store double %502, ptr %510, align 8, !tbaa !65
  %511 = load i64, ptr %6, align 8, !tbaa !61
  %512 = load ptr, ptr %4, align 8, !tbaa !5
  %513 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %512, i32 0, i32 22
  %514 = load i64, ptr %7, align 8, !tbaa !61
  %515 = load ptr, ptr %4, align 8, !tbaa !5
  %516 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %515, i32 0, i32 47
  %517 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %516, i32 0, i32 4
  %518 = load ptr, ptr %517, align 8, !tbaa !60
  %519 = load i64, ptr %10, align 8, !tbaa !61
  %520 = getelementptr inbounds i64, ptr %518, i64 %519
  %521 = load i64, ptr %520, align 8, !tbaa !61
  %522 = add nsw i64 %514, %521
  %523 = load ptr, ptr %4, align 8, !tbaa !5
  %524 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %523, i32 0, i32 39
  %525 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %524, i32 0, i32 24
  %526 = load i64, ptr %10, align 8, !tbaa !61
  %527 = add nsw i64 %526, 1
  %528 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %511, ptr noundef %513, i64 noundef %522, ptr noundef %525, i64 noundef %527, ptr noundef %528)
  %529 = load i64, ptr %6, align 8, !tbaa !61
  %530 = load ptr, ptr %4, align 8, !tbaa !5
  %531 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %530, i32 0, i32 48
  %532 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %531, i32 0, i32 4
  %533 = load ptr, ptr %532, align 8, !tbaa !60
  %534 = load i64, ptr %10, align 8, !tbaa !61
  %535 = getelementptr inbounds double, ptr %533, i64 %534
  %536 = load double, ptr %535, align 8, !tbaa !65
  %537 = load ptr, ptr %4, align 8, !tbaa !5
  %538 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %537, i32 0, i32 39
  %539 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %538, i32 0, i32 24
  %540 = load i64, ptr %10, align 8, !tbaa !61
  %541 = add nsw i64 %540, 1
  %542 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %529, double noundef %536, ptr noundef %539, i64 noundef %541, ptr noundef %542)
  br label %543

543:                                              ; preds = %472
  %544 = load i64, ptr %10, align 8, !tbaa !61
  %545 = add nsw i64 %544, 1
  store i64 %545, ptr %10, align 8, !tbaa !61
  br label %461, !llvm.loop !87

546:                                              ; preds = %461
  br label %401

547:                                              ; preds = %423
  %548 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.1661, ptr noundef %548)
  br label %401

549:                                              ; preds = %406
  %550 = load ptr, ptr %4, align 8, !tbaa !5
  %551 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %550, i32 0, i32 39
  %552 = load ptr, ptr %4, align 8, !tbaa !5
  %553 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %552, i32 0, i32 61
  %554 = load ptr, ptr %4, align 8, !tbaa !5
  %555 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %554, i32 0, i32 40
  %556 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl16minnlcresultsbufEPKNS_11minnlcstateEPNS_9ae_vectorEPNS_12minnlcreportEPNS_8ae_stateE(ptr noundef %551, ptr noundef %553, ptr noundef %555, ptr noundef %556)
  %557 = load ptr, ptr %4, align 8, !tbaa !5
  %558 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %557, i32 0, i32 40
  %559 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %558, i32 0, i32 2
  %560 = load i64, ptr %559, align 8, !tbaa !89
  %561 = icmp eq i64 %560, -8
  br i1 %561, label %562, label %569

562:                                              ; preds = %549
  %563 = load ptr, ptr %4, align 8, !tbaa !5
  %564 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %563, i32 0, i32 32
  store i64 -8, ptr %564, align 8, !tbaa !74
  %565 = load ptr, ptr %4, align 8, !tbaa !5
  %566 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %565, i32 0, i32 28
  store i64 0, ptr %566, align 8, !tbaa !73
  store i8 0, ptr %17, align 1, !tbaa !62
  %567 = load i8, ptr %17, align 1, !tbaa !62, !range !63, !noundef !64
  %568 = trunc i8 %567 to i1
  store i1 %568, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %2853

569:                                              ; preds = %549
  %570 = load ptr, ptr %4, align 8, !tbaa !5
  %571 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %570, i32 0, i32 40
  %572 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %571, i32 0, i32 2
  %573 = load i64, ptr %572, align 8, !tbaa !89
  %574 = icmp sgt i64 %573, 0
  %575 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %574, ptr noundef @.str.1662, ptr noundef %575)
  %576 = load ptr, ptr %4, align 8, !tbaa !5
  %577 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %576, i32 0, i32 29
  %578 = load i64, ptr %577, align 8, !tbaa !90
  %579 = load ptr, ptr %4, align 8, !tbaa !5
  %580 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %579, i32 0, i32 40
  %581 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %580, i32 0, i32 0
  %582 = load i64, ptr %581, align 8, !tbaa !91
  %583 = add nsw i64 %578, %582
  %584 = load ptr, ptr %4, align 8, !tbaa !5
  %585 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %584, i32 0, i32 29
  store i64 %583, ptr %585, align 8, !tbaa !90
  %586 = load ptr, ptr %4, align 8, !tbaa !5
  %587 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %586, i32 0, i32 31
  %588 = load i64, ptr %587, align 8, !tbaa !83
  %589 = load ptr, ptr %4, align 8, !tbaa !5
  %590 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %589, i32 0, i32 40
  %591 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %590, i32 0, i32 1
  %592 = load i64, ptr %591, align 8, !tbaa !92
  %593 = add nsw i64 %588, %592
  %594 = load ptr, ptr %4, align 8, !tbaa !5
  %595 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %594, i32 0, i32 31
  store i64 %593, ptr %595, align 8, !tbaa !83
  %596 = load i8, ptr %16, align 1, !tbaa !62, !range !63, !noundef !64
  %597 = trunc i8 %596 to i1
  br i1 %597, label %599, label %598

598:                                              ; preds = %569
  br label %643

599:                                              ; preds = %569
  %600 = load ptr, ptr %4, align 8, !tbaa !5
  %601 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %600, i32 0, i32 23
  store i8 1, ptr %601, align 8, !tbaa !82
  %602 = load i64, ptr %6, align 8, !tbaa !61
  %603 = load ptr, ptr %4, align 8, !tbaa !5
  %604 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %603, i32 0, i32 61
  %605 = load ptr, ptr %4, align 8, !tbaa !5
  %606 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %605, i32 0, i32 19
  %607 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %602, ptr noundef %604, ptr noundef %606, ptr noundef %607)
  %608 = load ptr, ptr %4, align 8, !tbaa !5
  %609 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %608, i32 0, i32 25
  %610 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %609, i32 0, i32 0
  store i32 2, ptr %610, align 8, !tbaa !9
  br label %2771

611:                                              ; preds = %125
  %612 = load ptr, ptr %4, align 8, !tbaa !5
  %613 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %612, i32 0, i32 23
  store i8 0, ptr %613, align 8, !tbaa !82
  %614 = load ptr, ptr %4, align 8, !tbaa !5
  %615 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %614, i32 0, i32 31
  %616 = load i64, ptr %615, align 8, !tbaa !83
  %617 = add nsw i64 %616, 1
  %618 = load ptr, ptr %4, align 8, !tbaa !5
  %619 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %618, i32 0, i32 31
  store i64 %617, ptr %619, align 8, !tbaa !83
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1663)
  %620 = load ptr, ptr %4, align 8, !tbaa !5
  %621 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %620, i32 0, i32 21
  %622 = load i64, ptr %7, align 8, !tbaa !61
  %623 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %621, i64 noundef 0, i64 noundef %622, ptr noundef %623)
  %624 = load ptr, ptr %4, align 8, !tbaa !5
  %625 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %624, i32 0, i32 40
  %626 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %625, i32 0, i32 0
  %627 = load i64, ptr %626, align 8, !tbaa !91
  %628 = trunc i64 %627 to i32
  %629 = load ptr, ptr %4, align 8, !tbaa !5
  %630 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %629, i32 0, i32 40
  %631 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %630, i32 0, i32 3
  %632 = load double, ptr %631, align 8, !tbaa !93
  %633 = load ptr, ptr %4, align 8, !tbaa !5
  %634 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %633, i32 0, i32 40
  %635 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %634, i32 0, i32 5
  %636 = load double, ptr %635, align 8, !tbaa !94
  %637 = load ptr, ptr %4, align 8, !tbaa !5
  %638 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %637, i32 0, i32 40
  %639 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %638, i32 0, i32 7
  %640 = load double, ptr %639, align 8, !tbaa !95
  %641 = load ptr, ptr %5, align 8, !tbaa !5
  %642 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %632, double noundef %636, double noundef %640, ptr noundef %641)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1664, i32 noundef %628, double noundef %642)
  br label %643

643:                                              ; preds = %611, %598
  %644 = load ptr, ptr %4, align 8, !tbaa !5
  %645 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %644, i32 0, i32 7
  %646 = load i8, ptr %645, align 8, !tbaa !96, !range !63, !noundef !64
  %647 = trunc i8 %646 to i1
  br i1 %647, label %649, label %648

648:                                              ; preds = %643
  br label %1012

649:                                              ; preds = %643
  %650 = load ptr, ptr %4, align 8, !tbaa !5
  %651 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %650, i32 0, i32 23
  store i8 1, ptr %651, align 8, !tbaa !82
  %652 = load i64, ptr %6, align 8, !tbaa !61
  %653 = load ptr, ptr %4, align 8, !tbaa !5
  %654 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %653, i32 0, i32 61
  %655 = load ptr, ptr %4, align 8, !tbaa !5
  %656 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %655, i32 0, i32 19
  %657 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %652, ptr noundef %654, ptr noundef %656, ptr noundef %657)
  %658 = load ptr, ptr %4, align 8, !tbaa !5
  %659 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %658, i32 0, i32 25
  %660 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %659, i32 0, i32 0
  store i32 3, ptr %660, align 8, !tbaa !9
  br label %2771

661:                                              ; preds = %132
  %662 = load ptr, ptr %4, align 8, !tbaa !5
  %663 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %662, i32 0, i32 23
  store i8 0, ptr %663, align 8, !tbaa !82
  %664 = load ptr, ptr %4, align 8, !tbaa !5
  %665 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %664, i32 0, i32 31
  %666 = load i64, ptr %665, align 8, !tbaa !83
  %667 = add nsw i64 %666, 1
  %668 = load ptr, ptr %4, align 8, !tbaa !5
  %669 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %668, i32 0, i32 31
  store i64 %667, ptr %669, align 8, !tbaa !83
  %670 = load i64, ptr %7, align 8, !tbaa !61
  %671 = load ptr, ptr %4, align 8, !tbaa !5
  %672 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %671, i32 0, i32 16
  %673 = load i64, ptr %672, align 8, !tbaa !78
  %674 = add nsw i64 %670, %673
  %675 = load ptr, ptr %4, align 8, !tbaa !5
  %676 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %675, i32 0, i32 21
  %677 = load ptr, ptr %4, align 8, !tbaa !5
  %678 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %677, i32 0, i32 63
  %679 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %674, ptr noundef %676, ptr noundef %678, ptr noundef %679)
  %680 = load ptr, ptr %4, align 8, !tbaa !5
  %681 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %680, i32 0, i32 39
  %682 = load ptr, ptr %4, align 8, !tbaa !5
  %683 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %682, i32 0, i32 50
  %684 = load i64, ptr %683, align 8, !tbaa !84
  %685 = load ptr, ptr %4, align 8, !tbaa !5
  %686 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %685, i32 0, i32 51
  %687 = load i64, ptr %686, align 8, !tbaa !85
  %688 = add nsw i64 %687, 1
  %689 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl12minnlcsetnlcEPNS_11minnlcstateEllPNS_8ae_stateE(ptr noundef %681, i64 noundef %684, i64 noundef %688, ptr noundef %689)
  %690 = load ptr, ptr %4, align 8, !tbaa !5
  %691 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %690, i32 0, i32 39
  %692 = load ptr, ptr %4, align 8, !tbaa !5
  %693 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %692, i32 0, i32 61
  %694 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl17minnlcrestartfromEPNS_11minnlcstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %691, ptr noundef %693, ptr noundef %694)
  br label %695

695:                                              ; preds = %915, %869, %661
  %696 = load ptr, ptr %4, align 8, !tbaa !5
  %697 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %696, i32 0, i32 39
  %698 = load ptr, ptr %5, align 8, !tbaa !5
  %699 = call noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef %697, ptr noundef %698)
  br i1 %699, label %701, label %700

700:                                              ; preds = %695
  br label %917

701:                                              ; preds = %695
  %702 = load ptr, ptr %4, align 8, !tbaa !5
  %703 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %702, i32 0, i32 26
  %704 = load i8, ptr %703, align 8, !tbaa !75, !range !63, !noundef !64
  %705 = trunc i8 %704 to i1
  br i1 %705, label %706, label %711

706:                                              ; preds = %701
  %707 = load ptr, ptr %4, align 8, !tbaa !5
  %708 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %707, i32 0, i32 32
  store i64 8, ptr %708, align 8, !tbaa !74
  store i8 0, ptr %17, align 1, !tbaa !62
  %709 = load i8, ptr %17, align 1, !tbaa !62, !range !63, !noundef !64
  %710 = trunc i8 %709 to i1
  store i1 %710, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %2853

711:                                              ; preds = %701
  %712 = load ptr, ptr %4, align 8, !tbaa !5
  %713 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %712, i32 0, i32 39
  %714 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %713, i32 0, i32 25
  %715 = load i8, ptr %714, align 8, !tbaa !86, !range !63, !noundef !64
  %716 = trunc i8 %715 to i1
  br i1 %716, label %718, label %717

717:                                              ; preds = %711
  br label %915

718:                                              ; preds = %711
  %719 = load ptr, ptr %4, align 8, !tbaa !5
  %720 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %719, i32 0, i32 23
  store i8 1, ptr %720, align 8, !tbaa !82
  %721 = load i64, ptr %6, align 8, !tbaa !61
  %722 = load ptr, ptr %4, align 8, !tbaa !5
  %723 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %722, i32 0, i32 39
  %724 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %723, i32 0, i32 21
  %725 = load ptr, ptr %4, align 8, !tbaa !5
  %726 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %725, i32 0, i32 19
  %727 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %721, ptr noundef %724, ptr noundef %726, ptr noundef %727)
  %728 = load ptr, ptr %4, align 8, !tbaa !5
  %729 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %728, i32 0, i32 25
  %730 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %729, i32 0, i32 0
  store i32 4, ptr %730, align 8, !tbaa !9
  br label %2771

731:                                              ; preds = %139
  %732 = load ptr, ptr %4, align 8, !tbaa !5
  %733 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %732, i32 0, i32 23
  store i8 0, ptr %733, align 8, !tbaa !82
  %734 = load ptr, ptr %4, align 8, !tbaa !5
  %735 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %734, i32 0, i32 39
  %736 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %735, i32 0, i32 23
  %737 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %736, i32 0, i32 4
  %738 = load ptr, ptr %737, align 8, !tbaa !60
  %739 = getelementptr inbounds double, ptr %738, i64 0
  store double 0.000000e+00, ptr %739, align 8, !tbaa !65
  %740 = load i64, ptr %6, align 8, !tbaa !61
  %741 = load ptr, ptr %4, align 8, !tbaa !5
  %742 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %741, i32 0, i32 39
  %743 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %742, i32 0, i32 24
  %744 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %740, double noundef 0.000000e+00, ptr noundef %743, i64 noundef 0, ptr noundef %744)
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %745

745:                                              ; preds = %780, %731
  %746 = load i64, ptr %10, align 8, !tbaa !61
  %747 = load i64, ptr %7, align 8, !tbaa !61
  %748 = sub nsw i64 %747, 1
  %749 = icmp sle i64 %746, %748
  br i1 %749, label %750, label %783

750:                                              ; preds = %745
  %751 = load ptr, ptr %4, align 8, !tbaa !5
  %752 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %751, i32 0, i32 39
  %753 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %752, i32 0, i32 23
  %754 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %753, i32 0, i32 4
  %755 = load ptr, ptr %754, align 8, !tbaa !60
  %756 = getelementptr inbounds double, ptr %755, i64 0
  %757 = load double, ptr %756, align 8, !tbaa !65
  %758 = load ptr, ptr %4, align 8, !tbaa !5
  %759 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %758, i32 0, i32 21
  %760 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %759, i32 0, i32 4
  %761 = load ptr, ptr %760, align 8, !tbaa !60
  %762 = load i64, ptr %10, align 8, !tbaa !61
  %763 = getelementptr inbounds double, ptr %761, i64 %762
  %764 = load double, ptr %763, align 8, !tbaa !65
  %765 = fadd double %757, %764
  %766 = load ptr, ptr %4, align 8, !tbaa !5
  %767 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %766, i32 0, i32 39
  %768 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %767, i32 0, i32 23
  %769 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %768, i32 0, i32 4
  %770 = load ptr, ptr %769, align 8, !tbaa !60
  %771 = getelementptr inbounds double, ptr %770, i64 0
  store double %765, ptr %771, align 8, !tbaa !65
  %772 = load i64, ptr %6, align 8, !tbaa !61
  %773 = load ptr, ptr %4, align 8, !tbaa !5
  %774 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %773, i32 0, i32 22
  %775 = load i64, ptr %10, align 8, !tbaa !61
  %776 = load ptr, ptr %4, align 8, !tbaa !5
  %777 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %776, i32 0, i32 39
  %778 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %777, i32 0, i32 24
  %779 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6raddrrEldPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %772, double noundef 1.000000e+00, ptr noundef %774, i64 noundef %775, ptr noundef %778, i64 noundef 0, ptr noundef %779)
  br label %780

780:                                              ; preds = %750
  %781 = load i64, ptr %10, align 8, !tbaa !61
  %782 = add nsw i64 %781, 1
  store i64 %782, ptr %10, align 8, !tbaa !61
  br label %745, !llvm.loop !97

783:                                              ; preds = %745
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %784

784:                                              ; preds = %866, %783
  %785 = load i64, ptr %10, align 8, !tbaa !61
  %786 = load ptr, ptr %4, align 8, !tbaa !5
  %787 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %786, i32 0, i32 50
  %788 = load i64, ptr %787, align 8, !tbaa !84
  %789 = load ptr, ptr %4, align 8, !tbaa !5
  %790 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %789, i32 0, i32 51
  %791 = load i64, ptr %790, align 8, !tbaa !85
  %792 = add nsw i64 %788, %791
  %793 = sub nsw i64 %792, 1
  %794 = icmp sle i64 %785, %793
  br i1 %794, label %795, label %869

795:                                              ; preds = %784
  %796 = load ptr, ptr %4, align 8, !tbaa !5
  %797 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %796, i32 0, i32 21
  %798 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %797, i32 0, i32 4
  %799 = load ptr, ptr %798, align 8, !tbaa !60
  %800 = load i64, ptr %7, align 8, !tbaa !61
  %801 = load ptr, ptr %4, align 8, !tbaa !5
  %802 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %801, i32 0, i32 47
  %803 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %802, i32 0, i32 4
  %804 = load ptr, ptr %803, align 8, !tbaa !60
  %805 = load i64, ptr %10, align 8, !tbaa !61
  %806 = getelementptr inbounds i64, ptr %804, i64 %805
  %807 = load i64, ptr %806, align 8, !tbaa !61
  %808 = add nsw i64 %800, %807
  %809 = getelementptr inbounds double, ptr %799, i64 %808
  %810 = load double, ptr %809, align 8, !tbaa !65
  %811 = load ptr, ptr %4, align 8, !tbaa !5
  %812 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %811, i32 0, i32 48
  %813 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %812, i32 0, i32 4
  %814 = load ptr, ptr %813, align 8, !tbaa !60
  %815 = load i64, ptr %10, align 8, !tbaa !61
  %816 = getelementptr inbounds double, ptr %814, i64 %815
  %817 = load double, ptr %816, align 8, !tbaa !65
  %818 = load ptr, ptr %4, align 8, !tbaa !5
  %819 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %818, i32 0, i32 49
  %820 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %819, i32 0, i32 4
  %821 = load ptr, ptr %820, align 8, !tbaa !60
  %822 = load i64, ptr %10, align 8, !tbaa !61
  %823 = getelementptr inbounds double, ptr %821, i64 %822
  %824 = load double, ptr %823, align 8, !tbaa !65
  %825 = call double @llvm.fmuladd.f64(double %810, double %817, double %824)
  %826 = load ptr, ptr %4, align 8, !tbaa !5
  %827 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %826, i32 0, i32 39
  %828 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %827, i32 0, i32 23
  %829 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %828, i32 0, i32 4
  %830 = load ptr, ptr %829, align 8, !tbaa !60
  %831 = load i64, ptr %10, align 8, !tbaa !61
  %832 = add nsw i64 %831, 1
  %833 = getelementptr inbounds double, ptr %830, i64 %832
  store double %825, ptr %833, align 8, !tbaa !65
  %834 = load i64, ptr %6, align 8, !tbaa !61
  %835 = load ptr, ptr %4, align 8, !tbaa !5
  %836 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %835, i32 0, i32 22
  %837 = load i64, ptr %7, align 8, !tbaa !61
  %838 = load ptr, ptr %4, align 8, !tbaa !5
  %839 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %838, i32 0, i32 47
  %840 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %839, i32 0, i32 4
  %841 = load ptr, ptr %840, align 8, !tbaa !60
  %842 = load i64, ptr %10, align 8, !tbaa !61
  %843 = getelementptr inbounds i64, ptr %841, i64 %842
  %844 = load i64, ptr %843, align 8, !tbaa !61
  %845 = add nsw i64 %837, %844
  %846 = load ptr, ptr %4, align 8, !tbaa !5
  %847 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %846, i32 0, i32 39
  %848 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %847, i32 0, i32 24
  %849 = load i64, ptr %10, align 8, !tbaa !61
  %850 = add nsw i64 %849, 1
  %851 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %834, ptr noundef %836, i64 noundef %845, ptr noundef %848, i64 noundef %850, ptr noundef %851)
  %852 = load i64, ptr %6, align 8, !tbaa !61
  %853 = load ptr, ptr %4, align 8, !tbaa !5
  %854 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %853, i32 0, i32 48
  %855 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %854, i32 0, i32 4
  %856 = load ptr, ptr %855, align 8, !tbaa !60
  %857 = load i64, ptr %10, align 8, !tbaa !61
  %858 = getelementptr inbounds double, ptr %856, i64 %857
  %859 = load double, ptr %858, align 8, !tbaa !65
  %860 = load ptr, ptr %4, align 8, !tbaa !5
  %861 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %860, i32 0, i32 39
  %862 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %861, i32 0, i32 24
  %863 = load i64, ptr %10, align 8, !tbaa !61
  %864 = add nsw i64 %863, 1
  %865 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %852, double noundef %859, ptr noundef %862, i64 noundef %864, ptr noundef %865)
  br label %866

866:                                              ; preds = %795
  %867 = load i64, ptr %10, align 8, !tbaa !61
  %868 = add nsw i64 %867, 1
  store i64 %868, ptr %10, align 8, !tbaa !61
  br label %784, !llvm.loop !98

869:                                              ; preds = %784
  %870 = load ptr, ptr %4, align 8, !tbaa !5
  %871 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %870, i32 0, i32 21
  %872 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %871, i32 0, i32 4
  %873 = load ptr, ptr %872, align 8, !tbaa !60
  %874 = load i64, ptr %8, align 8, !tbaa !61
  %875 = getelementptr inbounds double, ptr %873, i64 %874
  %876 = load double, ptr %875, align 8, !tbaa !65
  %877 = load ptr, ptr %4, align 8, !tbaa !5
  %878 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %877, i32 0, i32 63
  %879 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %878, i32 0, i32 4
  %880 = load ptr, ptr %879, align 8, !tbaa !60
  %881 = load i64, ptr %8, align 8, !tbaa !61
  %882 = getelementptr inbounds double, ptr %880, i64 %881
  %883 = load double, ptr %882, align 8, !tbaa !65
  %884 = fsub double %876, %883
  %885 = load ptr, ptr %4, align 8, !tbaa !5
  %886 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %885, i32 0, i32 39
  %887 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %886, i32 0, i32 23
  %888 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %887, i32 0, i32 4
  %889 = load ptr, ptr %888, align 8, !tbaa !60
  %890 = load ptr, ptr %4, align 8, !tbaa !5
  %891 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %890, i32 0, i32 50
  %892 = load i64, ptr %891, align 8, !tbaa !84
  %893 = add nsw i64 1, %892
  %894 = load ptr, ptr %4, align 8, !tbaa !5
  %895 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %894, i32 0, i32 51
  %896 = load i64, ptr %895, align 8, !tbaa !85
  %897 = add nsw i64 %893, %896
  %898 = getelementptr inbounds double, ptr %889, i64 %897
  store double %884, ptr %898, align 8, !tbaa !65
  %899 = load i64, ptr %6, align 8, !tbaa !61
  %900 = load ptr, ptr %4, align 8, !tbaa !5
  %901 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %900, i32 0, i32 22
  %902 = load i64, ptr %8, align 8, !tbaa !61
  %903 = load ptr, ptr %4, align 8, !tbaa !5
  %904 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %903, i32 0, i32 39
  %905 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %904, i32 0, i32 24
  %906 = load ptr, ptr %4, align 8, !tbaa !5
  %907 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %906, i32 0, i32 50
  %908 = load i64, ptr %907, align 8, !tbaa !84
  %909 = add nsw i64 1, %908
  %910 = load ptr, ptr %4, align 8, !tbaa !5
  %911 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %910, i32 0, i32 51
  %912 = load i64, ptr %911, align 8, !tbaa !85
  %913 = add nsw i64 %909, %912
  %914 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %899, ptr noundef %901, i64 noundef %902, ptr noundef %905, i64 noundef %913, ptr noundef %914)
  br label %695

915:                                              ; preds = %717
  %916 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.1665, ptr noundef %916)
  br label %695

917:                                              ; preds = %700
  %918 = load ptr, ptr %4, align 8, !tbaa !5
  %919 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %918, i32 0, i32 39
  %920 = load ptr, ptr %4, align 8, !tbaa !5
  %921 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %920, i32 0, i32 62
  %922 = load ptr, ptr %4, align 8, !tbaa !5
  %923 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %922, i32 0, i32 40
  %924 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl16minnlcresultsbufEPKNS_11minnlcstateEPNS_9ae_vectorEPNS_12minnlcreportEPNS_8ae_stateE(ptr noundef %919, ptr noundef %921, ptr noundef %923, ptr noundef %924)
  %925 = load ptr, ptr %4, align 8, !tbaa !5
  %926 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %925, i32 0, i32 40
  %927 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %926, i32 0, i32 2
  %928 = load i64, ptr %927, align 8, !tbaa !89
  %929 = icmp eq i64 %928, -8
  br i1 %929, label %930, label %937

930:                                              ; preds = %917
  %931 = load ptr, ptr %4, align 8, !tbaa !5
  %932 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %931, i32 0, i32 32
  store i64 -8, ptr %932, align 8, !tbaa !74
  %933 = load ptr, ptr %4, align 8, !tbaa !5
  %934 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %933, i32 0, i32 28
  store i64 0, ptr %934, align 8, !tbaa !73
  store i8 0, ptr %17, align 1, !tbaa !62
  %935 = load i8, ptr %17, align 1, !tbaa !62, !range !63, !noundef !64
  %936 = trunc i8 %935 to i1
  store i1 %936, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %2853

937:                                              ; preds = %917
  %938 = load ptr, ptr %4, align 8, !tbaa !5
  %939 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %938, i32 0, i32 40
  %940 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %939, i32 0, i32 2
  %941 = load i64, ptr %940, align 8, !tbaa !89
  %942 = icmp sgt i64 %941, 0
  %943 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %942, ptr noundef @.str.1662, ptr noundef %943)
  %944 = load ptr, ptr %4, align 8, !tbaa !5
  %945 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %944, i32 0, i32 29
  %946 = load i64, ptr %945, align 8, !tbaa !90
  %947 = load ptr, ptr %4, align 8, !tbaa !5
  %948 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %947, i32 0, i32 40
  %949 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %948, i32 0, i32 0
  %950 = load i64, ptr %949, align 8, !tbaa !91
  %951 = add nsw i64 %946, %950
  %952 = load ptr, ptr %4, align 8, !tbaa !5
  %953 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %952, i32 0, i32 29
  store i64 %951, ptr %953, align 8, !tbaa !90
  %954 = load ptr, ptr %4, align 8, !tbaa !5
  %955 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %954, i32 0, i32 31
  %956 = load i64, ptr %955, align 8, !tbaa !83
  %957 = load ptr, ptr %4, align 8, !tbaa !5
  %958 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %957, i32 0, i32 40
  %959 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %958, i32 0, i32 1
  %960 = load i64, ptr %959, align 8, !tbaa !92
  %961 = add nsw i64 %956, %960
  %962 = load ptr, ptr %4, align 8, !tbaa !5
  %963 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %962, i32 0, i32 31
  store i64 %961, ptr %963, align 8, !tbaa !83
  %964 = load i8, ptr %16, align 1, !tbaa !62, !range !63, !noundef !64
  %965 = trunc i8 %964 to i1
  br i1 %965, label %967, label %966

966:                                              ; preds = %937
  br label %1011

967:                                              ; preds = %937
  %968 = load ptr, ptr %4, align 8, !tbaa !5
  %969 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %968, i32 0, i32 23
  store i8 1, ptr %969, align 8, !tbaa !82
  %970 = load i64, ptr %6, align 8, !tbaa !61
  %971 = load ptr, ptr %4, align 8, !tbaa !5
  %972 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %971, i32 0, i32 62
  %973 = load ptr, ptr %4, align 8, !tbaa !5
  %974 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %973, i32 0, i32 19
  %975 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %970, ptr noundef %972, ptr noundef %974, ptr noundef %975)
  %976 = load ptr, ptr %4, align 8, !tbaa !5
  %977 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %976, i32 0, i32 25
  %978 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %977, i32 0, i32 0
  store i32 5, ptr %978, align 8, !tbaa !9
  br label %2771

979:                                              ; preds = %146
  %980 = load ptr, ptr %4, align 8, !tbaa !5
  %981 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %980, i32 0, i32 23
  store i8 0, ptr %981, align 8, !tbaa !82
  %982 = load ptr, ptr %4, align 8, !tbaa !5
  %983 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %982, i32 0, i32 31
  %984 = load i64, ptr %983, align 8, !tbaa !83
  %985 = add nsw i64 %984, 1
  %986 = load ptr, ptr %4, align 8, !tbaa !5
  %987 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %986, i32 0, i32 31
  store i64 %985, ptr %987, align 8, !tbaa !83
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1666)
  %988 = load ptr, ptr %4, align 8, !tbaa !5
  %989 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %988, i32 0, i32 21
  %990 = load i64, ptr %7, align 8, !tbaa !61
  %991 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %989, i64 noundef 0, i64 noundef %990, ptr noundef %991)
  %992 = load ptr, ptr %4, align 8, !tbaa !5
  %993 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %992, i32 0, i32 40
  %994 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %993, i32 0, i32 0
  %995 = load i64, ptr %994, align 8, !tbaa !91
  %996 = trunc i64 %995 to i32
  %997 = load ptr, ptr %4, align 8, !tbaa !5
  %998 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %997, i32 0, i32 40
  %999 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %998, i32 0, i32 3
  %1000 = load double, ptr %999, align 8, !tbaa !93
  %1001 = load ptr, ptr %4, align 8, !tbaa !5
  %1002 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1001, i32 0, i32 40
  %1003 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %1002, i32 0, i32 5
  %1004 = load double, ptr %1003, align 8, !tbaa !94
  %1005 = load ptr, ptr %4, align 8, !tbaa !5
  %1006 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1005, i32 0, i32 40
  %1007 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %1006, i32 0, i32 7
  %1008 = load double, ptr %1007, align 8, !tbaa !95
  %1009 = load ptr, ptr %5, align 8, !tbaa !5
  %1010 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %1000, double noundef %1004, double noundef %1008, ptr noundef %1009)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1664, i32 noundef %996, double noundef %1010)
  br label %1011

1011:                                             ; preds = %979, %966
  br label %1019

1012:                                             ; preds = %648
  %1013 = load i64, ptr %6, align 8, !tbaa !61
  %1014 = load ptr, ptr %4, align 8, !tbaa !5
  %1015 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1014, i32 0, i32 61
  %1016 = load ptr, ptr %4, align 8, !tbaa !5
  %1017 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1016, i32 0, i32 62
  %1018 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1013, ptr noundef %1015, ptr noundef %1017, ptr noundef %1018)
  br label %1019

1019:                                             ; preds = %1012, %1011
  %1020 = load ptr, ptr %4, align 8, !tbaa !5
  %1021 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1020, i32 0, i32 23
  store i8 1, ptr %1021, align 8, !tbaa !82
  %1022 = load i64, ptr %6, align 8, !tbaa !61
  %1023 = load ptr, ptr %4, align 8, !tbaa !5
  %1024 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1023, i32 0, i32 62
  %1025 = load ptr, ptr %4, align 8, !tbaa !5
  %1026 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1025, i32 0, i32 19
  %1027 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1022, ptr noundef %1024, ptr noundef %1026, ptr noundef %1027)
  %1028 = load ptr, ptr %4, align 8, !tbaa !5
  %1029 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1028, i32 0, i32 25
  %1030 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1029, i32 0, i32 0
  store i32 6, ptr %1030, align 8, !tbaa !9
  br label %2771

1031:                                             ; preds = %153
  %1032 = load ptr, ptr %4, align 8, !tbaa !5
  %1033 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1032, i32 0, i32 23
  store i8 0, ptr %1033, align 8, !tbaa !82
  %1034 = load ptr, ptr %4, align 8, !tbaa !5
  %1035 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1034, i32 0, i32 31
  %1036 = load i64, ptr %1035, align 8, !tbaa !83
  %1037 = add nsw i64 %1036, 1
  %1038 = load ptr, ptr %4, align 8, !tbaa !5
  %1039 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1038, i32 0, i32 31
  store i64 %1037, ptr %1039, align 8, !tbaa !83
  %1040 = load i64, ptr %6, align 8, !tbaa !61
  %1041 = load ptr, ptr %4, align 8, !tbaa !5
  %1042 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1041, i32 0, i32 62
  %1043 = load ptr, ptr %4, align 8, !tbaa !5
  %1044 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1043, i32 0, i32 27
  %1045 = load ptr, ptr %4, align 8, !tbaa !5
  %1046 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1045, i32 0, i32 28
  %1047 = load i64, ptr %1046, align 8, !tbaa !73
  %1048 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %1040, ptr noundef %1042, ptr noundef %1044, i64 noundef %1047, ptr noundef %1048)
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %1049

1049:                                             ; preds = %1075, %1031
  %1050 = load i64, ptr %10, align 8, !tbaa !61
  %1051 = load i64, ptr %7, align 8, !tbaa !61
  %1052 = sub nsw i64 %1051, 1
  %1053 = icmp sle i64 %1050, %1052
  br i1 %1053, label %1054, label %1078

1054:                                             ; preds = %1049
  %1055 = load ptr, ptr %4, align 8, !tbaa !5
  %1056 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1055, i32 0, i32 21
  %1057 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1056, i32 0, i32 4
  %1058 = load ptr, ptr %1057, align 8, !tbaa !60
  %1059 = load i64, ptr %10, align 8, !tbaa !61
  %1060 = getelementptr inbounds double, ptr %1058, i64 %1059
  %1061 = load double, ptr %1060, align 8, !tbaa !65
  %1062 = load ptr, ptr %4, align 8, !tbaa !5
  %1063 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1062, i32 0, i32 27
  %1064 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1063, i32 0, i32 6
  %1065 = load ptr, ptr %1064, align 8, !tbaa !60
  %1066 = load ptr, ptr %4, align 8, !tbaa !5
  %1067 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1066, i32 0, i32 28
  %1068 = load i64, ptr %1067, align 8, !tbaa !73
  %1069 = getelementptr inbounds ptr, ptr %1065, i64 %1068
  %1070 = load ptr, ptr %1069, align 8, !tbaa !5
  %1071 = load i64, ptr %6, align 8, !tbaa !61
  %1072 = load i64, ptr %10, align 8, !tbaa !61
  %1073 = add nsw i64 %1071, %1072
  %1074 = getelementptr inbounds double, ptr %1070, i64 %1073
  store double %1061, ptr %1074, align 8, !tbaa !65
  br label %1075

1075:                                             ; preds = %1054
  %1076 = load i64, ptr %10, align 8, !tbaa !61
  %1077 = add nsw i64 %1076, 1
  store i64 %1077, ptr %10, align 8, !tbaa !61
  br label %1049, !llvm.loop !99

1078:                                             ; preds = %1049
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %1079

1079:                                             ; preds = %1105, %1078
  %1080 = load i64, ptr %10, align 8, !tbaa !61
  %1081 = load i64, ptr %7, align 8, !tbaa !61
  %1082 = sub nsw i64 %1081, 1
  %1083 = icmp sle i64 %1080, %1082
  br i1 %1083, label %1084, label %1108

1084:                                             ; preds = %1079
  %1085 = load i64, ptr %10, align 8, !tbaa !61
  %1086 = load i64, ptr %8, align 8, !tbaa !61
  %1087 = icmp eq i64 %1085, %1086
  %1088 = load ptr, ptr %5, align 8, !tbaa !5
  %1089 = call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %1087, double noundef 1.000000e+00, double noundef 0.000000e+00, ptr noundef %1088)
  %1090 = load ptr, ptr %4, align 8, !tbaa !5
  %1091 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1090, i32 0, i32 27
  %1092 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1091, i32 0, i32 6
  %1093 = load ptr, ptr %1092, align 8, !tbaa !60
  %1094 = load ptr, ptr %4, align 8, !tbaa !5
  %1095 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1094, i32 0, i32 28
  %1096 = load i64, ptr %1095, align 8, !tbaa !73
  %1097 = getelementptr inbounds ptr, ptr %1093, i64 %1096
  %1098 = load ptr, ptr %1097, align 8, !tbaa !5
  %1099 = load i64, ptr %6, align 8, !tbaa !61
  %1100 = load i64, ptr %7, align 8, !tbaa !61
  %1101 = add nsw i64 %1099, %1100
  %1102 = load i64, ptr %10, align 8, !tbaa !61
  %1103 = add nsw i64 %1101, %1102
  %1104 = getelementptr inbounds double, ptr %1098, i64 %1103
  store double %1089, ptr %1104, align 8, !tbaa !65
  br label %1105

1105:                                             ; preds = %1084
  %1106 = load i64, ptr %10, align 8, !tbaa !61
  %1107 = add nsw i64 %1106, 1
  store i64 %1107, ptr %10, align 8, !tbaa !61
  br label %1079, !llvm.loop !100

1108:                                             ; preds = %1079
  %1109 = load ptr, ptr %4, align 8, !tbaa !5
  %1110 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1109, i32 0, i32 28
  %1111 = load i64, ptr %1110, align 8, !tbaa !73
  %1112 = add nsw i64 %1111, 1
  %1113 = load ptr, ptr %4, align 8, !tbaa !5
  %1114 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1113, i32 0, i32 28
  store i64 %1112, ptr %1114, align 8, !tbaa !73
  %1115 = load ptr, ptr %4, align 8, !tbaa !5
  %1116 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1115, i32 0, i32 30
  %1117 = load i64, ptr %1116, align 8, !tbaa !101
  %1118 = add nsw i64 %1117, 1
  %1119 = load ptr, ptr %4, align 8, !tbaa !5
  %1120 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1119, i32 0, i32 30
  store i64 %1118, ptr %1120, align 8, !tbaa !101
  %1121 = load ptr, ptr %4, align 8, !tbaa !5
  %1122 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1121, i32 0, i32 40
  %1123 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %1122, i32 0, i32 3
  %1124 = load double, ptr %1123, align 8, !tbaa !93
  %1125 = load ptr, ptr %4, align 8, !tbaa !5
  %1126 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1125, i32 0, i32 33
  %1127 = load double, ptr %1126, align 8, !tbaa !102
  %1128 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1124, double noundef %1127)
  br i1 %1128, label %1129, label %1142

1129:                                             ; preds = %1108
  %1130 = load ptr, ptr %4, align 8, !tbaa !5
  %1131 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1130, i32 0, i32 40
  %1132 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %1131, i32 0, i32 3
  %1133 = load double, ptr %1132, align 8, !tbaa !93
  %1134 = load ptr, ptr %4, align 8, !tbaa !5
  %1135 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1134, i32 0, i32 33
  store double %1133, ptr %1135, align 8, !tbaa !102
  %1136 = load ptr, ptr %4, align 8, !tbaa !5
  %1137 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1136, i32 0, i32 40
  %1138 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %1137, i32 0, i32 4
  %1139 = load i64, ptr %1138, align 8, !tbaa !103
  %1140 = load ptr, ptr %4, align 8, !tbaa !5
  %1141 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1140, i32 0, i32 34
  store i64 %1139, ptr %1141, align 8, !tbaa !104
  br label %1142

1142:                                             ; preds = %1129, %1108
  %1143 = load ptr, ptr %4, align 8, !tbaa !5
  %1144 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1143, i32 0, i32 40
  %1145 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %1144, i32 0, i32 5
  %1146 = load double, ptr %1145, align 8, !tbaa !94
  %1147 = load ptr, ptr %4, align 8, !tbaa !5
  %1148 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1147, i32 0, i32 35
  %1149 = load double, ptr %1148, align 8, !tbaa !105
  %1150 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1146, double noundef %1149)
  br i1 %1150, label %1151, label %1164

1151:                                             ; preds = %1142
  %1152 = load ptr, ptr %4, align 8, !tbaa !5
  %1153 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1152, i32 0, i32 40
  %1154 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %1153, i32 0, i32 5
  %1155 = load double, ptr %1154, align 8, !tbaa !94
  %1156 = load ptr, ptr %4, align 8, !tbaa !5
  %1157 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1156, i32 0, i32 35
  store double %1155, ptr %1157, align 8, !tbaa !105
  %1158 = load ptr, ptr %4, align 8, !tbaa !5
  %1159 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1158, i32 0, i32 40
  %1160 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %1159, i32 0, i32 6
  %1161 = load i64, ptr %1160, align 8, !tbaa !106
  %1162 = load ptr, ptr %4, align 8, !tbaa !5
  %1163 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1162, i32 0, i32 36
  store i64 %1161, ptr %1163, align 8, !tbaa !107
  br label %1164

1164:                                             ; preds = %1151, %1142
  %1165 = load ptr, ptr %4, align 8, !tbaa !5
  %1166 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1165, i32 0, i32 40
  %1167 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %1166, i32 0, i32 7
  %1168 = load double, ptr %1167, align 8, !tbaa !95
  %1169 = load ptr, ptr %4, align 8, !tbaa !5
  %1170 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1169, i32 0, i32 37
  %1171 = load double, ptr %1170, align 8, !tbaa !108
  %1172 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1168, double noundef %1171)
  br i1 %1172, label %1173, label %1186

1173:                                             ; preds = %1164
  %1174 = load ptr, ptr %4, align 8, !tbaa !5
  %1175 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1174, i32 0, i32 40
  %1176 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %1175, i32 0, i32 7
  %1177 = load double, ptr %1176, align 8, !tbaa !95
  %1178 = load ptr, ptr %4, align 8, !tbaa !5
  %1179 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1178, i32 0, i32 37
  store double %1177, ptr %1179, align 8, !tbaa !108
  %1180 = load ptr, ptr %4, align 8, !tbaa !5
  %1181 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1180, i32 0, i32 40
  %1182 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %1181, i32 0, i32 8
  %1183 = load i64, ptr %1182, align 8, !tbaa !109
  %1184 = load ptr, ptr %4, align 8, !tbaa !5
  %1185 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1184, i32 0, i32 38
  store i64 %1183, ptr %1185, align 8, !tbaa !110
  br label %1186

1186:                                             ; preds = %1173, %1164
  %1187 = load i64, ptr %6, align 8, !tbaa !61
  %1188 = load ptr, ptr %4, align 8, !tbaa !5
  %1189 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1188, i32 0, i32 27
  %1190 = load ptr, ptr %4, align 8, !tbaa !5
  %1191 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1190, i32 0, i32 28
  %1192 = load i64, ptr %1191, align 8, !tbaa !73
  %1193 = sub nsw i64 %1192, 1
  %1194 = load ptr, ptr %4, align 8, !tbaa !5
  %1195 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1194, i32 0, i32 19
  %1196 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1187, ptr noundef %1189, i64 noundef %1193, ptr noundef %1195, ptr noundef %1196)
  %1197 = load ptr, ptr %4, align 8, !tbaa !5
  %1198 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1197, i32 0, i32 24
  store i8 1, ptr %1198, align 1, !tbaa !111
  %1199 = load ptr, ptr %4, align 8, !tbaa !5
  %1200 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1199, i32 0, i32 25
  %1201 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1200, i32 0, i32 0
  store i32 7, ptr %1201, align 8, !tbaa !9
  br label %2771

1202:                                             ; preds = %160
  %1203 = load ptr, ptr %4, align 8, !tbaa !5
  %1204 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1203, i32 0, i32 24
  store i8 0, ptr %1204, align 1, !tbaa !111
  %1205 = load ptr, ptr %4, align 8, !tbaa !5
  %1206 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1205, i32 0, i32 26
  %1207 = load i8, ptr %1206, align 8, !tbaa !75, !range !63, !noundef !64
  %1208 = trunc i8 %1207 to i1
  br i1 %1208, label %1209, label %1214

1209:                                             ; preds = %1202
  %1210 = load ptr, ptr %4, align 8, !tbaa !5
  %1211 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1210, i32 0, i32 32
  store i64 8, ptr %1211, align 8, !tbaa !74
  store i8 0, ptr %17, align 1, !tbaa !62
  %1212 = load i8, ptr %17, align 1, !tbaa !62, !range !63, !noundef !64
  %1213 = trunc i8 %1212 to i1
  store i1 %1213, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %2853

1214:                                             ; preds = %1202
  %1215 = load i64, ptr %8, align 8, !tbaa !61
  %1216 = add nsw i64 %1215, 1
  store i64 %1216, ptr %8, align 8, !tbaa !61
  br label %349

1217:                                             ; preds = %354
  %1218 = load i64, ptr %7, align 8, !tbaa !61
  %1219 = load ptr, ptr %4, align 8, !tbaa !5
  %1220 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1219, i32 0, i32 52
  %1221 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1218, ptr noundef %1220, ptr noundef %1221)
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %1222

1222:                                             ; preds = %1246, %1217
  %1223 = load i64, ptr %10, align 8, !tbaa !61
  %1224 = load i64, ptr %7, align 8, !tbaa !61
  %1225 = sub nsw i64 %1224, 1
  %1226 = icmp sle i64 %1223, %1225
  br i1 %1226, label %1227, label %1249

1227:                                             ; preds = %1222
  %1228 = load ptr, ptr %4, align 8, !tbaa !5
  %1229 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1228, i32 0, i32 27
  %1230 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1229, i32 0, i32 6
  %1231 = load ptr, ptr %1230, align 8, !tbaa !60
  %1232 = load i64, ptr %10, align 8, !tbaa !61
  %1233 = getelementptr inbounds ptr, ptr %1231, i64 %1232
  %1234 = load ptr, ptr %1233, align 8, !tbaa !5
  %1235 = load i64, ptr %6, align 8, !tbaa !61
  %1236 = load i64, ptr %10, align 8, !tbaa !61
  %1237 = add nsw i64 %1235, %1236
  %1238 = getelementptr inbounds double, ptr %1234, i64 %1237
  %1239 = load double, ptr %1238, align 8, !tbaa !65
  %1240 = load ptr, ptr %4, align 8, !tbaa !5
  %1241 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1240, i32 0, i32 52
  %1242 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1241, i32 0, i32 4
  %1243 = load ptr, ptr %1242, align 8, !tbaa !60
  %1244 = load i64, ptr %10, align 8, !tbaa !61
  %1245 = getelementptr inbounds double, ptr %1243, i64 %1244
  store double %1239, ptr %1245, align 8, !tbaa !65
  br label %1246

1246:                                             ; preds = %1227
  %1247 = load i64, ptr %10, align 8, !tbaa !61
  %1248 = add nsw i64 %1247, 1
  store i64 %1248, ptr %10, align 8, !tbaa !61
  br label %1222, !llvm.loop !112

1249:                                             ; preds = %1222
  %1250 = load i64, ptr %7, align 8, !tbaa !61
  %1251 = load i64, ptr %7, align 8, !tbaa !61
  %1252 = load ptr, ptr %4, align 8, !tbaa !5
  %1253 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1252, i32 0, i32 53
  %1254 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %1250, i64 noundef %1251, ptr noundef %1253, ptr noundef %1254)
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %1255

1255:                                             ; preds = %1300, %1249
  %1256 = load i64, ptr %10, align 8, !tbaa !61
  %1257 = load i64, ptr %7, align 8, !tbaa !61
  %1258 = sub nsw i64 %1257, 1
  %1259 = icmp sle i64 %1256, %1258
  br i1 %1259, label %1260, label %1303

1260:                                             ; preds = %1255
  store i64 0, ptr %11, align 8, !tbaa !61
  br label %1261

1261:                                             ; preds = %1296, %1260
  %1262 = load i64, ptr %11, align 8, !tbaa !61
  %1263 = load i64, ptr %7, align 8, !tbaa !61
  %1264 = sub nsw i64 %1263, 1
  %1265 = icmp sle i64 %1262, %1264
  br i1 %1265, label %1266, label %1299

1266:                                             ; preds = %1261
  %1267 = load ptr, ptr %4, align 8, !tbaa !5
  %1268 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1267, i32 0, i32 27
  %1269 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1268, i32 0, i32 6
  %1270 = load ptr, ptr %1269, align 8, !tbaa !60
  %1271 = load i64, ptr %11, align 8, !tbaa !61
  %1272 = getelementptr inbounds ptr, ptr %1270, i64 %1271
  %1273 = load ptr, ptr %1272, align 8, !tbaa !5
  %1274 = load i64, ptr %6, align 8, !tbaa !61
  %1275 = load i64, ptr %10, align 8, !tbaa !61
  %1276 = add nsw i64 %1274, %1275
  %1277 = getelementptr inbounds double, ptr %1273, i64 %1276
  %1278 = load double, ptr %1277, align 8, !tbaa !65
  %1279 = load ptr, ptr %4, align 8, !tbaa !5
  %1280 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1279, i32 0, i32 52
  %1281 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1280, i32 0, i32 4
  %1282 = load ptr, ptr %1281, align 8, !tbaa !60
  %1283 = load i64, ptr %10, align 8, !tbaa !61
  %1284 = getelementptr inbounds double, ptr %1282, i64 %1283
  %1285 = load double, ptr %1284, align 8, !tbaa !65
  %1286 = fsub double %1278, %1285
  %1287 = load ptr, ptr %4, align 8, !tbaa !5
  %1288 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1287, i32 0, i32 53
  %1289 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1288, i32 0, i32 6
  %1290 = load ptr, ptr %1289, align 8, !tbaa !60
  %1291 = load i64, ptr %10, align 8, !tbaa !61
  %1292 = getelementptr inbounds ptr, ptr %1290, i64 %1291
  %1293 = load ptr, ptr %1292, align 8, !tbaa !5
  %1294 = load i64, ptr %11, align 8, !tbaa !61
  %1295 = getelementptr inbounds double, ptr %1293, i64 %1294
  store double %1286, ptr %1295, align 8, !tbaa !65
  br label %1296

1296:                                             ; preds = %1266
  %1297 = load i64, ptr %11, align 8, !tbaa !61
  %1298 = add nsw i64 %1297, 1
  store i64 %1298, ptr %11, align 8, !tbaa !61
  br label %1261, !llvm.loop !113

1299:                                             ; preds = %1261
  br label %1300

1300:                                             ; preds = %1299
  %1301 = load i64, ptr %10, align 8, !tbaa !61
  %1302 = add nsw i64 %1301, 1
  store i64 %1302, ptr %10, align 8, !tbaa !61
  br label %1255, !llvm.loop !114

1303:                                             ; preds = %1255
  %1304 = load i64, ptr %7, align 8, !tbaa !61
  %1305 = load ptr, ptr %4, align 8, !tbaa !5
  %1306 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1305, i32 0, i32 55
  %1307 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1304, ptr noundef %1306, ptr noundef %1307)
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %1308

1308:                                             ; preds = %1421, %1303
  %1309 = load i64, ptr %10, align 8, !tbaa !61
  %1310 = load i64, ptr %7, align 8, !tbaa !61
  %1311 = sub nsw i64 %1310, 1
  %1312 = icmp sle i64 %1309, %1311
  br i1 %1312, label %1313, label %1424

1313:                                             ; preds = %1308
  %1314 = load ptr, ptr %4, align 8, !tbaa !5
  %1315 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1314, i32 0, i32 55
  %1316 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1315, i32 0, i32 4
  %1317 = load ptr, ptr %1316, align 8, !tbaa !60
  %1318 = load i64, ptr %10, align 8, !tbaa !61
  %1319 = getelementptr inbounds double, ptr %1317, i64 %1318
  store double 0.000000e+00, ptr %1319, align 8, !tbaa !65
  store i64 0, ptr %11, align 8, !tbaa !61
  br label %1320

1320:                                             ; preds = %1350, %1313
  %1321 = load i64, ptr %11, align 8, !tbaa !61
  %1322 = load i64, ptr %7, align 8, !tbaa !61
  %1323 = sub nsw i64 %1322, 1
  %1324 = icmp sle i64 %1321, %1323
  br i1 %1324, label %1325, label %1353

1325:                                             ; preds = %1320
  %1326 = load ptr, ptr %4, align 8, !tbaa !5
  %1327 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1326, i32 0, i32 55
  %1328 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1327, i32 0, i32 4
  %1329 = load ptr, ptr %1328, align 8, !tbaa !60
  %1330 = load i64, ptr %10, align 8, !tbaa !61
  %1331 = getelementptr inbounds double, ptr %1329, i64 %1330
  %1332 = load double, ptr %1331, align 8, !tbaa !65
  %1333 = load ptr, ptr %4, align 8, !tbaa !5
  %1334 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1333, i32 0, i32 53
  %1335 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1334, i32 0, i32 6
  %1336 = load ptr, ptr %1335, align 8, !tbaa !60
  %1337 = load i64, ptr %10, align 8, !tbaa !61
  %1338 = getelementptr inbounds ptr, ptr %1336, i64 %1337
  %1339 = load ptr, ptr %1338, align 8, !tbaa !5
  %1340 = load i64, ptr %11, align 8, !tbaa !61
  %1341 = getelementptr inbounds double, ptr %1339, i64 %1340
  %1342 = load double, ptr %1341, align 8, !tbaa !65
  %1343 = fsub double %1332, %1342
  %1344 = load ptr, ptr %4, align 8, !tbaa !5
  %1345 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1344, i32 0, i32 55
  %1346 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1345, i32 0, i32 4
  %1347 = load ptr, ptr %1346, align 8, !tbaa !60
  %1348 = load i64, ptr %10, align 8, !tbaa !61
  %1349 = getelementptr inbounds double, ptr %1347, i64 %1348
  store double %1343, ptr %1349, align 8, !tbaa !65
  br label %1350

1350:                                             ; preds = %1325
  %1351 = load i64, ptr %11, align 8, !tbaa !61
  %1352 = add nsw i64 %1351, 1
  store i64 %1352, ptr %11, align 8, !tbaa !61
  br label %1320, !llvm.loop !115

1353:                                             ; preds = %1320
  %1354 = load ptr, ptr %4, align 8, !tbaa !5
  %1355 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1354, i32 0, i32 55
  %1356 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1355, i32 0, i32 4
  %1357 = load ptr, ptr %1356, align 8, !tbaa !60
  %1358 = load i64, ptr %10, align 8, !tbaa !61
  %1359 = getelementptr inbounds double, ptr %1357, i64 %1358
  %1360 = load double, ptr %1359, align 8, !tbaa !65
  %1361 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1360, double noundef 0.000000e+00)
  br i1 %1361, label %1362, label %1420

1362:                                             ; preds = %1353
  %1363 = load ptr, ptr %4, align 8, !tbaa !5
  %1364 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1363, i32 0, i32 55
  %1365 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1364, i32 0, i32 4
  %1366 = load ptr, ptr %1365, align 8, !tbaa !60
  %1367 = load i64, ptr %10, align 8, !tbaa !61
  %1368 = getelementptr inbounds double, ptr %1366, i64 %1367
  store double 0.000000e+00, ptr %1368, align 8, !tbaa !65
  store i64 0, ptr %11, align 8, !tbaa !61
  br label %1369

1369:                                             ; preds = %1401, %1362
  %1370 = load i64, ptr %11, align 8, !tbaa !61
  %1371 = load i64, ptr %7, align 8, !tbaa !61
  %1372 = sub nsw i64 %1371, 1
  %1373 = icmp sle i64 %1370, %1372
  br i1 %1373, label %1374, label %1404

1374:                                             ; preds = %1369
  %1375 = load ptr, ptr %4, align 8, !tbaa !5
  %1376 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1375, i32 0, i32 55
  %1377 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1376, i32 0, i32 4
  %1378 = load ptr, ptr %1377, align 8, !tbaa !60
  %1379 = load i64, ptr %10, align 8, !tbaa !61
  %1380 = getelementptr inbounds double, ptr %1378, i64 %1379
  %1381 = load double, ptr %1380, align 8, !tbaa !65
  %1382 = load ptr, ptr %4, align 8, !tbaa !5
  %1383 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1382, i32 0, i32 53
  %1384 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1383, i32 0, i32 6
  %1385 = load ptr, ptr %1384, align 8, !tbaa !60
  %1386 = load i64, ptr %10, align 8, !tbaa !61
  %1387 = getelementptr inbounds ptr, ptr %1385, i64 %1386
  %1388 = load ptr, ptr %1387, align 8, !tbaa !5
  %1389 = load i64, ptr %11, align 8, !tbaa !61
  %1390 = getelementptr inbounds double, ptr %1388, i64 %1389
  %1391 = load double, ptr %1390, align 8, !tbaa !65
  %1392 = fneg double %1391
  %1393 = load ptr, ptr %5, align 8, !tbaa !5
  %1394 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1381, double noundef %1392, ptr noundef %1393)
  %1395 = load ptr, ptr %4, align 8, !tbaa !5
  %1396 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1395, i32 0, i32 55
  %1397 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1396, i32 0, i32 4
  %1398 = load ptr, ptr %1397, align 8, !tbaa !60
  %1399 = load i64, ptr %10, align 8, !tbaa !61
  %1400 = getelementptr inbounds double, ptr %1398, i64 %1399
  store double %1394, ptr %1400, align 8, !tbaa !65
  br label %1401

1401:                                             ; preds = %1374
  %1402 = load i64, ptr %11, align 8, !tbaa !61
  %1403 = add nsw i64 %1402, 1
  store i64 %1403, ptr %11, align 8, !tbaa !61
  br label %1369, !llvm.loop !116

1404:                                             ; preds = %1369
  %1405 = load ptr, ptr %4, align 8, !tbaa !5
  %1406 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1405, i32 0, i32 55
  %1407 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1406, i32 0, i32 4
  %1408 = load ptr, ptr %1407, align 8, !tbaa !60
  %1409 = load i64, ptr %10, align 8, !tbaa !61
  %1410 = getelementptr inbounds double, ptr %1408, i64 %1409
  %1411 = load double, ptr %1410, align 8, !tbaa !65
  %1412 = load ptr, ptr %5, align 8, !tbaa !5
  %1413 = call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %1411, double noundef -1.000000e+00, ptr noundef %1412)
  %1414 = load ptr, ptr %4, align 8, !tbaa !5
  %1415 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1414, i32 0, i32 55
  %1416 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1415, i32 0, i32 4
  %1417 = load ptr, ptr %1416, align 8, !tbaa !60
  %1418 = load i64, ptr %10, align 8, !tbaa !61
  %1419 = getelementptr inbounds double, ptr %1417, i64 %1418
  store double %1413, ptr %1419, align 8, !tbaa !65
  br label %1420

1420:                                             ; preds = %1404, %1353
  br label %1421

1421:                                             ; preds = %1420
  %1422 = load i64, ptr %10, align 8, !tbaa !61
  %1423 = add nsw i64 %1422, 1
  store i64 %1423, ptr %10, align 8, !tbaa !61
  br label %1308, !llvm.loop !117

1424:                                             ; preds = %1308
  %1425 = load i64, ptr %7, align 8, !tbaa !61
  %1426 = load ptr, ptr %4, align 8, !tbaa !5
  %1427 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1426, i32 0, i32 55
  %1428 = load ptr, ptr %5, align 8, !tbaa !5
  %1429 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1425, ptr noundef %1427, ptr noundef %1428)
  %1430 = load ptr, ptr %5, align 8, !tbaa !5
  %1431 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1429, ptr noundef %1430)
  store double %1431, ptr %14, align 8, !tbaa !65
  %1432 = load double, ptr %14, align 8, !tbaa !65
  %1433 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1432, double noundef 0.000000e+00)
  %1434 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1433, ptr noundef @.str.1667, ptr noundef %1434)
  %1435 = load i64, ptr %7, align 8, !tbaa !61
  %1436 = load double, ptr %14, align 8, !tbaa !65
  %1437 = fdiv double 1.000000e+00, %1436
  %1438 = load ptr, ptr %5, align 8, !tbaa !5
  %1439 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1437, double noundef 1.000000e+00, ptr noundef %1438)
  %1440 = load ptr, ptr %4, align 8, !tbaa !5
  %1441 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1440, i32 0, i32 55
  %1442 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1435, double noundef %1439, ptr noundef %1441, ptr noundef %1442)
  %1443 = load i64, ptr %7, align 8, !tbaa !61
  store i64 %1443, ptr %13, align 8, !tbaa !61
  br label %1444

1444:                                             ; preds = %2765, %1424
  %1445 = load i64, ptr %13, align 8, !tbaa !61
  %1446 = load i64, ptr %9, align 8, !tbaa !61
  %1447 = sub nsw i64 %1446, 1
  %1448 = icmp sgt i64 %1445, %1447
  br i1 %1448, label %1449, label %1450

1449:                                             ; preds = %1444
  br label %2768

1450:                                             ; preds = %1444
  %1451 = load i8, ptr %16, align 1, !tbaa !62, !range !63, !noundef !64
  %1452 = trunc i8 %1451 to i1
  br i1 %1452, label %1453, label %1456

1453:                                             ; preds = %1450
  %1454 = load i64, ptr %13, align 8, !tbaa !61
  %1455 = trunc i64 %1454 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1668, i32 noundef %1455)
  br label %1456

1456:                                             ; preds = %1453, %1450
  %1457 = load i64, ptr %7, align 8, !tbaa !61
  %1458 = load ptr, ptr %4, align 8, !tbaa !5
  %1459 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1458, i32 0, i32 54
  %1460 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1457, ptr noundef %1459, ptr noundef %1460)
  store double 0.000000e+00, ptr %14, align 8, !tbaa !65
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %1461

1461:                                             ; preds = %1489, %1456
  %1462 = load i64, ptr %10, align 8, !tbaa !61
  %1463 = load i64, ptr %7, align 8, !tbaa !61
  %1464 = sub nsw i64 %1463, 1
  %1465 = icmp sle i64 %1462, %1464
  br i1 %1465, label %1466, label %1492

1466:                                             ; preds = %1461
  %1467 = load ptr, ptr %4, align 8, !tbaa !5
  %1468 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1467, i32 0, i32 57
  %1469 = load ptr, ptr %5, align 8, !tbaa !5
  %1470 = call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef %1468, ptr noundef %1469)
  %1471 = fadd double %1470, 5.000000e-16
  %1472 = load ptr, ptr %5, align 8, !tbaa !5
  %1473 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef %1471, ptr noundef %1472)
  %1474 = load ptr, ptr %4, align 8, !tbaa !5
  %1475 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1474, i32 0, i32 54
  %1476 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1475, i32 0, i32 4
  %1477 = load ptr, ptr %1476, align 8, !tbaa !60
  %1478 = load i64, ptr %10, align 8, !tbaa !61
  %1479 = getelementptr inbounds double, ptr %1477, i64 %1478
  store double %1473, ptr %1479, align 8, !tbaa !65
  %1480 = load double, ptr %14, align 8, !tbaa !65
  %1481 = load ptr, ptr %4, align 8, !tbaa !5
  %1482 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1481, i32 0, i32 54
  %1483 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1482, i32 0, i32 4
  %1484 = load ptr, ptr %1483, align 8, !tbaa !60
  %1485 = load i64, ptr %10, align 8, !tbaa !61
  %1486 = getelementptr inbounds double, ptr %1484, i64 %1485
  %1487 = load double, ptr %1486, align 8, !tbaa !65
  %1488 = fadd double %1480, %1487
  store double %1488, ptr %14, align 8, !tbaa !65
  br label %1489

1489:                                             ; preds = %1466
  %1490 = load i64, ptr %10, align 8, !tbaa !61
  %1491 = add nsw i64 %1490, 1
  store i64 %1491, ptr %10, align 8, !tbaa !61
  br label %1461, !llvm.loop !118

1492:                                             ; preds = %1461
  %1493 = load i64, ptr %7, align 8, !tbaa !61
  %1494 = load double, ptr %14, align 8, !tbaa !65
  %1495 = fdiv double 1.000000e+00, %1494
  %1496 = load ptr, ptr %4, align 8, !tbaa !5
  %1497 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1496, i32 0, i32 54
  %1498 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1493, double noundef %1495, ptr noundef %1497, ptr noundef %1498)
  %1499 = load i8, ptr %16, align 1, !tbaa !62, !range !63, !noundef !64
  %1500 = trunc i8 %1499 to i1
  br i1 %1500, label %1501, label %1506

1501:                                             ; preds = %1492
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1669)
  %1502 = load ptr, ptr %4, align 8, !tbaa !5
  %1503 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1502, i32 0, i32 54
  %1504 = load i64, ptr %7, align 8, !tbaa !61
  %1505 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1503, i64 noundef 0, i64 noundef %1504, ptr noundef %1505)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %1506

1506:                                             ; preds = %1501, %1492
  %1507 = load i64, ptr %6, align 8, !tbaa !61
  %1508 = add nsw i64 %1507, 1
  %1509 = load ptr, ptr %4, align 8, !tbaa !5
  %1510 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1509, i32 0, i32 56
  %1511 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1508, ptr noundef %1510, ptr noundef %1511)
  store i64 -1, ptr %12, align 8, !tbaa !61
  store double 1.000000e+300, ptr %14, align 8, !tbaa !65
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %1512

1512:                                             ; preds = %1561, %1506
  %1513 = load i64, ptr %10, align 8, !tbaa !61
  %1514 = load i64, ptr %13, align 8, !tbaa !61
  %1515 = sub nsw i64 %1514, 1
  %1516 = icmp sle i64 %1513, %1515
  br i1 %1516, label %1517, label %1564

1517:                                             ; preds = %1512
  store double 0.000000e+00, ptr %15, align 8, !tbaa !65
  store i64 0, ptr %11, align 8, !tbaa !61
  br label %1518

1518:                                             ; preds = %1550, %1517
  %1519 = load i64, ptr %11, align 8, !tbaa !61
  %1520 = load i64, ptr %7, align 8, !tbaa !61
  %1521 = sub nsw i64 %1520, 1
  %1522 = icmp sle i64 %1519, %1521
  br i1 %1522, label %1523, label %1553

1523:                                             ; preds = %1518
  %1524 = load double, ptr %15, align 8, !tbaa !65
  %1525 = load ptr, ptr %4, align 8, !tbaa !5
  %1526 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1525, i32 0, i32 27
  %1527 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1526, i32 0, i32 6
  %1528 = load ptr, ptr %1527, align 8, !tbaa !60
  %1529 = load i64, ptr %10, align 8, !tbaa !61
  %1530 = getelementptr inbounds ptr, ptr %1528, i64 %1529
  %1531 = load ptr, ptr %1530, align 8, !tbaa !5
  %1532 = load i64, ptr %6, align 8, !tbaa !61
  %1533 = load i64, ptr %7, align 8, !tbaa !61
  %1534 = add nsw i64 %1532, %1533
  %1535 = load i64, ptr %11, align 8, !tbaa !61
  %1536 = add nsw i64 %1534, %1535
  %1537 = getelementptr inbounds double, ptr %1531, i64 %1536
  %1538 = load double, ptr %1537, align 8, !tbaa !65
  %1539 = load ptr, ptr %4, align 8, !tbaa !5
  %1540 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1539, i32 0, i32 54
  %1541 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1540, i32 0, i32 4
  %1542 = load ptr, ptr %1541, align 8, !tbaa !60
  %1543 = load i64, ptr %11, align 8, !tbaa !61
  %1544 = getelementptr inbounds double, ptr %1542, i64 %1543
  %1545 = load double, ptr %1544, align 8, !tbaa !65
  %1546 = fsub double %1538, %1545
  %1547 = load ptr, ptr %5, align 8, !tbaa !5
  %1548 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1546, ptr noundef %1547)
  %1549 = fadd double %1524, %1548
  store double %1549, ptr %15, align 8, !tbaa !65
  br label %1550

1550:                                             ; preds = %1523
  %1551 = load i64, ptr %11, align 8, !tbaa !61
  %1552 = add nsw i64 %1551, 1
  store i64 %1552, ptr %11, align 8, !tbaa !61
  br label %1518, !llvm.loop !119

1553:                                             ; preds = %1518
  %1554 = load double, ptr %15, align 8, !tbaa !65
  %1555 = load double, ptr %14, align 8, !tbaa !65
  %1556 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %1554, double noundef %1555)
  br i1 %1556, label %1557, label %1560

1557:                                             ; preds = %1553
  %1558 = load i64, ptr %10, align 8, !tbaa !61
  store i64 %1558, ptr %12, align 8, !tbaa !61
  %1559 = load double, ptr %15, align 8, !tbaa !65
  store double %1559, ptr %14, align 8, !tbaa !65
  br label %1560

1560:                                             ; preds = %1557, %1553
  br label %1561

1561:                                             ; preds = %1560
  %1562 = load i64, ptr %10, align 8, !tbaa !61
  %1563 = add nsw i64 %1562, 1
  store i64 %1563, ptr %10, align 8, !tbaa !61
  br label %1512, !llvm.loop !120

1564:                                             ; preds = %1512
  %1565 = load i64, ptr %12, align 8, !tbaa !61
  %1566 = icmp sge i64 %1565, 0
  %1567 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1566, ptr noundef @.str.1670, ptr noundef %1567)
  %1568 = load i64, ptr %6, align 8, !tbaa !61
  %1569 = load ptr, ptr %4, align 8, !tbaa !5
  %1570 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1569, i32 0, i32 27
  %1571 = load i64, ptr %12, align 8, !tbaa !61
  %1572 = load ptr, ptr %4, align 8, !tbaa !5
  %1573 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1572, i32 0, i32 56
  %1574 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1568, ptr noundef %1570, i64 noundef %1571, ptr noundef %1573, ptr noundef %1574)
  %1575 = load ptr, ptr %4, align 8, !tbaa !5
  %1576 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1575, i32 0, i32 56
  %1577 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1576, i32 0, i32 4
  %1578 = load ptr, ptr %1577, align 8, !tbaa !60
  %1579 = load i64, ptr %6, align 8, !tbaa !61
  %1580 = getelementptr inbounds double, ptr %1578, i64 %1579
  store double 0.000000e+00, ptr %1580, align 8, !tbaa !65
  %1581 = load i8, ptr %16, align 1, !tbaa !62, !range !63, !noundef !64
  %1582 = trunc i8 %1581 to i1
  br i1 %1582, label %1583, label %1586

1583:                                             ; preds = %1564
  %1584 = load i64, ptr %12, align 8, !tbaa !61
  %1585 = trunc i64 %1584 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1671, i32 noundef %1585)
  br label %1586

1586:                                             ; preds = %1583, %1564
  %1587 = load i64, ptr %6, align 8, !tbaa !61
  %1588 = add nsw i64 %1587, 1
  %1589 = load ptr, ptr %4, align 8, !tbaa !5
  %1590 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1589, i32 0, i32 58
  %1591 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1588, ptr noundef %1590, ptr noundef %1591)
  %1592 = load i64, ptr %6, align 8, !tbaa !61
  %1593 = add nsw i64 %1592, 1
  %1594 = load ptr, ptr %4, align 8, !tbaa !5
  %1595 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1594, i32 0, i32 59
  %1596 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1593, ptr noundef %1595, ptr noundef %1596)
  %1597 = load i64, ptr %6, align 8, !tbaa !61
  %1598 = load ptr, ptr %4, align 8, !tbaa !5
  %1599 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1598, i32 0, i32 8
  %1600 = load ptr, ptr %4, align 8, !tbaa !5
  %1601 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1600, i32 0, i32 58
  %1602 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1597, ptr noundef %1599, ptr noundef %1601, ptr noundef %1602)
  %1603 = load i64, ptr %6, align 8, !tbaa !61
  %1604 = load ptr, ptr %4, align 8, !tbaa !5
  %1605 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1604, i32 0, i32 9
  %1606 = load ptr, ptr %4, align 8, !tbaa !5
  %1607 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1606, i32 0, i32 59
  %1608 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1603, ptr noundef %1605, ptr noundef %1607, ptr noundef %1608)
  %1609 = load ptr, ptr %5, align 8, !tbaa !5
  %1610 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %1609, i32 0, i32 3
  %1611 = load double, ptr %1610, align 8, !tbaa !121
  %1612 = load ptr, ptr %4, align 8, !tbaa !5
  %1613 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1612, i32 0, i32 58
  %1614 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1613, i32 0, i32 4
  %1615 = load ptr, ptr %1614, align 8, !tbaa !60
  %1616 = load i64, ptr %6, align 8, !tbaa !61
  %1617 = getelementptr inbounds double, ptr %1615, i64 %1616
  store double %1611, ptr %1617, align 8, !tbaa !65
  %1618 = load ptr, ptr %5, align 8, !tbaa !5
  %1619 = getelementptr inbounds %"struct.alglib_impl::ae_state", ptr %1618, i32 0, i32 2
  %1620 = load double, ptr %1619, align 8, !tbaa !122
  %1621 = load ptr, ptr %4, align 8, !tbaa !5
  %1622 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1621, i32 0, i32 59
  %1623 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1622, i32 0, i32 4
  %1624 = load ptr, ptr %1623, align 8, !tbaa !60
  %1625 = load i64, ptr %6, align 8, !tbaa !61
  %1626 = getelementptr inbounds double, ptr %1624, i64 %1625
  store double %1620, ptr %1626, align 8, !tbaa !65
  %1627 = load ptr, ptr %4, align 8, !tbaa !5
  %1628 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1627, i32 0, i32 46
  %1629 = load i64, ptr %1628, align 8, !tbaa !81
  %1630 = icmp sgt i64 %1629, 0
  br i1 %1630, label %1631, label %1690

1631:                                             ; preds = %1586
  %1632 = load ptr, ptr %4, align 8, !tbaa !5
  %1633 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1632, i32 0, i32 46
  %1634 = load i64, ptr %1633, align 8, !tbaa !81
  %1635 = load i64, ptr %6, align 8, !tbaa !61
  %1636 = add nsw i64 %1635, 2
  %1637 = load ptr, ptr %4, align 8, !tbaa !5
  %1638 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1637, i32 0, i32 60
  %1639 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %1634, i64 noundef %1636, ptr noundef %1638, ptr noundef %1639)
  %1640 = load ptr, ptr %4, align 8, !tbaa !5
  %1641 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1640, i32 0, i32 46
  %1642 = load i64, ptr %1641, align 8, !tbaa !81
  %1643 = load i64, ptr %6, align 8, !tbaa !61
  %1644 = load ptr, ptr %4, align 8, !tbaa !5
  %1645 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1644, i32 0, i32 44
  %1646 = load ptr, ptr %4, align 8, !tbaa !5
  %1647 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1646, i32 0, i32 60
  %1648 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopymEllPKNS_9ae_matrixEPS0_PNS_8ae_stateE(i64 noundef %1642, i64 noundef %1643, ptr noundef %1645, ptr noundef %1647, ptr noundef %1648)
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %1649

1649:                                             ; preds = %1686, %1631
  %1650 = load i64, ptr %10, align 8, !tbaa !61
  %1651 = load ptr, ptr %4, align 8, !tbaa !5
  %1652 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1651, i32 0, i32 46
  %1653 = load i64, ptr %1652, align 8, !tbaa !81
  %1654 = sub nsw i64 %1653, 1
  %1655 = icmp sle i64 %1650, %1654
  br i1 %1655, label %1656, label %1689

1656:                                             ; preds = %1649
  %1657 = load ptr, ptr %4, align 8, !tbaa !5
  %1658 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1657, i32 0, i32 60
  %1659 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1658, i32 0, i32 6
  %1660 = load ptr, ptr %1659, align 8, !tbaa !60
  %1661 = load i64, ptr %10, align 8, !tbaa !61
  %1662 = getelementptr inbounds ptr, ptr %1660, i64 %1661
  %1663 = load ptr, ptr %1662, align 8, !tbaa !5
  %1664 = load i64, ptr %6, align 8, !tbaa !61
  %1665 = getelementptr inbounds double, ptr %1663, i64 %1664
  store double 0.000000e+00, ptr %1665, align 8, !tbaa !65
  %1666 = load ptr, ptr %4, align 8, !tbaa !5
  %1667 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1666, i32 0, i32 44
  %1668 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1667, i32 0, i32 6
  %1669 = load ptr, ptr %1668, align 8, !tbaa !60
  %1670 = load i64, ptr %10, align 8, !tbaa !61
  %1671 = getelementptr inbounds ptr, ptr %1669, i64 %1670
  %1672 = load ptr, ptr %1671, align 8, !tbaa !5
  %1673 = load i64, ptr %6, align 8, !tbaa !61
  %1674 = getelementptr inbounds double, ptr %1672, i64 %1673
  %1675 = load double, ptr %1674, align 8, !tbaa !65
  %1676 = load ptr, ptr %4, align 8, !tbaa !5
  %1677 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1676, i32 0, i32 60
  %1678 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1677, i32 0, i32 6
  %1679 = load ptr, ptr %1678, align 8, !tbaa !60
  %1680 = load i64, ptr %10, align 8, !tbaa !61
  %1681 = getelementptr inbounds ptr, ptr %1679, i64 %1680
  %1682 = load ptr, ptr %1681, align 8, !tbaa !5
  %1683 = load i64, ptr %6, align 8, !tbaa !61
  %1684 = add nsw i64 %1683, 1
  %1685 = getelementptr inbounds double, ptr %1682, i64 %1684
  store double %1675, ptr %1685, align 8, !tbaa !65
  br label %1686

1686:                                             ; preds = %1656
  %1687 = load i64, ptr %10, align 8, !tbaa !61
  %1688 = add nsw i64 %1687, 1
  store i64 %1688, ptr %10, align 8, !tbaa !61
  br label %1649, !llvm.loop !123

1689:                                             ; preds = %1649
  br label %1690

1690:                                             ; preds = %1689, %1586
  %1691 = load i8, ptr %16, align 1, !tbaa !62, !range !63, !noundef !64
  %1692 = trunc i8 %1691 to i1
  br i1 %1692, label %1694, label %1693

1693:                                             ; preds = %1690
  br label %1719

1694:                                             ; preds = %1690
  %1695 = load ptr, ptr %4, align 8, !tbaa !5
  %1696 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1695, i32 0, i32 23
  store i8 1, ptr %1696, align 8, !tbaa !82
  %1697 = load i64, ptr %6, align 8, !tbaa !61
  %1698 = load ptr, ptr %4, align 8, !tbaa !5
  %1699 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1698, i32 0, i32 56
  %1700 = load ptr, ptr %4, align 8, !tbaa !5
  %1701 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1700, i32 0, i32 19
  %1702 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1697, ptr noundef %1699, ptr noundef %1701, ptr noundef %1702)
  %1703 = load ptr, ptr %4, align 8, !tbaa !5
  %1704 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1703, i32 0, i32 25
  %1705 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1704, i32 0, i32 0
  store i32 8, ptr %1705, align 8, !tbaa !9
  br label %2771

1706:                                             ; preds = %167
  %1707 = load ptr, ptr %4, align 8, !tbaa !5
  %1708 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1707, i32 0, i32 23
  store i8 0, ptr %1708, align 8, !tbaa !82
  %1709 = load ptr, ptr %4, align 8, !tbaa !5
  %1710 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1709, i32 0, i32 31
  %1711 = load i64, ptr %1710, align 8, !tbaa !83
  %1712 = add nsw i64 %1711, 1
  %1713 = load ptr, ptr %4, align 8, !tbaa !5
  %1714 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1713, i32 0, i32 31
  store i64 %1712, ptr %1714, align 8, !tbaa !83
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1660)
  %1715 = load ptr, ptr %4, align 8, !tbaa !5
  %1716 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1715, i32 0, i32 21
  %1717 = load i64, ptr %7, align 8, !tbaa !61
  %1718 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1716, i64 noundef 0, i64 noundef %1717, ptr noundef %1718)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %1719

1719:                                             ; preds = %1706, %1693
  %1720 = load i64, ptr %6, align 8, !tbaa !61
  %1721 = add nsw i64 %1720, 1
  %1722 = load ptr, ptr %4, align 8, !tbaa !5
  %1723 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1722, i32 0, i32 56
  %1724 = load ptr, ptr %4, align 8, !tbaa !5
  %1725 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1724, i32 0, i32 39
  %1726 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl12minnlccreateElPKNS_9ae_vectorEPNS_11minnlcstateEPNS_8ae_stateE(i64 noundef %1721, ptr noundef %1723, ptr noundef %1725, ptr noundef %1726)
  %1727 = load ptr, ptr %4, align 8, !tbaa !5
  %1728 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1727, i32 0, i32 39
  %1729 = load ptr, ptr %4, align 8, !tbaa !5
  %1730 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1729, i32 0, i32 2
  %1731 = load double, ptr %1730, align 8, !tbaa !79
  %1732 = load ptr, ptr %4, align 8, !tbaa !5
  %1733 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1732, i32 0, i32 3
  %1734 = load i64, ptr %1733, align 8, !tbaa !80
  %1735 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl13minnlcsetcondEPNS_11minnlcstateEdlPNS_8ae_stateE(ptr noundef %1728, double noundef %1731, i64 noundef %1734, ptr noundef %1735)
  %1736 = load ptr, ptr %4, align 8, !tbaa !5
  %1737 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1736, i32 0, i32 39
  %1738 = load ptr, ptr %4, align 8, !tbaa !5
  %1739 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1738, i32 0, i32 58
  %1740 = load ptr, ptr %4, align 8, !tbaa !5
  %1741 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1740, i32 0, i32 59
  %1742 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11minnlcsetbcEPNS_11minnlcstateEPKNS_9ae_vectorES4_PNS_8ae_stateE(ptr noundef %1737, ptr noundef %1739, ptr noundef %1741, ptr noundef %1742)
  %1743 = load ptr, ptr %4, align 8, !tbaa !5
  %1744 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1743, i32 0, i32 39
  %1745 = load ptr, ptr %4, align 8, !tbaa !5
  %1746 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1745, i32 0, i32 60
  %1747 = load ptr, ptr %4, align 8, !tbaa !5
  %1748 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1747, i32 0, i32 45
  %1749 = load ptr, ptr %4, align 8, !tbaa !5
  %1750 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1749, i32 0, i32 46
  %1751 = load i64, ptr %1750, align 8, !tbaa !81
  %1752 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11minnlcsetlcEPNS_11minnlcstateEPKNS_9ae_matrixEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %1744, ptr noundef %1746, ptr noundef %1748, i64 noundef %1751, ptr noundef %1752)
  %1753 = load ptr, ptr %4, align 8, !tbaa !5
  %1754 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1753, i32 0, i32 39
  %1755 = load ptr, ptr %4, align 8, !tbaa !5
  %1756 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1755, i32 0, i32 50
  %1757 = load i64, ptr %1756, align 8, !tbaa !84
  %1758 = load ptr, ptr %4, align 8, !tbaa !5
  %1759 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1758, i32 0, i32 51
  %1760 = load i64, ptr %1759, align 8, !tbaa !85
  %1761 = load i64, ptr %7, align 8, !tbaa !61
  %1762 = add nsw i64 %1760, %1761
  %1763 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl12minnlcsetnlcEPNS_11minnlcstateEllPNS_8ae_stateE(ptr noundef %1754, i64 noundef %1757, i64 noundef %1762, ptr noundef %1763)
  %1764 = load ptr, ptr %4, align 8, !tbaa !5
  %1765 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1764, i32 0, i32 39
  %1766 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL16monbi_setnlcalgoEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef %1765, ptr noundef %1766)
  br label %1767

1767:                                             ; preds = %2045, %2044, %1719
  %1768 = load ptr, ptr %4, align 8, !tbaa !5
  %1769 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1768, i32 0, i32 39
  %1770 = load ptr, ptr %5, align 8, !tbaa !5
  %1771 = call noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef %1769, ptr noundef %1770)
  br i1 %1771, label %1773, label %1772

1772:                                             ; preds = %1767
  br label %2047

1773:                                             ; preds = %1767
  %1774 = load ptr, ptr %4, align 8, !tbaa !5
  %1775 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1774, i32 0, i32 26
  %1776 = load i8, ptr %1775, align 8, !tbaa !75, !range !63, !noundef !64
  %1777 = trunc i8 %1776 to i1
  br i1 %1777, label %1778, label %1783

1778:                                             ; preds = %1773
  %1779 = load ptr, ptr %4, align 8, !tbaa !5
  %1780 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1779, i32 0, i32 32
  store i64 8, ptr %1780, align 8, !tbaa !74
  store i8 0, ptr %17, align 1, !tbaa !62
  %1781 = load i8, ptr %17, align 1, !tbaa !62, !range !63, !noundef !64
  %1782 = trunc i8 %1781 to i1
  store i1 %1782, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %2853

1783:                                             ; preds = %1773
  %1784 = load ptr, ptr %4, align 8, !tbaa !5
  %1785 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1784, i32 0, i32 39
  %1786 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1785, i32 0, i32 25
  %1787 = load i8, ptr %1786, align 8, !tbaa !86, !range !63, !noundef !64
  %1788 = trunc i8 %1787 to i1
  br i1 %1788, label %1790, label %1789

1789:                                             ; preds = %1783
  br label %2045

1790:                                             ; preds = %1783
  %1791 = load ptr, ptr %4, align 8, !tbaa !5
  %1792 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1791, i32 0, i32 23
  store i8 1, ptr %1792, align 8, !tbaa !82
  %1793 = load i64, ptr %6, align 8, !tbaa !61
  %1794 = load ptr, ptr %4, align 8, !tbaa !5
  %1795 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1794, i32 0, i32 39
  %1796 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1795, i32 0, i32 21
  %1797 = load ptr, ptr %4, align 8, !tbaa !5
  %1798 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1797, i32 0, i32 19
  %1799 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1793, ptr noundef %1796, ptr noundef %1798, ptr noundef %1799)
  %1800 = load ptr, ptr %4, align 8, !tbaa !5
  %1801 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1800, i32 0, i32 25
  %1802 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1801, i32 0, i32 0
  store i32 9, ptr %1802, align 8, !tbaa !9
  br label %2771

1803:                                             ; preds = %174
  %1804 = load ptr, ptr %4, align 8, !tbaa !5
  %1805 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1804, i32 0, i32 23
  store i8 0, ptr %1805, align 8, !tbaa !82
  %1806 = load ptr, ptr %4, align 8, !tbaa !5
  %1807 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1806, i32 0, i32 39
  %1808 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1807, i32 0, i32 21
  %1809 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1808, i32 0, i32 4
  %1810 = load ptr, ptr %1809, align 8, !tbaa !60
  %1811 = load i64, ptr %6, align 8, !tbaa !61
  %1812 = getelementptr inbounds double, ptr %1810, i64 %1811
  %1813 = load double, ptr %1812, align 8, !tbaa !65
  %1814 = fneg double %1813
  %1815 = load ptr, ptr %4, align 8, !tbaa !5
  %1816 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1815, i32 0, i32 39
  %1817 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1816, i32 0, i32 23
  %1818 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1817, i32 0, i32 4
  %1819 = load ptr, ptr %1818, align 8, !tbaa !60
  %1820 = getelementptr inbounds double, ptr %1819, i64 0
  store double %1814, ptr %1820, align 8, !tbaa !65
  %1821 = load i64, ptr %6, align 8, !tbaa !61
  %1822 = add nsw i64 %1821, 1
  %1823 = load ptr, ptr %4, align 8, !tbaa !5
  %1824 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1823, i32 0, i32 39
  %1825 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1824, i32 0, i32 24
  %1826 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %1822, double noundef 0.000000e+00, ptr noundef %1825, i64 noundef 0, ptr noundef %1826)
  %1827 = load ptr, ptr %4, align 8, !tbaa !5
  %1828 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1827, i32 0, i32 39
  %1829 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1828, i32 0, i32 24
  %1830 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1829, i32 0, i32 6
  %1831 = load ptr, ptr %1830, align 8, !tbaa !60
  %1832 = getelementptr inbounds ptr, ptr %1831, i64 0
  %1833 = load ptr, ptr %1832, align 8, !tbaa !5
  %1834 = load i64, ptr %6, align 8, !tbaa !61
  %1835 = getelementptr inbounds double, ptr %1833, i64 %1834
  store double -1.000000e+00, ptr %1835, align 8, !tbaa !65
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %1836

1836:                                             ; preds = %1929, %1803
  %1837 = load i64, ptr %10, align 8, !tbaa !61
  %1838 = load ptr, ptr %4, align 8, !tbaa !5
  %1839 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1838, i32 0, i32 50
  %1840 = load i64, ptr %1839, align 8, !tbaa !84
  %1841 = load ptr, ptr %4, align 8, !tbaa !5
  %1842 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1841, i32 0, i32 51
  %1843 = load i64, ptr %1842, align 8, !tbaa !85
  %1844 = add nsw i64 %1840, %1843
  %1845 = sub nsw i64 %1844, 1
  %1846 = icmp sle i64 %1837, %1845
  br i1 %1846, label %1847, label %1932

1847:                                             ; preds = %1836
  %1848 = load ptr, ptr %4, align 8, !tbaa !5
  %1849 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1848, i32 0, i32 21
  %1850 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1849, i32 0, i32 4
  %1851 = load ptr, ptr %1850, align 8, !tbaa !60
  %1852 = load i64, ptr %7, align 8, !tbaa !61
  %1853 = load ptr, ptr %4, align 8, !tbaa !5
  %1854 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1853, i32 0, i32 47
  %1855 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1854, i32 0, i32 4
  %1856 = load ptr, ptr %1855, align 8, !tbaa !60
  %1857 = load i64, ptr %10, align 8, !tbaa !61
  %1858 = getelementptr inbounds i64, ptr %1856, i64 %1857
  %1859 = load i64, ptr %1858, align 8, !tbaa !61
  %1860 = add nsw i64 %1852, %1859
  %1861 = getelementptr inbounds double, ptr %1851, i64 %1860
  %1862 = load double, ptr %1861, align 8, !tbaa !65
  %1863 = load ptr, ptr %4, align 8, !tbaa !5
  %1864 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1863, i32 0, i32 48
  %1865 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1864, i32 0, i32 4
  %1866 = load ptr, ptr %1865, align 8, !tbaa !60
  %1867 = load i64, ptr %10, align 8, !tbaa !61
  %1868 = getelementptr inbounds double, ptr %1866, i64 %1867
  %1869 = load double, ptr %1868, align 8, !tbaa !65
  %1870 = load ptr, ptr %4, align 8, !tbaa !5
  %1871 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1870, i32 0, i32 49
  %1872 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1871, i32 0, i32 4
  %1873 = load ptr, ptr %1872, align 8, !tbaa !60
  %1874 = load i64, ptr %10, align 8, !tbaa !61
  %1875 = getelementptr inbounds double, ptr %1873, i64 %1874
  %1876 = load double, ptr %1875, align 8, !tbaa !65
  %1877 = call double @llvm.fmuladd.f64(double %1862, double %1869, double %1876)
  %1878 = load ptr, ptr %4, align 8, !tbaa !5
  %1879 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1878, i32 0, i32 39
  %1880 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1879, i32 0, i32 23
  %1881 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1880, i32 0, i32 4
  %1882 = load ptr, ptr %1881, align 8, !tbaa !60
  %1883 = load i64, ptr %10, align 8, !tbaa !61
  %1884 = add nsw i64 1, %1883
  %1885 = getelementptr inbounds double, ptr %1882, i64 %1884
  store double %1877, ptr %1885, align 8, !tbaa !65
  %1886 = load i64, ptr %6, align 8, !tbaa !61
  %1887 = load ptr, ptr %4, align 8, !tbaa !5
  %1888 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1887, i32 0, i32 22
  %1889 = load i64, ptr %7, align 8, !tbaa !61
  %1890 = load ptr, ptr %4, align 8, !tbaa !5
  %1891 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1890, i32 0, i32 47
  %1892 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1891, i32 0, i32 4
  %1893 = load ptr, ptr %1892, align 8, !tbaa !60
  %1894 = load i64, ptr %10, align 8, !tbaa !61
  %1895 = getelementptr inbounds i64, ptr %1893, i64 %1894
  %1896 = load i64, ptr %1895, align 8, !tbaa !61
  %1897 = add nsw i64 %1889, %1896
  %1898 = load ptr, ptr %4, align 8, !tbaa !5
  %1899 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1898, i32 0, i32 39
  %1900 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1899, i32 0, i32 24
  %1901 = load i64, ptr %10, align 8, !tbaa !61
  %1902 = add nsw i64 1, %1901
  %1903 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %1886, ptr noundef %1888, i64 noundef %1897, ptr noundef %1900, i64 noundef %1902, ptr noundef %1903)
  %1904 = load i64, ptr %6, align 8, !tbaa !61
  %1905 = load ptr, ptr %4, align 8, !tbaa !5
  %1906 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1905, i32 0, i32 48
  %1907 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1906, i32 0, i32 4
  %1908 = load ptr, ptr %1907, align 8, !tbaa !60
  %1909 = load i64, ptr %10, align 8, !tbaa !61
  %1910 = getelementptr inbounds double, ptr %1908, i64 %1909
  %1911 = load double, ptr %1910, align 8, !tbaa !65
  %1912 = load ptr, ptr %4, align 8, !tbaa !5
  %1913 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1912, i32 0, i32 39
  %1914 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1913, i32 0, i32 24
  %1915 = load i64, ptr %10, align 8, !tbaa !61
  %1916 = add nsw i64 1, %1915
  %1917 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %1904, double noundef %1911, ptr noundef %1914, i64 noundef %1916, ptr noundef %1917)
  %1918 = load ptr, ptr %4, align 8, !tbaa !5
  %1919 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1918, i32 0, i32 39
  %1920 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1919, i32 0, i32 24
  %1921 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1920, i32 0, i32 6
  %1922 = load ptr, ptr %1921, align 8, !tbaa !60
  %1923 = load i64, ptr %10, align 8, !tbaa !61
  %1924 = add nsw i64 1, %1923
  %1925 = getelementptr inbounds ptr, ptr %1922, i64 %1924
  %1926 = load ptr, ptr %1925, align 8, !tbaa !5
  %1927 = load i64, ptr %6, align 8, !tbaa !61
  %1928 = getelementptr inbounds double, ptr %1926, i64 %1927
  store double 0.000000e+00, ptr %1928, align 8, !tbaa !65
  br label %1929

1929:                                             ; preds = %1847
  %1930 = load i64, ptr %10, align 8, !tbaa !61
  %1931 = add nsw i64 %1930, 1
  store i64 %1931, ptr %10, align 8, !tbaa !61
  br label %1836, !llvm.loop !124

1932:                                             ; preds = %1836
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %1933

1933:                                             ; preds = %2041, %1932
  %1934 = load i64, ptr %10, align 8, !tbaa !61
  %1935 = load i64, ptr %7, align 8, !tbaa !61
  %1936 = sub nsw i64 %1935, 1
  %1937 = icmp sle i64 %1934, %1936
  br i1 %1937, label %1938, label %2044

1938:                                             ; preds = %1933
  %1939 = load ptr, ptr %4, align 8, !tbaa !5
  %1940 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1939, i32 0, i32 21
  %1941 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1940, i32 0, i32 4
  %1942 = load ptr, ptr %1941, align 8, !tbaa !60
  %1943 = load i64, ptr %10, align 8, !tbaa !61
  %1944 = getelementptr inbounds double, ptr %1942, i64 %1943
  %1945 = load double, ptr %1944, align 8, !tbaa !65
  %1946 = load ptr, ptr %4, align 8, !tbaa !5
  %1947 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1946, i32 0, i32 52
  %1948 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1947, i32 0, i32 4
  %1949 = load ptr, ptr %1948, align 8, !tbaa !60
  %1950 = load i64, ptr %10, align 8, !tbaa !61
  %1951 = getelementptr inbounds double, ptr %1949, i64 %1950
  %1952 = load double, ptr %1951, align 8, !tbaa !65
  %1953 = fsub double %1945, %1952
  %1954 = load ptr, ptr %4, align 8, !tbaa !5
  %1955 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1954, i32 0, i32 39
  %1956 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1955, i32 0, i32 21
  %1957 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1956, i32 0, i32 4
  %1958 = load ptr, ptr %1957, align 8, !tbaa !60
  %1959 = load i64, ptr %6, align 8, !tbaa !61
  %1960 = getelementptr inbounds double, ptr %1958, i64 %1959
  %1961 = load double, ptr %1960, align 8, !tbaa !65
  %1962 = load ptr, ptr %4, align 8, !tbaa !5
  %1963 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1962, i32 0, i32 55
  %1964 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1963, i32 0, i32 4
  %1965 = load ptr, ptr %1964, align 8, !tbaa !60
  %1966 = load i64, ptr %10, align 8, !tbaa !61
  %1967 = getelementptr inbounds double, ptr %1965, i64 %1966
  %1968 = load double, ptr %1967, align 8, !tbaa !65
  %1969 = fneg double %1961
  %1970 = call double @llvm.fmuladd.f64(double %1969, double %1968, double %1953)
  %1971 = load i64, ptr %7, align 8, !tbaa !61
  %1972 = load ptr, ptr %4, align 8, !tbaa !5
  %1973 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1972, i32 0, i32 54
  %1974 = load ptr, ptr %4, align 8, !tbaa !5
  %1975 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1974, i32 0, i32 53
  %1976 = load i64, ptr %10, align 8, !tbaa !61
  %1977 = load ptr, ptr %5, align 8, !tbaa !5
  %1978 = call noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %1971, ptr noundef %1973, ptr noundef %1975, i64 noundef %1976, ptr noundef %1977)
  %1979 = fsub double %1970, %1978
  %1980 = load ptr, ptr %4, align 8, !tbaa !5
  %1981 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1980, i32 0, i32 39
  %1982 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %1981, i32 0, i32 23
  %1983 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1982, i32 0, i32 4
  %1984 = load ptr, ptr %1983, align 8, !tbaa !60
  %1985 = load ptr, ptr %4, align 8, !tbaa !5
  %1986 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1985, i32 0, i32 50
  %1987 = load i64, ptr %1986, align 8, !tbaa !84
  %1988 = add nsw i64 1, %1987
  %1989 = load ptr, ptr %4, align 8, !tbaa !5
  %1990 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1989, i32 0, i32 51
  %1991 = load i64, ptr %1990, align 8, !tbaa !85
  %1992 = add nsw i64 %1988, %1991
  %1993 = load i64, ptr %10, align 8, !tbaa !61
  %1994 = add nsw i64 %1992, %1993
  %1995 = getelementptr inbounds double, ptr %1984, i64 %1994
  store double %1979, ptr %1995, align 8, !tbaa !65
  %1996 = load i64, ptr %6, align 8, !tbaa !61
  %1997 = load ptr, ptr %4, align 8, !tbaa !5
  %1998 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %1997, i32 0, i32 22
  %1999 = load i64, ptr %10, align 8, !tbaa !61
  %2000 = load ptr, ptr %4, align 8, !tbaa !5
  %2001 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2000, i32 0, i32 39
  %2002 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2001, i32 0, i32 24
  %2003 = load ptr, ptr %4, align 8, !tbaa !5
  %2004 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2003, i32 0, i32 50
  %2005 = load i64, ptr %2004, align 8, !tbaa !84
  %2006 = add nsw i64 1, %2005
  %2007 = load ptr, ptr %4, align 8, !tbaa !5
  %2008 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2007, i32 0, i32 51
  %2009 = load i64, ptr %2008, align 8, !tbaa !85
  %2010 = add nsw i64 %2006, %2009
  %2011 = load i64, ptr %10, align 8, !tbaa !61
  %2012 = add nsw i64 %2010, %2011
  %2013 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %1996, ptr noundef %1998, i64 noundef %1999, ptr noundef %2002, i64 noundef %2012, ptr noundef %2013)
  %2014 = load ptr, ptr %4, align 8, !tbaa !5
  %2015 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2014, i32 0, i32 55
  %2016 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2015, i32 0, i32 4
  %2017 = load ptr, ptr %2016, align 8, !tbaa !60
  %2018 = load i64, ptr %10, align 8, !tbaa !61
  %2019 = getelementptr inbounds double, ptr %2017, i64 %2018
  %2020 = load double, ptr %2019, align 8, !tbaa !65
  %2021 = fneg double %2020
  %2022 = load ptr, ptr %4, align 8, !tbaa !5
  %2023 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2022, i32 0, i32 39
  %2024 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2023, i32 0, i32 24
  %2025 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2024, i32 0, i32 6
  %2026 = load ptr, ptr %2025, align 8, !tbaa !60
  %2027 = load ptr, ptr %4, align 8, !tbaa !5
  %2028 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2027, i32 0, i32 50
  %2029 = load i64, ptr %2028, align 8, !tbaa !84
  %2030 = add nsw i64 1, %2029
  %2031 = load ptr, ptr %4, align 8, !tbaa !5
  %2032 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2031, i32 0, i32 51
  %2033 = load i64, ptr %2032, align 8, !tbaa !85
  %2034 = add nsw i64 %2030, %2033
  %2035 = load i64, ptr %10, align 8, !tbaa !61
  %2036 = add nsw i64 %2034, %2035
  %2037 = getelementptr inbounds ptr, ptr %2026, i64 %2036
  %2038 = load ptr, ptr %2037, align 8, !tbaa !5
  %2039 = load i64, ptr %6, align 8, !tbaa !61
  %2040 = getelementptr inbounds double, ptr %2038, i64 %2039
  store double %2021, ptr %2040, align 8, !tbaa !65
  br label %2041

2041:                                             ; preds = %1938
  %2042 = load i64, ptr %10, align 8, !tbaa !61
  %2043 = add nsw i64 %2042, 1
  store i64 %2043, ptr %10, align 8, !tbaa !61
  br label %1933, !llvm.loop !125

2044:                                             ; preds = %1933
  br label %1767

2045:                                             ; preds = %1789
  %2046 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.1661, ptr noundef %2046)
  br label %1767

2047:                                             ; preds = %1772
  %2048 = load ptr, ptr %4, align 8, !tbaa !5
  %2049 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2048, i32 0, i32 39
  %2050 = load ptr, ptr %4, align 8, !tbaa !5
  %2051 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2050, i32 0, i32 61
  %2052 = load ptr, ptr %4, align 8, !tbaa !5
  %2053 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2052, i32 0, i32 40
  %2054 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl16minnlcresultsbufEPKNS_11minnlcstateEPNS_9ae_vectorEPNS_12minnlcreportEPNS_8ae_stateE(ptr noundef %2049, ptr noundef %2051, ptr noundef %2053, ptr noundef %2054)
  %2055 = load ptr, ptr %4, align 8, !tbaa !5
  %2056 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2055, i32 0, i32 40
  %2057 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2056, i32 0, i32 2
  %2058 = load i64, ptr %2057, align 8, !tbaa !89
  %2059 = icmp eq i64 %2058, -8
  br i1 %2059, label %2060, label %2067

2060:                                             ; preds = %2047
  %2061 = load ptr, ptr %4, align 8, !tbaa !5
  %2062 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2061, i32 0, i32 32
  store i64 -8, ptr %2062, align 8, !tbaa !74
  %2063 = load ptr, ptr %4, align 8, !tbaa !5
  %2064 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2063, i32 0, i32 28
  store i64 0, ptr %2064, align 8, !tbaa !73
  store i8 0, ptr %17, align 1, !tbaa !62
  %2065 = load i8, ptr %17, align 1, !tbaa !62, !range !63, !noundef !64
  %2066 = trunc i8 %2065 to i1
  store i1 %2066, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %2853

2067:                                             ; preds = %2047
  %2068 = load ptr, ptr %4, align 8, !tbaa !5
  %2069 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2068, i32 0, i32 40
  %2070 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2069, i32 0, i32 2
  %2071 = load i64, ptr %2070, align 8, !tbaa !89
  %2072 = icmp sgt i64 %2071, 0
  %2073 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2072, ptr noundef @.str.1662, ptr noundef %2073)
  %2074 = load ptr, ptr %4, align 8, !tbaa !5
  %2075 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2074, i32 0, i32 29
  %2076 = load i64, ptr %2075, align 8, !tbaa !90
  %2077 = load ptr, ptr %4, align 8, !tbaa !5
  %2078 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2077, i32 0, i32 40
  %2079 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2078, i32 0, i32 0
  %2080 = load i64, ptr %2079, align 8, !tbaa !91
  %2081 = add nsw i64 %2076, %2080
  %2082 = load ptr, ptr %4, align 8, !tbaa !5
  %2083 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2082, i32 0, i32 29
  store i64 %2081, ptr %2083, align 8, !tbaa !90
  %2084 = load ptr, ptr %4, align 8, !tbaa !5
  %2085 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2084, i32 0, i32 31
  %2086 = load i64, ptr %2085, align 8, !tbaa !83
  %2087 = load ptr, ptr %4, align 8, !tbaa !5
  %2088 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2087, i32 0, i32 40
  %2089 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2088, i32 0, i32 1
  %2090 = load i64, ptr %2089, align 8, !tbaa !92
  %2091 = add nsw i64 %2086, %2090
  %2092 = load ptr, ptr %4, align 8, !tbaa !5
  %2093 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2092, i32 0, i32 31
  store i64 %2091, ptr %2093, align 8, !tbaa !83
  %2094 = load i8, ptr %16, align 1, !tbaa !62, !range !63, !noundef !64
  %2095 = trunc i8 %2094 to i1
  br i1 %2095, label %2097, label %2096

2096:                                             ; preds = %2067
  br label %2141

2097:                                             ; preds = %2067
  %2098 = load ptr, ptr %4, align 8, !tbaa !5
  %2099 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2098, i32 0, i32 23
  store i8 1, ptr %2099, align 8, !tbaa !82
  %2100 = load i64, ptr %6, align 8, !tbaa !61
  %2101 = load ptr, ptr %4, align 8, !tbaa !5
  %2102 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2101, i32 0, i32 61
  %2103 = load ptr, ptr %4, align 8, !tbaa !5
  %2104 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2103, i32 0, i32 19
  %2105 = 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 %2104, ptr noundef %2105)
  %2106 = load ptr, ptr %4, align 8, !tbaa !5
  %2107 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2106, i32 0, i32 25
  %2108 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2107, i32 0, i32 0
  store i32 10, ptr %2108, align 8, !tbaa !9
  br label %2771

2109:                                             ; preds = %181
  %2110 = load ptr, ptr %4, align 8, !tbaa !5
  %2111 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2110, i32 0, i32 23
  store i8 0, ptr %2111, align 8, !tbaa !82
  %2112 = load ptr, ptr %4, align 8, !tbaa !5
  %2113 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2112, i32 0, i32 31
  %2114 = load i64, ptr %2113, align 8, !tbaa !83
  %2115 = add nsw i64 %2114, 1
  %2116 = load ptr, ptr %4, align 8, !tbaa !5
  %2117 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2116, i32 0, i32 31
  store i64 %2115, ptr %2117, align 8, !tbaa !83
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1663)
  %2118 = load ptr, ptr %4, align 8, !tbaa !5
  %2119 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2118, i32 0, i32 21
  %2120 = load i64, ptr %7, align 8, !tbaa !61
  %2121 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %2119, i64 noundef 0, i64 noundef %2120, ptr noundef %2121)
  %2122 = load ptr, ptr %4, align 8, !tbaa !5
  %2123 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2122, i32 0, i32 40
  %2124 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2123, i32 0, i32 0
  %2125 = load i64, ptr %2124, align 8, !tbaa !91
  %2126 = trunc i64 %2125 to i32
  %2127 = load ptr, ptr %4, align 8, !tbaa !5
  %2128 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2127, i32 0, i32 40
  %2129 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2128, i32 0, i32 3
  %2130 = load double, ptr %2129, align 8, !tbaa !93
  %2131 = load ptr, ptr %4, align 8, !tbaa !5
  %2132 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2131, i32 0, i32 40
  %2133 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2132, i32 0, i32 5
  %2134 = load double, ptr %2133, align 8, !tbaa !94
  %2135 = load ptr, ptr %4, align 8, !tbaa !5
  %2136 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2135, i32 0, i32 40
  %2137 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2136, i32 0, i32 7
  %2138 = load double, ptr %2137, align 8, !tbaa !95
  %2139 = load ptr, ptr %5, align 8, !tbaa !5
  %2140 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %2130, double noundef %2134, double noundef %2138, ptr noundef %2139)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1664, i32 noundef %2126, double noundef %2140)
  br label %2141

2141:                                             ; preds = %2109, %2096
  %2142 = load ptr, ptr %4, align 8, !tbaa !5
  %2143 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2142, i32 0, i32 7
  %2144 = load i8, ptr %2143, align 8, !tbaa !96, !range !63, !noundef !64
  %2145 = trunc i8 %2144 to i1
  br i1 %2145, label %2147, label %2146

2146:                                             ; preds = %2141
  br label %2555

2147:                                             ; preds = %2141
  %2148 = load ptr, ptr %4, align 8, !tbaa !5
  %2149 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2148, i32 0, i32 23
  store i8 1, ptr %2149, align 8, !tbaa !82
  %2150 = load i64, ptr %6, align 8, !tbaa !61
  %2151 = load ptr, ptr %4, align 8, !tbaa !5
  %2152 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2151, i32 0, i32 61
  %2153 = load ptr, ptr %4, align 8, !tbaa !5
  %2154 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2153, i32 0, i32 19
  %2155 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2150, ptr noundef %2152, ptr noundef %2154, ptr noundef %2155)
  %2156 = load ptr, ptr %4, align 8, !tbaa !5
  %2157 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2156, i32 0, i32 25
  %2158 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2157, i32 0, i32 0
  store i32 11, ptr %2158, align 8, !tbaa !9
  br label %2771

2159:                                             ; preds = %188
  %2160 = load ptr, ptr %4, align 8, !tbaa !5
  %2161 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2160, i32 0, i32 23
  store i8 0, ptr %2161, align 8, !tbaa !82
  %2162 = load ptr, ptr %4, align 8, !tbaa !5
  %2163 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2162, i32 0, i32 31
  %2164 = load i64, ptr %2163, align 8, !tbaa !83
  %2165 = add nsw i64 %2164, 1
  %2166 = load ptr, ptr %4, align 8, !tbaa !5
  %2167 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2166, i32 0, i32 31
  store i64 %2165, ptr %2167, align 8, !tbaa !83
  %2168 = load i64, ptr %7, align 8, !tbaa !61
  %2169 = load ptr, ptr %4, align 8, !tbaa !5
  %2170 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2169, i32 0, i32 16
  %2171 = load i64, ptr %2170, align 8, !tbaa !78
  %2172 = add nsw i64 %2168, %2171
  %2173 = load ptr, ptr %4, align 8, !tbaa !5
  %2174 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2173, i32 0, i32 21
  %2175 = load ptr, ptr %4, align 8, !tbaa !5
  %2176 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2175, i32 0, i32 63
  %2177 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2172, ptr noundef %2174, ptr noundef %2176, ptr noundef %2177)
  %2178 = load i64, ptr %6, align 8, !tbaa !61
  %2179 = load ptr, ptr %4, align 8, !tbaa !5
  %2180 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2179, i32 0, i32 61
  %2181 = load ptr, ptr %4, align 8, !tbaa !5
  %2182 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2181, i32 0, i32 39
  %2183 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl12minnlccreateElPKNS_9ae_vectorEPNS_11minnlcstateEPNS_8ae_stateE(i64 noundef %2178, ptr noundef %2180, ptr noundef %2182, ptr noundef %2183)
  %2184 = load ptr, ptr %4, align 8, !tbaa !5
  %2185 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2184, i32 0, i32 39
  %2186 = load ptr, ptr %4, align 8, !tbaa !5
  %2187 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2186, i32 0, i32 2
  %2188 = load double, ptr %2187, align 8, !tbaa !79
  %2189 = load ptr, ptr %4, align 8, !tbaa !5
  %2190 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2189, i32 0, i32 3
  %2191 = load i64, ptr %2190, align 8, !tbaa !80
  %2192 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl13minnlcsetcondEPNS_11minnlcstateEdlPNS_8ae_stateE(ptr noundef %2185, double noundef %2188, i64 noundef %2191, ptr noundef %2192)
  %2193 = load ptr, ptr %4, align 8, !tbaa !5
  %2194 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2193, i32 0, i32 39
  %2195 = load ptr, ptr %4, align 8, !tbaa !5
  %2196 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2195, i32 0, i32 58
  %2197 = load ptr, ptr %4, align 8, !tbaa !5
  %2198 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2197, i32 0, i32 59
  %2199 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11minnlcsetbcEPNS_11minnlcstateEPKNS_9ae_vectorES4_PNS_8ae_stateE(ptr noundef %2194, ptr noundef %2196, ptr noundef %2198, ptr noundef %2199)
  %2200 = load ptr, ptr %4, align 8, !tbaa !5
  %2201 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2200, i32 0, i32 39
  %2202 = load ptr, ptr %4, align 8, !tbaa !5
  %2203 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2202, i32 0, i32 44
  %2204 = load ptr, ptr %4, align 8, !tbaa !5
  %2205 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2204, i32 0, i32 45
  %2206 = load ptr, ptr %4, align 8, !tbaa !5
  %2207 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2206, i32 0, i32 46
  %2208 = load i64, ptr %2207, align 8, !tbaa !81
  %2209 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11minnlcsetlcEPNS_11minnlcstateEPKNS_9ae_matrixEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef %2201, ptr noundef %2203, ptr noundef %2205, i64 noundef %2208, ptr noundef %2209)
  %2210 = load ptr, ptr %4, align 8, !tbaa !5
  %2211 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2210, i32 0, i32 39
  %2212 = load ptr, ptr %4, align 8, !tbaa !5
  %2213 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2212, i32 0, i32 50
  %2214 = load i64, ptr %2213, align 8, !tbaa !84
  %2215 = load ptr, ptr %4, align 8, !tbaa !5
  %2216 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2215, i32 0, i32 51
  %2217 = load i64, ptr %2216, align 8, !tbaa !85
  %2218 = load i64, ptr %7, align 8, !tbaa !61
  %2219 = add nsw i64 %2217, %2218
  %2220 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl12minnlcsetnlcEPNS_11minnlcstateEllPNS_8ae_stateE(ptr noundef %2211, i64 noundef %2214, i64 noundef %2219, ptr noundef %2220)
  %2221 = load ptr, ptr %4, align 8, !tbaa !5
  %2222 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2221, i32 0, i32 39
  %2223 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_implL16monbi_setnlcalgoEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef %2222, ptr noundef %2223)
  br label %2224

2224:                                             ; preds = %2458, %2457, %2159
  %2225 = load ptr, ptr %4, align 8, !tbaa !5
  %2226 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2225, i32 0, i32 39
  %2227 = load ptr, ptr %5, align 8, !tbaa !5
  %2228 = call noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef %2226, ptr noundef %2227)
  br i1 %2228, label %2230, label %2229

2229:                                             ; preds = %2224
  br label %2460

2230:                                             ; preds = %2224
  %2231 = load ptr, ptr %4, align 8, !tbaa !5
  %2232 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2231, i32 0, i32 26
  %2233 = load i8, ptr %2232, align 8, !tbaa !75, !range !63, !noundef !64
  %2234 = trunc i8 %2233 to i1
  br i1 %2234, label %2235, label %2240

2235:                                             ; preds = %2230
  %2236 = load ptr, ptr %4, align 8, !tbaa !5
  %2237 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2236, i32 0, i32 32
  store i64 8, ptr %2237, align 8, !tbaa !74
  store i8 0, ptr %17, align 1, !tbaa !62
  %2238 = load i8, ptr %17, align 1, !tbaa !62, !range !63, !noundef !64
  %2239 = trunc i8 %2238 to i1
  store i1 %2239, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %2853

2240:                                             ; preds = %2230
  %2241 = load ptr, ptr %4, align 8, !tbaa !5
  %2242 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2241, i32 0, i32 39
  %2243 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2242, i32 0, i32 25
  %2244 = load i8, ptr %2243, align 8, !tbaa !86, !range !63, !noundef !64
  %2245 = trunc i8 %2244 to i1
  br i1 %2245, label %2247, label %2246

2246:                                             ; preds = %2240
  br label %2458

2247:                                             ; preds = %2240
  %2248 = load ptr, ptr %4, align 8, !tbaa !5
  %2249 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2248, i32 0, i32 23
  store i8 1, ptr %2249, align 8, !tbaa !82
  %2250 = load i64, ptr %6, align 8, !tbaa !61
  %2251 = load ptr, ptr %4, align 8, !tbaa !5
  %2252 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2251, i32 0, i32 39
  %2253 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2252, i32 0, i32 21
  %2254 = load ptr, ptr %4, align 8, !tbaa !5
  %2255 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2254, i32 0, i32 19
  %2256 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2250, ptr noundef %2253, ptr noundef %2255, ptr noundef %2256)
  %2257 = load ptr, ptr %4, align 8, !tbaa !5
  %2258 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2257, i32 0, i32 25
  %2259 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2258, i32 0, i32 0
  store i32 12, ptr %2259, align 8, !tbaa !9
  br label %2771

2260:                                             ; preds = %195
  %2261 = load ptr, ptr %4, align 8, !tbaa !5
  %2262 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2261, i32 0, i32 23
  store i8 0, ptr %2262, align 8, !tbaa !82
  %2263 = load ptr, ptr %4, align 8, !tbaa !5
  %2264 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2263, i32 0, i32 39
  %2265 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2264, i32 0, i32 23
  %2266 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2265, i32 0, i32 4
  %2267 = load ptr, ptr %2266, align 8, !tbaa !60
  %2268 = getelementptr inbounds double, ptr %2267, i64 0
  store double 0.000000e+00, ptr %2268, align 8, !tbaa !65
  %2269 = load i64, ptr %6, align 8, !tbaa !61
  %2270 = load ptr, ptr %4, align 8, !tbaa !5
  %2271 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2270, i32 0, i32 39
  %2272 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2271, i32 0, i32 24
  %2273 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %2269, double noundef 0.000000e+00, ptr noundef %2272, i64 noundef 0, ptr noundef %2273)
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %2274

2274:                                             ; preds = %2309, %2260
  %2275 = load i64, ptr %10, align 8, !tbaa !61
  %2276 = load i64, ptr %7, align 8, !tbaa !61
  %2277 = sub nsw i64 %2276, 1
  %2278 = icmp sle i64 %2275, %2277
  br i1 %2278, label %2279, label %2312

2279:                                             ; preds = %2274
  %2280 = load ptr, ptr %4, align 8, !tbaa !5
  %2281 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2280, i32 0, i32 39
  %2282 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2281, i32 0, i32 23
  %2283 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2282, i32 0, i32 4
  %2284 = load ptr, ptr %2283, align 8, !tbaa !60
  %2285 = getelementptr inbounds double, ptr %2284, i64 0
  %2286 = load double, ptr %2285, align 8, !tbaa !65
  %2287 = load ptr, ptr %4, align 8, !tbaa !5
  %2288 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2287, i32 0, i32 21
  %2289 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2288, i32 0, i32 4
  %2290 = load ptr, ptr %2289, align 8, !tbaa !60
  %2291 = load i64, ptr %10, align 8, !tbaa !61
  %2292 = getelementptr inbounds double, ptr %2290, i64 %2291
  %2293 = load double, ptr %2292, align 8, !tbaa !65
  %2294 = fadd double %2286, %2293
  %2295 = load ptr, ptr %4, align 8, !tbaa !5
  %2296 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2295, i32 0, i32 39
  %2297 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2296, i32 0, i32 23
  %2298 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2297, i32 0, i32 4
  %2299 = load ptr, ptr %2298, align 8, !tbaa !60
  %2300 = getelementptr inbounds double, ptr %2299, i64 0
  store double %2294, ptr %2300, align 8, !tbaa !65
  %2301 = load i64, ptr %6, align 8, !tbaa !61
  %2302 = load ptr, ptr %4, align 8, !tbaa !5
  %2303 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2302, i32 0, i32 22
  %2304 = load i64, ptr %10, align 8, !tbaa !61
  %2305 = load ptr, ptr %4, align 8, !tbaa !5
  %2306 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2305, i32 0, i32 39
  %2307 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2306, i32 0, i32 24
  %2308 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6raddrrEldPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %2301, double noundef 1.000000e+00, ptr noundef %2303, i64 noundef %2304, ptr noundef %2307, i64 noundef 0, ptr noundef %2308)
  br label %2309

2309:                                             ; preds = %2279
  %2310 = load i64, ptr %10, align 8, !tbaa !61
  %2311 = add nsw i64 %2310, 1
  store i64 %2311, ptr %10, align 8, !tbaa !61
  br label %2274, !llvm.loop !126

2312:                                             ; preds = %2274
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %2313

2313:                                             ; preds = %2395, %2312
  %2314 = load i64, ptr %10, align 8, !tbaa !61
  %2315 = load ptr, ptr %4, align 8, !tbaa !5
  %2316 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2315, i32 0, i32 50
  %2317 = load i64, ptr %2316, align 8, !tbaa !84
  %2318 = load ptr, ptr %4, align 8, !tbaa !5
  %2319 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2318, i32 0, i32 51
  %2320 = load i64, ptr %2319, align 8, !tbaa !85
  %2321 = add nsw i64 %2317, %2320
  %2322 = sub nsw i64 %2321, 1
  %2323 = icmp sle i64 %2314, %2322
  br i1 %2323, label %2324, label %2398

2324:                                             ; preds = %2313
  %2325 = load ptr, ptr %4, align 8, !tbaa !5
  %2326 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2325, i32 0, i32 21
  %2327 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2326, i32 0, i32 4
  %2328 = load ptr, ptr %2327, align 8, !tbaa !60
  %2329 = load i64, ptr %7, align 8, !tbaa !61
  %2330 = load ptr, ptr %4, align 8, !tbaa !5
  %2331 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2330, i32 0, i32 47
  %2332 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2331, i32 0, i32 4
  %2333 = load ptr, ptr %2332, align 8, !tbaa !60
  %2334 = load i64, ptr %10, align 8, !tbaa !61
  %2335 = getelementptr inbounds i64, ptr %2333, i64 %2334
  %2336 = load i64, ptr %2335, align 8, !tbaa !61
  %2337 = add nsw i64 %2329, %2336
  %2338 = getelementptr inbounds double, ptr %2328, i64 %2337
  %2339 = load double, ptr %2338, align 8, !tbaa !65
  %2340 = load ptr, ptr %4, align 8, !tbaa !5
  %2341 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2340, i32 0, i32 48
  %2342 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2341, i32 0, i32 4
  %2343 = load ptr, ptr %2342, align 8, !tbaa !60
  %2344 = load i64, ptr %10, align 8, !tbaa !61
  %2345 = getelementptr inbounds double, ptr %2343, i64 %2344
  %2346 = load double, ptr %2345, align 8, !tbaa !65
  %2347 = load ptr, ptr %4, align 8, !tbaa !5
  %2348 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2347, i32 0, i32 49
  %2349 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2348, i32 0, i32 4
  %2350 = load ptr, ptr %2349, align 8, !tbaa !60
  %2351 = load i64, ptr %10, align 8, !tbaa !61
  %2352 = getelementptr inbounds double, ptr %2350, i64 %2351
  %2353 = load double, ptr %2352, align 8, !tbaa !65
  %2354 = call double @llvm.fmuladd.f64(double %2339, double %2346, double %2353)
  %2355 = load ptr, ptr %4, align 8, !tbaa !5
  %2356 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2355, i32 0, i32 39
  %2357 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2356, i32 0, i32 23
  %2358 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2357, i32 0, i32 4
  %2359 = load ptr, ptr %2358, align 8, !tbaa !60
  %2360 = load i64, ptr %10, align 8, !tbaa !61
  %2361 = add nsw i64 %2360, 1
  %2362 = getelementptr inbounds double, ptr %2359, i64 %2361
  store double %2354, ptr %2362, align 8, !tbaa !65
  %2363 = load i64, ptr %6, align 8, !tbaa !61
  %2364 = load ptr, ptr %4, align 8, !tbaa !5
  %2365 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2364, i32 0, i32 22
  %2366 = load i64, ptr %7, align 8, !tbaa !61
  %2367 = load ptr, ptr %4, align 8, !tbaa !5
  %2368 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2367, i32 0, i32 47
  %2369 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2368, i32 0, i32 4
  %2370 = load ptr, ptr %2369, align 8, !tbaa !60
  %2371 = load i64, ptr %10, align 8, !tbaa !61
  %2372 = getelementptr inbounds i64, ptr %2370, i64 %2371
  %2373 = load i64, ptr %2372, align 8, !tbaa !61
  %2374 = add nsw i64 %2366, %2373
  %2375 = load ptr, ptr %4, align 8, !tbaa !5
  %2376 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2375, i32 0, i32 39
  %2377 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2376, i32 0, i32 24
  %2378 = load i64, ptr %10, align 8, !tbaa !61
  %2379 = add nsw i64 %2378, 1
  %2380 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %2363, ptr noundef %2365, i64 noundef %2374, ptr noundef %2377, i64 noundef %2379, ptr noundef %2380)
  %2381 = load i64, ptr %6, align 8, !tbaa !61
  %2382 = load ptr, ptr %4, align 8, !tbaa !5
  %2383 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2382, i32 0, i32 48
  %2384 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2383, i32 0, i32 4
  %2385 = load ptr, ptr %2384, align 8, !tbaa !60
  %2386 = load i64, ptr %10, align 8, !tbaa !61
  %2387 = getelementptr inbounds double, ptr %2385, i64 %2386
  %2388 = load double, ptr %2387, align 8, !tbaa !65
  %2389 = load ptr, ptr %4, align 8, !tbaa !5
  %2390 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2389, i32 0, i32 39
  %2391 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2390, i32 0, i32 24
  %2392 = load i64, ptr %10, align 8, !tbaa !61
  %2393 = add nsw i64 %2392, 1
  %2394 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %2381, double noundef %2388, ptr noundef %2391, i64 noundef %2393, ptr noundef %2394)
  br label %2395

2395:                                             ; preds = %2324
  %2396 = load i64, ptr %10, align 8, !tbaa !61
  %2397 = add nsw i64 %2396, 1
  store i64 %2397, ptr %10, align 8, !tbaa !61
  br label %2313, !llvm.loop !127

2398:                                             ; preds = %2313
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %2399

2399:                                             ; preds = %2454, %2398
  %2400 = load i64, ptr %10, align 8, !tbaa !61
  %2401 = load i64, ptr %7, align 8, !tbaa !61
  %2402 = sub nsw i64 %2401, 1
  %2403 = icmp sle i64 %2400, %2402
  br i1 %2403, label %2404, label %2457

2404:                                             ; preds = %2399
  %2405 = load ptr, ptr %4, align 8, !tbaa !5
  %2406 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2405, i32 0, i32 21
  %2407 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2406, i32 0, i32 4
  %2408 = load ptr, ptr %2407, align 8, !tbaa !60
  %2409 = load i64, ptr %10, align 8, !tbaa !61
  %2410 = getelementptr inbounds double, ptr %2408, i64 %2409
  %2411 = load double, ptr %2410, align 8, !tbaa !65
  %2412 = load ptr, ptr %4, align 8, !tbaa !5
  %2413 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2412, i32 0, i32 63
  %2414 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2413, i32 0, i32 4
  %2415 = load ptr, ptr %2414, align 8, !tbaa !60
  %2416 = load i64, ptr %10, align 8, !tbaa !61
  %2417 = getelementptr inbounds double, ptr %2415, i64 %2416
  %2418 = load double, ptr %2417, align 8, !tbaa !65
  %2419 = fsub double %2411, %2418
  %2420 = load ptr, ptr %4, align 8, !tbaa !5
  %2421 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2420, i32 0, i32 39
  %2422 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2421, i32 0, i32 23
  %2423 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2422, i32 0, i32 4
  %2424 = load ptr, ptr %2423, align 8, !tbaa !60
  %2425 = load ptr, ptr %4, align 8, !tbaa !5
  %2426 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2425, i32 0, i32 50
  %2427 = load i64, ptr %2426, align 8, !tbaa !84
  %2428 = add nsw i64 1, %2427
  %2429 = load ptr, ptr %4, align 8, !tbaa !5
  %2430 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2429, i32 0, i32 51
  %2431 = load i64, ptr %2430, align 8, !tbaa !85
  %2432 = add nsw i64 %2428, %2431
  %2433 = load i64, ptr %10, align 8, !tbaa !61
  %2434 = add nsw i64 %2432, %2433
  %2435 = getelementptr inbounds double, ptr %2424, i64 %2434
  store double %2419, ptr %2435, align 8, !tbaa !65
  %2436 = load i64, ptr %6, align 8, !tbaa !61
  %2437 = load ptr, ptr %4, align 8, !tbaa !5
  %2438 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2437, i32 0, i32 22
  %2439 = load i64, ptr %10, align 8, !tbaa !61
  %2440 = load ptr, ptr %4, align 8, !tbaa !5
  %2441 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2440, i32 0, i32 39
  %2442 = getelementptr inbounds %"struct.alglib_impl::minnlcstate", ptr %2441, i32 0, i32 24
  %2443 = load ptr, ptr %4, align 8, !tbaa !5
  %2444 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2443, i32 0, i32 50
  %2445 = load i64, ptr %2444, align 8, !tbaa !84
  %2446 = add nsw i64 1, %2445
  %2447 = load ptr, ptr %4, align 8, !tbaa !5
  %2448 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2447, i32 0, i32 51
  %2449 = load i64, ptr %2448, align 8, !tbaa !85
  %2450 = add nsw i64 %2446, %2449
  %2451 = load i64, ptr %10, align 8, !tbaa !61
  %2452 = add nsw i64 %2450, %2451
  %2453 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %2436, ptr noundef %2438, i64 noundef %2439, ptr noundef %2442, i64 noundef %2452, ptr noundef %2453)
  br label %2454

2454:                                             ; preds = %2404
  %2455 = load i64, ptr %10, align 8, !tbaa !61
  %2456 = add nsw i64 %2455, 1
  store i64 %2456, ptr %10, align 8, !tbaa !61
  br label %2399, !llvm.loop !128

2457:                                             ; preds = %2399
  br label %2224

2458:                                             ; preds = %2246
  %2459 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.1661, ptr noundef %2459)
  br label %2224

2460:                                             ; preds = %2229
  %2461 = load ptr, ptr %4, align 8, !tbaa !5
  %2462 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2461, i32 0, i32 39
  %2463 = load ptr, ptr %4, align 8, !tbaa !5
  %2464 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2463, i32 0, i32 62
  %2465 = load ptr, ptr %4, align 8, !tbaa !5
  %2466 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2465, i32 0, i32 40
  %2467 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl16minnlcresultsbufEPKNS_11minnlcstateEPNS_9ae_vectorEPNS_12minnlcreportEPNS_8ae_stateE(ptr noundef %2462, ptr noundef %2464, ptr noundef %2466, ptr noundef %2467)
  %2468 = load ptr, ptr %4, align 8, !tbaa !5
  %2469 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2468, i32 0, i32 40
  %2470 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2469, i32 0, i32 2
  %2471 = load i64, ptr %2470, align 8, !tbaa !89
  %2472 = icmp eq i64 %2471, -8
  br i1 %2472, label %2473, label %2480

2473:                                             ; preds = %2460
  %2474 = load ptr, ptr %4, align 8, !tbaa !5
  %2475 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2474, i32 0, i32 32
  store i64 -8, ptr %2475, align 8, !tbaa !74
  %2476 = load ptr, ptr %4, align 8, !tbaa !5
  %2477 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2476, i32 0, i32 28
  store i64 0, ptr %2477, align 8, !tbaa !73
  store i8 0, ptr %17, align 1, !tbaa !62
  %2478 = load i8, ptr %17, align 1, !tbaa !62, !range !63, !noundef !64
  %2479 = trunc i8 %2478 to i1
  store i1 %2479, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %2853

2480:                                             ; preds = %2460
  %2481 = load ptr, ptr %4, align 8, !tbaa !5
  %2482 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2481, i32 0, i32 40
  %2483 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2482, i32 0, i32 2
  %2484 = load i64, ptr %2483, align 8, !tbaa !89
  %2485 = icmp sgt i64 %2484, 0
  %2486 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2485, ptr noundef @.str.1662, ptr noundef %2486)
  %2487 = load ptr, ptr %4, align 8, !tbaa !5
  %2488 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2487, i32 0, i32 29
  %2489 = load i64, ptr %2488, align 8, !tbaa !90
  %2490 = load ptr, ptr %4, align 8, !tbaa !5
  %2491 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2490, i32 0, i32 40
  %2492 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2491, i32 0, i32 0
  %2493 = load i64, ptr %2492, align 8, !tbaa !91
  %2494 = add nsw i64 %2489, %2493
  %2495 = load ptr, ptr %4, align 8, !tbaa !5
  %2496 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2495, i32 0, i32 29
  store i64 %2494, ptr %2496, align 8, !tbaa !90
  %2497 = load ptr, ptr %4, align 8, !tbaa !5
  %2498 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2497, i32 0, i32 31
  %2499 = load i64, ptr %2498, align 8, !tbaa !83
  %2500 = load ptr, ptr %4, align 8, !tbaa !5
  %2501 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2500, i32 0, i32 40
  %2502 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2501, i32 0, i32 1
  %2503 = load i64, ptr %2502, align 8, !tbaa !92
  %2504 = add nsw i64 %2499, %2503
  %2505 = load ptr, ptr %4, align 8, !tbaa !5
  %2506 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2505, i32 0, i32 31
  store i64 %2504, ptr %2506, align 8, !tbaa !83
  %2507 = load i8, ptr %16, align 1, !tbaa !62, !range !63, !noundef !64
  %2508 = trunc i8 %2507 to i1
  br i1 %2508, label %2510, label %2509

2509:                                             ; preds = %2480
  br label %2554

2510:                                             ; preds = %2480
  %2511 = load ptr, ptr %4, align 8, !tbaa !5
  %2512 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2511, i32 0, i32 23
  store i8 1, ptr %2512, align 8, !tbaa !82
  %2513 = load i64, ptr %6, align 8, !tbaa !61
  %2514 = load ptr, ptr %4, align 8, !tbaa !5
  %2515 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2514, i32 0, i32 62
  %2516 = load ptr, ptr %4, align 8, !tbaa !5
  %2517 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2516, i32 0, i32 19
  %2518 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2513, ptr noundef %2515, ptr noundef %2517, ptr noundef %2518)
  %2519 = load ptr, ptr %4, align 8, !tbaa !5
  %2520 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2519, i32 0, i32 25
  %2521 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2520, i32 0, i32 0
  store i32 13, ptr %2521, align 8, !tbaa !9
  br label %2771

2522:                                             ; preds = %202
  %2523 = load ptr, ptr %4, align 8, !tbaa !5
  %2524 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2523, i32 0, i32 23
  store i8 0, ptr %2524, align 8, !tbaa !82
  %2525 = load ptr, ptr %4, align 8, !tbaa !5
  %2526 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2525, i32 0, i32 31
  %2527 = load i64, ptr %2526, align 8, !tbaa !83
  %2528 = add nsw i64 %2527, 1
  %2529 = load ptr, ptr %4, align 8, !tbaa !5
  %2530 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2529, i32 0, i32 31
  store i64 %2528, ptr %2530, align 8, !tbaa !83
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1666)
  %2531 = load ptr, ptr %4, align 8, !tbaa !5
  %2532 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2531, i32 0, i32 21
  %2533 = load i64, ptr %7, align 8, !tbaa !61
  %2534 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %2532, i64 noundef 0, i64 noundef %2533, ptr noundef %2534)
  %2535 = load ptr, ptr %4, align 8, !tbaa !5
  %2536 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2535, i32 0, i32 40
  %2537 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2536, i32 0, i32 0
  %2538 = load i64, ptr %2537, align 8, !tbaa !91
  %2539 = trunc i64 %2538 to i32
  %2540 = load ptr, ptr %4, align 8, !tbaa !5
  %2541 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2540, i32 0, i32 40
  %2542 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2541, i32 0, i32 3
  %2543 = load double, ptr %2542, align 8, !tbaa !93
  %2544 = load ptr, ptr %4, align 8, !tbaa !5
  %2545 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2544, i32 0, i32 40
  %2546 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2545, i32 0, i32 5
  %2547 = load double, ptr %2546, align 8, !tbaa !94
  %2548 = load ptr, ptr %4, align 8, !tbaa !5
  %2549 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2548, i32 0, i32 40
  %2550 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2549, i32 0, i32 7
  %2551 = load double, ptr %2550, align 8, !tbaa !95
  %2552 = load ptr, ptr %5, align 8, !tbaa !5
  %2553 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %2543, double noundef %2547, double noundef %2551, ptr noundef %2552)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1664, i32 noundef %2539, double noundef %2553)
  br label %2554

2554:                                             ; preds = %2522, %2509
  br label %2562

2555:                                             ; preds = %2146
  %2556 = load i64, ptr %6, align 8, !tbaa !61
  %2557 = load ptr, ptr %4, align 8, !tbaa !5
  %2558 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2557, i32 0, i32 61
  %2559 = load ptr, ptr %4, align 8, !tbaa !5
  %2560 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2559, i32 0, i32 62
  %2561 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2556, ptr noundef %2558, ptr noundef %2560, ptr noundef %2561)
  br label %2562

2562:                                             ; preds = %2555, %2554
  %2563 = load ptr, ptr %4, align 8, !tbaa !5
  %2564 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2563, i32 0, i32 23
  store i8 1, ptr %2564, align 8, !tbaa !82
  %2565 = load i64, ptr %6, align 8, !tbaa !61
  %2566 = load ptr, ptr %4, align 8, !tbaa !5
  %2567 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2566, i32 0, i32 62
  %2568 = load ptr, ptr %4, align 8, !tbaa !5
  %2569 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2568, i32 0, i32 19
  %2570 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2565, ptr noundef %2567, ptr noundef %2569, ptr noundef %2570)
  %2571 = load ptr, ptr %4, align 8, !tbaa !5
  %2572 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2571, i32 0, i32 25
  %2573 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2572, i32 0, i32 0
  store i32 14, ptr %2573, align 8, !tbaa !9
  br label %2771

2574:                                             ; preds = %209
  %2575 = load ptr, ptr %4, align 8, !tbaa !5
  %2576 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2575, i32 0, i32 23
  store i8 0, ptr %2576, align 8, !tbaa !82
  %2577 = load ptr, ptr %4, align 8, !tbaa !5
  %2578 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2577, i32 0, i32 31
  %2579 = load i64, ptr %2578, align 8, !tbaa !83
  %2580 = add nsw i64 %2579, 1
  %2581 = load ptr, ptr %4, align 8, !tbaa !5
  %2582 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2581, i32 0, i32 31
  store i64 %2580, ptr %2582, align 8, !tbaa !83
  %2583 = load ptr, ptr %4, align 8, !tbaa !5
  %2584 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2583, i32 0, i32 28
  %2585 = load i64, ptr %2584, align 8, !tbaa !73
  %2586 = load i64, ptr %9, align 8, !tbaa !61
  %2587 = icmp slt i64 %2585, %2586
  %2588 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2587, ptr noundef @.str.1672, ptr noundef %2588)
  %2589 = load i64, ptr %6, align 8, !tbaa !61
  %2590 = load ptr, ptr %4, align 8, !tbaa !5
  %2591 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2590, i32 0, i32 62
  %2592 = load ptr, ptr %4, align 8, !tbaa !5
  %2593 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2592, i32 0, i32 27
  %2594 = load ptr, ptr %4, align 8, !tbaa !5
  %2595 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2594, i32 0, i32 28
  %2596 = load i64, ptr %2595, align 8, !tbaa !73
  %2597 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %2589, ptr noundef %2591, ptr noundef %2593, i64 noundef %2596, ptr noundef %2597)
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %2598

2598:                                             ; preds = %2624, %2574
  %2599 = load i64, ptr %10, align 8, !tbaa !61
  %2600 = load i64, ptr %7, align 8, !tbaa !61
  %2601 = sub nsw i64 %2600, 1
  %2602 = icmp sle i64 %2599, %2601
  br i1 %2602, label %2603, label %2627

2603:                                             ; preds = %2598
  %2604 = load ptr, ptr %4, align 8, !tbaa !5
  %2605 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2604, i32 0, i32 21
  %2606 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2605, i32 0, i32 4
  %2607 = load ptr, ptr %2606, align 8, !tbaa !60
  %2608 = load i64, ptr %10, align 8, !tbaa !61
  %2609 = getelementptr inbounds double, ptr %2607, i64 %2608
  %2610 = load double, ptr %2609, align 8, !tbaa !65
  %2611 = load ptr, ptr %4, align 8, !tbaa !5
  %2612 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2611, i32 0, i32 27
  %2613 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2612, i32 0, i32 6
  %2614 = load ptr, ptr %2613, align 8, !tbaa !60
  %2615 = load ptr, ptr %4, align 8, !tbaa !5
  %2616 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2615, i32 0, i32 28
  %2617 = load i64, ptr %2616, align 8, !tbaa !73
  %2618 = getelementptr inbounds ptr, ptr %2614, i64 %2617
  %2619 = load ptr, ptr %2618, align 8, !tbaa !5
  %2620 = load i64, ptr %6, align 8, !tbaa !61
  %2621 = load i64, ptr %10, align 8, !tbaa !61
  %2622 = add nsw i64 %2620, %2621
  %2623 = getelementptr inbounds double, ptr %2619, i64 %2622
  store double %2610, ptr %2623, align 8, !tbaa !65
  br label %2624

2624:                                             ; preds = %2603
  %2625 = load i64, ptr %10, align 8, !tbaa !61
  %2626 = add nsw i64 %2625, 1
  store i64 %2626, ptr %10, align 8, !tbaa !61
  br label %2598, !llvm.loop !129

2627:                                             ; preds = %2598
  store i64 0, ptr %10, align 8, !tbaa !61
  br label %2628

2628:                                             ; preds = %2656, %2627
  %2629 = load i64, ptr %10, align 8, !tbaa !61
  %2630 = load i64, ptr %7, align 8, !tbaa !61
  %2631 = sub nsw i64 %2630, 1
  %2632 = icmp sle i64 %2629, %2631
  br i1 %2632, label %2633, label %2659

2633:                                             ; preds = %2628
  %2634 = load ptr, ptr %4, align 8, !tbaa !5
  %2635 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2634, i32 0, i32 54
  %2636 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2635, i32 0, i32 4
  %2637 = load ptr, ptr %2636, align 8, !tbaa !60
  %2638 = load i64, ptr %10, align 8, !tbaa !61
  %2639 = getelementptr inbounds double, ptr %2637, i64 %2638
  %2640 = load double, ptr %2639, align 8, !tbaa !65
  %2641 = load ptr, ptr %4, align 8, !tbaa !5
  %2642 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2641, i32 0, i32 27
  %2643 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2642, i32 0, i32 6
  %2644 = load ptr, ptr %2643, align 8, !tbaa !60
  %2645 = load ptr, ptr %4, align 8, !tbaa !5
  %2646 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2645, i32 0, i32 28
  %2647 = load i64, ptr %2646, align 8, !tbaa !73
  %2648 = getelementptr inbounds ptr, ptr %2644, i64 %2647
  %2649 = load ptr, ptr %2648, align 8, !tbaa !5
  %2650 = load i64, ptr %6, align 8, !tbaa !61
  %2651 = load i64, ptr %7, align 8, !tbaa !61
  %2652 = add nsw i64 %2650, %2651
  %2653 = load i64, ptr %10, align 8, !tbaa !61
  %2654 = add nsw i64 %2652, %2653
  %2655 = getelementptr inbounds double, ptr %2649, i64 %2654
  store double %2640, ptr %2655, align 8, !tbaa !65
  br label %2656

2656:                                             ; preds = %2633
  %2657 = load i64, ptr %10, align 8, !tbaa !61
  %2658 = add nsw i64 %2657, 1
  store i64 %2658, ptr %10, align 8, !tbaa !61
  br label %2628, !llvm.loop !130

2659:                                             ; preds = %2628
  %2660 = load ptr, ptr %4, align 8, !tbaa !5
  %2661 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2660, i32 0, i32 28
  %2662 = load i64, ptr %2661, align 8, !tbaa !73
  %2663 = add nsw i64 %2662, 1
  %2664 = load ptr, ptr %4, align 8, !tbaa !5
  %2665 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2664, i32 0, i32 28
  store i64 %2663, ptr %2665, align 8, !tbaa !73
  %2666 = load ptr, ptr %4, align 8, !tbaa !5
  %2667 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2666, i32 0, i32 30
  %2668 = load i64, ptr %2667, align 8, !tbaa !101
  %2669 = add nsw i64 %2668, 1
  %2670 = load ptr, ptr %4, align 8, !tbaa !5
  %2671 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2670, i32 0, i32 30
  store i64 %2669, ptr %2671, align 8, !tbaa !101
  %2672 = load ptr, ptr %4, align 8, !tbaa !5
  %2673 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2672, i32 0, i32 40
  %2674 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2673, i32 0, i32 3
  %2675 = load double, ptr %2674, align 8, !tbaa !93
  %2676 = load ptr, ptr %4, align 8, !tbaa !5
  %2677 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2676, i32 0, i32 33
  %2678 = load double, ptr %2677, align 8, !tbaa !102
  %2679 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2675, double noundef %2678)
  br i1 %2679, label %2680, label %2693

2680:                                             ; preds = %2659
  %2681 = load ptr, ptr %4, align 8, !tbaa !5
  %2682 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2681, i32 0, i32 40
  %2683 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2682, i32 0, i32 3
  %2684 = load double, ptr %2683, align 8, !tbaa !93
  %2685 = load ptr, ptr %4, align 8, !tbaa !5
  %2686 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2685, i32 0, i32 33
  store double %2684, ptr %2686, align 8, !tbaa !102
  %2687 = load ptr, ptr %4, align 8, !tbaa !5
  %2688 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2687, i32 0, i32 40
  %2689 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2688, i32 0, i32 4
  %2690 = load i64, ptr %2689, align 8, !tbaa !103
  %2691 = load ptr, ptr %4, align 8, !tbaa !5
  %2692 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2691, i32 0, i32 34
  store i64 %2690, ptr %2692, align 8, !tbaa !104
  br label %2693

2693:                                             ; preds = %2680, %2659
  %2694 = load ptr, ptr %4, align 8, !tbaa !5
  %2695 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2694, i32 0, i32 40
  %2696 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2695, i32 0, i32 5
  %2697 = load double, ptr %2696, align 8, !tbaa !94
  %2698 = load ptr, ptr %4, align 8, !tbaa !5
  %2699 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2698, i32 0, i32 35
  %2700 = load double, ptr %2699, align 8, !tbaa !105
  %2701 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2697, double noundef %2700)
  br i1 %2701, label %2702, label %2715

2702:                                             ; preds = %2693
  %2703 = load ptr, ptr %4, align 8, !tbaa !5
  %2704 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2703, i32 0, i32 40
  %2705 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2704, i32 0, i32 5
  %2706 = load double, ptr %2705, align 8, !tbaa !94
  %2707 = load ptr, ptr %4, align 8, !tbaa !5
  %2708 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2707, i32 0, i32 35
  store double %2706, ptr %2708, align 8, !tbaa !105
  %2709 = load ptr, ptr %4, align 8, !tbaa !5
  %2710 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2709, i32 0, i32 40
  %2711 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2710, i32 0, i32 6
  %2712 = load i64, ptr %2711, align 8, !tbaa !106
  %2713 = load ptr, ptr %4, align 8, !tbaa !5
  %2714 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2713, i32 0, i32 36
  store i64 %2712, ptr %2714, align 8, !tbaa !107
  br label %2715

2715:                                             ; preds = %2702, %2693
  %2716 = load ptr, ptr %4, align 8, !tbaa !5
  %2717 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2716, i32 0, i32 40
  %2718 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2717, i32 0, i32 7
  %2719 = load double, ptr %2718, align 8, !tbaa !95
  %2720 = load ptr, ptr %4, align 8, !tbaa !5
  %2721 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2720, i32 0, i32 37
  %2722 = load double, ptr %2721, align 8, !tbaa !108
  %2723 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2719, double noundef %2722)
  br i1 %2723, label %2724, label %2737

2724:                                             ; preds = %2715
  %2725 = load ptr, ptr %4, align 8, !tbaa !5
  %2726 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2725, i32 0, i32 40
  %2727 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2726, i32 0, i32 7
  %2728 = load double, ptr %2727, align 8, !tbaa !95
  %2729 = load ptr, ptr %4, align 8, !tbaa !5
  %2730 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2729, i32 0, i32 37
  store double %2728, ptr %2730, align 8, !tbaa !108
  %2731 = load ptr, ptr %4, align 8, !tbaa !5
  %2732 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2731, i32 0, i32 40
  %2733 = getelementptr inbounds %"struct.alglib_impl::minnlcreport", ptr %2732, i32 0, i32 8
  %2734 = load i64, ptr %2733, align 8, !tbaa !109
  %2735 = load ptr, ptr %4, align 8, !tbaa !5
  %2736 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2735, i32 0, i32 38
  store i64 %2734, ptr %2736, align 8, !tbaa !110
  br label %2737

2737:                                             ; preds = %2724, %2715
  %2738 = load i64, ptr %6, align 8, !tbaa !61
  %2739 = load ptr, ptr %4, align 8, !tbaa !5
  %2740 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2739, i32 0, i32 27
  %2741 = load ptr, ptr %4, align 8, !tbaa !5
  %2742 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2741, i32 0, i32 28
  %2743 = load i64, ptr %2742, align 8, !tbaa !73
  %2744 = sub nsw i64 %2743, 1
  %2745 = load ptr, ptr %4, align 8, !tbaa !5
  %2746 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2745, i32 0, i32 19
  %2747 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rcopyrvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2738, ptr noundef %2740, i64 noundef %2744, ptr noundef %2746, ptr noundef %2747)
  %2748 = load ptr, ptr %4, align 8, !tbaa !5
  %2749 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2748, i32 0, i32 24
  store i8 1, ptr %2749, align 1, !tbaa !111
  %2750 = load ptr, ptr %4, align 8, !tbaa !5
  %2751 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2750, i32 0, i32 25
  %2752 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2751, i32 0, i32 0
  store i32 15, ptr %2752, align 8, !tbaa !9
  br label %2771

2753:                                             ; preds = %216
  %2754 = load ptr, ptr %4, align 8, !tbaa !5
  %2755 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2754, i32 0, i32 24
  store i8 0, ptr %2755, align 1, !tbaa !111
  %2756 = load ptr, ptr %4, align 8, !tbaa !5
  %2757 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2756, i32 0, i32 26
  %2758 = load i8, ptr %2757, align 8, !tbaa !75, !range !63, !noundef !64
  %2759 = trunc i8 %2758 to i1
  br i1 %2759, label %2760, label %2765

2760:                                             ; preds = %2753
  %2761 = load ptr, ptr %4, align 8, !tbaa !5
  %2762 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2761, i32 0, i32 32
  store i64 8, ptr %2762, align 8, !tbaa !74
  store i8 0, ptr %17, align 1, !tbaa !62
  %2763 = load i8, ptr %17, align 1, !tbaa !62, !range !63, !noundef !64
  %2764 = trunc i8 %2763 to i1
  store i1 %2764, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %2853

2765:                                             ; preds = %2753
  %2766 = load i64, ptr %13, align 8, !tbaa !61
  %2767 = add nsw i64 %2766, 1
  store i64 %2767, ptr %13, align 8, !tbaa !61
  br label %1444

2768:                                             ; preds = %1449
  store i8 0, ptr %17, align 1, !tbaa !62
  %2769 = load i8, ptr %17, align 1, !tbaa !62, !range !63, !noundef !64
  %2770 = trunc i8 %2769 to i1
  store i1 %2770, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %2853

2771:                                             ; preds = %2737, %2562, %2510, %2247, %2147, %2097, %1790, %1694, %1186, %1019, %967, %718, %649, %599, %424, %359
  store i8 1, ptr %17, align 1, !tbaa !62
  %2772 = load i64, ptr %6, align 8, !tbaa !61
  %2773 = load ptr, ptr %4, align 8, !tbaa !5
  %2774 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2773, i32 0, i32 25
  %2775 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2774, i32 0, i32 1
  %2776 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2775, i32 0, i32 4
  %2777 = load ptr, ptr %2776, align 8, !tbaa !60
  %2778 = getelementptr inbounds i64, ptr %2777, i64 0
  store i64 %2772, ptr %2778, align 8, !tbaa !61
  %2779 = load i64, ptr %7, align 8, !tbaa !61
  %2780 = load ptr, ptr %4, align 8, !tbaa !5
  %2781 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2780, i32 0, i32 25
  %2782 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2781, i32 0, i32 1
  %2783 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2782, i32 0, i32 4
  %2784 = load ptr, ptr %2783, align 8, !tbaa !60
  %2785 = getelementptr inbounds i64, ptr %2784, i64 1
  store i64 %2779, ptr %2785, align 8, !tbaa !61
  %2786 = load i64, ptr %8, align 8, !tbaa !61
  %2787 = load ptr, ptr %4, align 8, !tbaa !5
  %2788 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2787, i32 0, i32 25
  %2789 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2788, i32 0, i32 1
  %2790 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2789, i32 0, i32 4
  %2791 = load ptr, ptr %2790, align 8, !tbaa !60
  %2792 = getelementptr inbounds i64, ptr %2791, i64 2
  store i64 %2786, ptr %2792, align 8, !tbaa !61
  %2793 = load i64, ptr %9, align 8, !tbaa !61
  %2794 = load ptr, ptr %4, align 8, !tbaa !5
  %2795 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2794, i32 0, i32 25
  %2796 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2795, i32 0, i32 1
  %2797 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2796, i32 0, i32 4
  %2798 = load ptr, ptr %2797, align 8, !tbaa !60
  %2799 = getelementptr inbounds i64, ptr %2798, i64 3
  store i64 %2793, ptr %2799, align 8, !tbaa !61
  %2800 = load i64, ptr %10, align 8, !tbaa !61
  %2801 = load ptr, ptr %4, align 8, !tbaa !5
  %2802 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2801, i32 0, i32 25
  %2803 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2802, i32 0, i32 1
  %2804 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2803, i32 0, i32 4
  %2805 = load ptr, ptr %2804, align 8, !tbaa !60
  %2806 = getelementptr inbounds i64, ptr %2805, i64 4
  store i64 %2800, ptr %2806, align 8, !tbaa !61
  %2807 = load i64, ptr %11, align 8, !tbaa !61
  %2808 = load ptr, ptr %4, align 8, !tbaa !5
  %2809 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2808, i32 0, i32 25
  %2810 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2809, i32 0, i32 1
  %2811 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2810, i32 0, i32 4
  %2812 = load ptr, ptr %2811, align 8, !tbaa !60
  %2813 = getelementptr inbounds i64, ptr %2812, i64 5
  store i64 %2807, ptr %2813, align 8, !tbaa !61
  %2814 = load i64, ptr %12, align 8, !tbaa !61
  %2815 = load ptr, ptr %4, align 8, !tbaa !5
  %2816 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2815, i32 0, i32 25
  %2817 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2816, i32 0, i32 1
  %2818 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2817, i32 0, i32 4
  %2819 = load ptr, ptr %2818, align 8, !tbaa !60
  %2820 = getelementptr inbounds i64, ptr %2819, i64 6
  store i64 %2814, ptr %2820, align 8, !tbaa !61
  %2821 = load i64, ptr %13, align 8, !tbaa !61
  %2822 = load ptr, ptr %4, align 8, !tbaa !5
  %2823 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2822, i32 0, i32 25
  %2824 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2823, i32 0, i32 1
  %2825 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2824, i32 0, i32 4
  %2826 = load ptr, ptr %2825, align 8, !tbaa !60
  %2827 = getelementptr inbounds i64, ptr %2826, i64 7
  store i64 %2821, ptr %2827, align 8, !tbaa !61
  %2828 = load i8, ptr %16, align 1, !tbaa !62, !range !63, !noundef !64
  %2829 = trunc i8 %2828 to i1
  %2830 = load ptr, ptr %4, align 8, !tbaa !5
  %2831 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2830, i32 0, i32 25
  %2832 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2831, i32 0, i32 2
  %2833 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2832, i32 0, i32 4
  %2834 = load ptr, ptr %2833, align 8, !tbaa !60
  %2835 = getelementptr inbounds i8, ptr %2834, i64 0
  %2836 = zext i1 %2829 to i8
  store i8 %2836, ptr %2835, align 1, !tbaa !62
  %2837 = load double, ptr %14, align 8, !tbaa !65
  %2838 = load ptr, ptr %4, align 8, !tbaa !5
  %2839 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2838, i32 0, i32 25
  %2840 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2839, i32 0, i32 3
  %2841 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2840, i32 0, i32 4
  %2842 = load ptr, ptr %2841, align 8, !tbaa !60
  %2843 = getelementptr inbounds double, ptr %2842, i64 0
  store double %2837, ptr %2843, align 8, !tbaa !65
  %2844 = load double, ptr %15, align 8, !tbaa !65
  %2845 = load ptr, ptr %4, align 8, !tbaa !5
  %2846 = getelementptr inbounds %"struct.alglib_impl::nbistate", ptr %2845, i32 0, i32 25
  %2847 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2846, i32 0, i32 3
  %2848 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2847, i32 0, i32 4
  %2849 = load ptr, ptr %2848, align 8, !tbaa !60
  %2850 = getelementptr inbounds double, ptr %2849, i64 1
  store double %2844, ptr %2850, align 8, !tbaa !65
  %2851 = load i8, ptr %17, align 1, !tbaa !62, !range !63, !noundef !64
  %2852 = trunc i8 %2851 to i1
  store i1 %2852, ptr %3, align 1
  store i32 1, ptr %18, align 4
  br label %2853

2853:                                             ; preds = %2771, %2768, %2760, %2473, %2235, %2060, %1778, %1209, %930, %706, %562, %412
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  %2854 = load i1, ptr %3, align 1
  ret i1 %2854
}

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN11alglib_implL16monbi_setnlcalgoEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef, ptr noundef) #4

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 = { mustprogress nounwind 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 #5 = { 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, !19, i64 1200}
!10 = !{!"_ZTSN11alglib_impl8nbistateE", !11, i64 0, !11, i64 8, !12, i64 16, !11, i64 24, !13, i64 32, !14, i64 40, !11, i64 104, !13, i64 112, !14, i64 120, !14, i64 184, !11, i64 248, !11, i64 256, !16, i64 264, !17, i64 344, !14, i64 712, !14, i64 776, !11, i64 840, !14, i64 848, !14, i64 912, !14, i64 976, !12, i64 1040, !14, i64 1048, !16, i64 1112, !13, i64 1192, !13, i64 1193, !18, i64 1200, !13, i64 1464, !16, i64 1472, !11, i64 1552, !11, i64 1560, !11, i64 1568, !11, i64 1576, !11, i64 1584, !12, i64 1592, !11, i64 1600, !12, i64 1608, !11, i64 1616, !12, i64 1624, !11, i64 1632, !20, i64 1640, !58, i64 172088, !14, i64 172424, !14, i64 172488, !14, i64 172552, !16, i64 172616, !14, i64 172696, !11, i64 172760, !14, i64 172768, !14, i64 172832, !14, i64 172896, !11, i64 172960, !11, i64 172968, !14, i64 172976, !16, i64 173040, !14, i64 173120, !14, i64 173184, !14, i64 173248, !59, i64 173312, !14, i64 173336, !14, i64 173400, !16, i64 173464, !14, i64 173544, !14, i64 173608, !14, i64 173672}
!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_impl10rcommstateE", !19, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !14, i64 200}
!19 = !{!"int", !7, i64 0}
!20 = !{!"_ZTSN11alglib_impl11minnlcstateE", !12, i64 0, !12, i64 8, !11, i64 16, !11, i64 24, !21, i64 32, !11, i64 56, !13, i64 64, !12, i64 72, !12, i64 80, !12, i64 88, !14, i64 96, !14, i64 160, !14, i64 224, !14, i64 288, !14, i64 352, !22, i64 416, !11, i64 2232, !14, i64 2240, !14, i64 2304, !11, i64 2368, !13, i64 2376, !14, i64 2384, !12, i64 2448, !14, i64 2456, !16, i64 2520, !13, i64 2600, !13, i64 2601, !13, i64 2602, !11, i64 2608, !14, i64 2616, !12, i64 2680, !11, i64 2688, !11, i64 2696, !11, i64 2704, !11, i64 2712, !11, i64 2720, !14, i64 2728, !14, i64 2792, !14, i64 2856, !17, i64 2920, !14, i64 3288, !14, i64 3352, !14, i64 3416, !14, i64 3480, !16, i64 3544, !17, i64 3624, !18, i64 3992, !18, i64 4256, !14, i64 4520, !14, i64 4584, !16, i64 4648, !14, i64 4728, !14, i64 4792, !14, i64 4856, !14, i64 4920, !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, !16, i64 5704, !14, i64 5784, !14, i64 5848, !14, i64 5912, !14, i64 5976, !12, i64 6040, !13, i64 6048, !14, i64 6056, !14, i64 6120, !23, i64 6184, !17, i64 37712, !14, i64 38080, !14, i64 38144, !13, i64 38208, !38, i64 38216, !50, i64 100960, !11, i64 164120, !53, i64 164128, !14, i64 169832, !11, i64 169896, !11, i64 169904, !11, i64 169912, !11, i64 169920, !12, i64 169928, !11, i64 169936, !12, i64 169944, !11, i64 169952, !12, i64 169960, !11, i64 169968, !11, i64 169976, !14, i64 169984, !14, i64 170048, !14, i64 170112, !14, i64 170176, !14, i64 170240, !14, i64 170304, !14, i64 170368, !11, i64 170432, !11, i64 170440}
!21 = !{!"_ZTSN11alglib_impl19nlpstoppingcriteriaE", !12, i64 0, !12, i64 8, !11, i64 16}
!22 = !{!"_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}
!23 = !{!"_ZTSN11alglib_impl11minaulstateE", !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, !17, i64 472, !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, !21, i64 1416, !11, i64 1440, !11, i64 1448, !14, i64 1456, !14, i64 1520, !17, i64 1584, !12, i64 1952, !13, i64 1960, !13, i64 1961, !13, i64 1962, !12, i64 1968, !24, i64 1976, !24, i64 2576, !24, i64 3176, !24, i64 3776, !24, i64 4376, !24, i64 4976, !12, i64 5576, !11, i64 5584, !11, i64 5592, !14, i64 5600, !14, i64 5664, !14, i64 5728, !14, i64 5792, !14, i64 5856, !14, i64 5920, !14, i64 5984, !25, i64 6048, !36, i64 22296, !36, i64 25656, !14, i64 29016, !14, i64 29080, !14, i64 29144, !14, i64 29208, !11, i64 29272, !11, i64 29280, !11, i64 29288, !12, i64 29296, !11, i64 29304, !37, i64 29312, !12, i64 29504, !12, i64 29512, !14, i64 29520, !14, i64 29584, !14, i64 29648, !16, i64 29712, !14, i64 29792, !14, i64 29856, !24, i64 29920, !24, i64 30520, !11, i64 31120, !11, i64 31128, !11, i64 31136, !12, i64 31144, !11, i64 31152, !12, i64 31160, !11, i64 31168, !12, i64 31176, !11, i64 31184, !11, i64 31192, !14, i64 31200, !18, i64 31264}
!24 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !11, i64 0, !11, i64 8, !13, i64 16, !14, i64 24, !14, i64 88, !16, i64 152, !17, i64 232}
!25 = !{!"_ZTSN11alglib_impl20minaulpreconditionerE", !11, i64 0, !11, i64 8, !26, i64 16, !17, i64 15080, !11, i64 15448, !16, i64 15456, !16, i64 15536, !11, i64 15616, !16, i64 15624, !14, i64 15704, !14, i64 15768, !14, i64 15832, !14, i64 15896, !16, i64 15960, !16, i64 16040, !14, i64 16120, !14, i64 16184}
!26 = !{!"_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, !27, i64 1000, !14, i64 1512, !14, i64 1576, !14, i64 1640, !14, i64 1704, !14, i64 1768, !14, i64 1832, !28, i64 1896, !28, i64 2040, !28, i64 2184, !28, i64 2328, !28, i64 2472, !28, i64 2616, !14, i64 2760, !14, i64 2824, !14, i64 2888, !14, i64 2952, !14, i64 3016, !30, i64 3080, !35, 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}
!27 = !{!"_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}
!28 = !{!"_ZTSN11alglib_impl9ae_nxpoolE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !15, i64 32, !29, i64 64, !15, i64 112}
!29 = !{!"_ZTSN11alglib_impl7ae_lockE", !6, i64 0, !15, i64 8, !13, i64 40}
!30 = !{!"_ZTSN11alglib_impl9amdbufferE", !11, i64 0, !13, i64 8, !13, i64 9, !14, i64 16, !14, i64 80, !14, i64 144, !31, i64 208, !31, i64 568, !31, i64 928, !32, i64 1288, !33, i64 1496, !34, i64 1968, !14, i64 2120, !14, i64 2184, !14, i64 2248, !34, i64 2312, !34, i64 2464, !34, i64 2616, !34, i64 2768, !34, i64 2920, !34, i64 3072, !14, i64 3224, !11, i64 3288, !34, i64 3296, !34, i64 3448, !31, i64 3600, !34, i64 3960, !14, i64 4112, !14, i64 4176, !14, i64 4240, !16, i64 4304}
!31 = !{!"_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}
!32 = !{!"_ZTSN11alglib_impl11amdllmatrixE", !11, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !11, i64 200}
!33 = !{!"_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}
!34 = !{!"_ZTSN11alglib_impl5nisetE", !11, i64 0, !11, i64 8, !14, i64 16, !14, i64 80, !11, i64 144}
!35 = !{!"_ZTSN11alglib_impl18priorityamdbuffersE", !14, i64 0, !14, i64 64, !30, i64 128, !17, i64 4512, !17, i64 4880, !17, i64 5248, !17, i64 5616, !17, i64 5984}
!36 = !{!"_ZTSN11alglib_impl12xbfgshessianE", !11, i64 0, !14, i64 8, !14, i64 72, !11, i64 136, !11, i64 144, !12, i64 152, !12, i64 160, !12, i64 168, !12, i64 176, !12, i64 184, !12, i64 192, !12, i64 200, !11, i64 208, !12, i64 216, !12, i64 224, !16, i64 232, !11, i64 312, !12, i64 320, !12, i64 328, !12, i64 336, !11, i64 344, !12, i64 352, !16, i64 360, !16, i64 440, !16, i64 520, !16, i64 600, !13, i64 680, !11, i64 688, !16, i64 696, !16, i64 776, !13, i64 856, !14, i64 864, !13, i64 928, !11, i64 936, !16, i64 944, !14, i64 1024, !14, i64 1088, !16, i64 1152, !14, i64 1232, !14, i64 1296, !13, i64 1360, !14, i64 1368, !12, i64 1432, !12, i64 1440, !11, i64 1448, !16, i64 1456, !14, i64 1536, !14, i64 1600, !14, i64 1664, !14, i64 1728, !14, i64 1792, !14, i64 1856, !16, i64 1920, !16, i64 2000, !16, i64 2080, !16, i64 2160, !16, i64 2240, !16, i64 2320, !16, i64 2400, !16, i64 2480, !14, i64 2560, !14, i64 2624, !16, i64 2688, !14, i64 2768, !16, i64 2832, !16, i64 2912, !16, i64 2992, !16, i64 3072, !16, i64 3152, !14, i64 3232, !14, i64 3296}
!37 = !{!"_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}
!38 = !{!"_ZTSN11alglib_impl11minsqpstateE", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !13, i64 40, !14, i64 48, !16, i64 112, !14, i64 192, !14, i64 256, !14, i64 320, !14, i64 384, !14, i64 448, !21, i64 512, !11, i64 536, !14, i64 544, !14, i64 608, !16, i64 672, !12, i64 752, !13, i64 760, !13, i64 761, !12, i64 768, !12, i64 776, !12, i64 784, !11, i64 792, !11, i64 800, !24, i64 808, !14, i64 1408, !14, i64 1472, !14, i64 1536, !14, i64 1600, !39, i64 1664, !36, i64 55416, !49, i64 58776, !11, i64 58912, !14, i64 58920, !14, i64 58984, !24, i64 59048, !24, i64 59648, !24, i64 60248, !24, i64 60848, !14, i64 61448, !14, i64 61512, !14, i64 61576, !14, i64 61640, !14, i64 61704, !14, i64 61768, !14, i64 61832, !14, i64 61896, !14, i64 61960, !14, i64 62024, !14, i64 62088, !14, i64 62152, !14, i64 62216, !14, i64 62280, !11, i64 62344, !11, i64 62352, !12, i64 62360, !11, i64 62368, !12, i64 62376, !11, i64 62384, !12, i64 62392, !11, i64 62400, !47, i64 62408, !47, i64 62432, !47, i64 62456, !18, i64 62480}
!39 = !{!"_ZTSN11alglib_impl15minsqpsubsolverE", !40, i64 0, !44, i64 26648, !14, i64 50544, !14, i64 50608, !14, i64 50672, !14, i64 50736, !14, i64 50800, !17, i64 50864, !17, i64 51232, !14, i64 51600, !16, i64 51664, !14, i64 51744, !16, i64 51808, !17, i64 51888, !14, i64 52256, !14, i64 52320, !14, i64 52384, !14, i64 52448, !14, i64 52512, !14, i64 52576, !14, i64 52640, !14, i64 52704, !16, i64 52768, !14, i64 52848, !14, i64 52912, !16, i64 52976, !14, i64 53056, !11, i64 53120, !17, i64 53128, !14, i64 53496, !14, i64 53560, !14, i64 53624, !14, i64 53688}
!40 = !{!"_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, !41, i64 2832, !41, i64 3488, !41, i64 4144, !41, i64 4800, !41, 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, !42, i64 7864, !43, 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, !41, 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}
!41 = !{!"_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}
!42 = !{!"_ZTSN11alglib_impl23vipmreducedsparsesystemE", !17, i64 0, !14, i64 368, !14, i64 432, !14, i64 496, !14, i64 560, !11, i64 624, !26, i64 632, !14, i64 15696, !14, i64 15760, !14, i64 15824, !14, i64 15888, !14, i64 15952, !14, i64 16016}
!43 = !{!"_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}
!44 = !{!"_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, !45, i64 2176, !45, i64 2576, !45, i64 2976, !45, 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, !46, i64 4240, !11, i64 4624, !11, i64 4632, !13, i64 4640, !13, i64 4641, !13, i64 4642, !47, i64 4648, !47, i64 4672, !47, i64 4696, !47, i64 4720, !47, i64 4744, !48, i64 4768, !46, 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}
!45 = !{!"_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}
!46 = !{!"_ZTSN11alglib_impl17ipm2righthandsideE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !14, i64 320}
!47 = !{!"_ZTSN11alglib_impl6stimerE", !11, i64 0, !11, i64 8, !13, i64 16}
!48 = !{!"_ZTSN11alglib_impl17ipm2reducedsystemE", !17, i64 0, !14, i64 368, !26, 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}
!49 = !{!"_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, !29, i64 56, !15, i64 104}
!50 = !{!"_ZTSN11alglib_impl12minfsqpstateE", !11, i64 0, !11, i64 8, !11, i64 16, !13, i64 24, !14, i64 32, !17, i64 96, !14, i64 464, !14, i64 528, !14, i64 592, !14, i64 656, !14, i64 720, !14, i64 784, !14, i64 848, !14, i64 912, !14, i64 976, !14, i64 1040, !14, i64 1104, !14, i64 1168, !14, i64 1232, !14, i64 1296, !14, i64 1360, !14, i64 1424, !14, i64 1488, !14, i64 1552, !12, i64 1616, !12, i64 1624, !21, i64 1632, !11, i64 1656, !14, i64 1664, !14, i64 1728, !17, i64 1792, !12, i64 2160, !13, i64 2168, !13, i64 2169, !12, i64 2176, !12, i64 2184, !11, i64 2192, !11, i64 2200, !24, i64 2208, !14, i64 2808, !14, i64 2872, !51, i64 2936, !36, i64 56768, !14, i64 60128, !14, i64 60192, !24, i64 60256, !24, i64 60856, !14, i64 61456, !14, i64 61520, !14, i64 61584, !52, i64 61648, !14, i64 61816, !14, i64 61880, !14, i64 61944, !14, i64 62008, !14, i64 62072, !14, i64 62136, !14, i64 62200, !14, i64 62264, !14, i64 62328, !14, i64 62392, !14, i64 62456, !14, i64 62520, !14, i64 62584, !14, i64 62648, !11, i64 62712, !11, i64 62720, !12, i64 62728, !11, i64 62736, !12, i64 62744, !11, i64 62752, !12, i64 62760, !11, i64 62768, !47, i64 62776, !47, i64 62800, !47, i64 62824, !47, i64 62848, !47, i64 62872, !18, i64 62896}
!51 = !{!"_ZTSN11alglib_impl16minfsqpsubsolverE", !40, i64 0, !44, i64 26648, !14, i64 50544, !14, i64 50608, !14, i64 50672, !14, i64 50736, !14, i64 50800, !17, i64 50864, !17, i64 51232, !14, i64 51600, !12, i64 51664, !12, i64 51672, !16, i64 51680, !14, i64 51760, !16, i64 51824, !17, i64 51904, !14, i64 52272, !14, i64 52336, !14, i64 52400, !14, i64 52464, !14, i64 52528, !14, i64 52592, !14, i64 52656, !14, i64 52720, !14, i64 52784, !16, i64 52848, !14, i64 52928, !14, i64 52992, !16, i64 53056, !14, i64 53136, !11, i64 53200, !17, i64 53208, !14, i64 53576, !14, i64 53640, !14, i64 53704, !14, i64 53768}
!52 = !{!"_ZTSN11alglib_impl9nlpfilterE", !12, i64 0, !11, i64 8, !12, i64 16, !12, i64 24, !13, i64 32, !14, i64 40, !14, i64 104}
!53 = !{!"_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, !18, i64 1240, !13, i64 1504, !13, i64 1505, !11, i64 1512, !11, i64 1520, !12, i64 1528, !12, i64 1536, !13, i64 1544, !54, i64 1552, !12, i64 1848, !12, i64 1856, !55, i64 1864, !55, i64 2184, !12, i64 2504, !12, i64 2512, !56, i64 2520, !56, i64 2840, !12, i64 3160, !12, i64 3168, !57, i64 3176, !57, i64 3504, !13, i64 3832, !14, i64 3840, !14, i64 3904, !16, i64 3968, !18, 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}
!54 = !{!"_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}
!55 = !{!"_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}
!56 = !{!"_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}
!57 = !{!"_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}
!58 = !{!"_ZTSN11alglib_impl12minnlcreportE", !11, i64 0, !11, i64 8, !11, i64 16, !12, i64 24, !11, i64 32, !12, i64 40, !11, i64 48, !12, i64 56, !11, i64 64, !14, i64 72, !14, i64 136, !14, i64 200, !14, i64 264, !11, i64 328}
!59 = !{!"_ZTSN11alglib_impl10hqrndstateE", !11, i64 0, !11, i64 8, !11, i64 16}
!60 = !{!7, !7, i64 0}
!61 = !{!11, !11, i64 0}
!62 = !{!13, !13, i64 0}
!63 = !{i8 0, i8 2}
!64 = !{}
!65 = !{!12, !12, i64 0}
!66 = !{!10, !11, i64 0}
!67 = !{!10, !11, i64 8}
!68 = !{!10, !11, i64 104}
!69 = !{!70, !12, i64 8}
!70 = !{!"_ZTSN11alglib_impl8ae_stateE", !11, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !6, i64 32, !15, i64 40, !6, i64 72, !71, i64 80, !6, i64 88, !72, i64 96, !6, i64 104, !6, i64 112, !6, i64 120}
!71 = !{!"_ZTSN11alglib_impl13ae_error_typeE", !7, i64 0}
!72 = !{!"long long", !7, i64 0}
!73 = !{!10, !11, i64 1552}
!74 = !{!10, !11, i64 1584}
!75 = !{!10, !13, i64 1464}
!76 = !{!10, !11, i64 248}
!77 = !{!10, !11, i64 256}
!78 = !{!10, !11, i64 840}
!79 = !{!10, !12, i64 16}
!80 = !{!10, !11, i64 24}
!81 = !{!10, !11, i64 172760}
!82 = !{!10, !13, i64 1192}
!83 = !{!10, !11, i64 1576}
!84 = !{!10, !11, i64 172960}
!85 = !{!10, !11, i64 172968}
!86 = !{!10, !13, i64 4240}
!87 = distinct !{!87, !88}
!88 = !{!"llvm.loop.mustprogress"}
!89 = !{!10, !11, i64 172104}
!90 = !{!10, !11, i64 1560}
!91 = !{!10, !11, i64 172088}
!92 = !{!10, !11, i64 172096}
!93 = !{!10, !12, i64 172112}
!94 = !{!10, !12, i64 172128}
!95 = !{!10, !12, i64 172144}
!96 = !{!10, !13, i64 112}
!97 = distinct !{!97, !88}
!98 = distinct !{!98, !88}
!99 = distinct !{!99, !88}
!100 = distinct !{!100, !88}
!101 = !{!10, !11, i64 1568}
!102 = !{!10, !12, i64 1592}
!103 = !{!10, !11, i64 172120}
!104 = !{!10, !11, i64 1600}
!105 = !{!10, !12, i64 1608}
!106 = !{!10, !11, i64 172136}
!107 = !{!10, !11, i64 1616}
!108 = !{!10, !12, i64 1624}
!109 = !{!10, !11, i64 172152}
!110 = !{!10, !11, i64 1632}
!111 = !{!10, !13, i64 1193}
!112 = distinct !{!112, !88}
!113 = distinct !{!113, !88}
!114 = distinct !{!114, !88}
!115 = distinct !{!115, !88}
!116 = distinct !{!116, !88}
!117 = distinct !{!117, !88}
!118 = distinct !{!118, !88}
!119 = distinct !{!119, !88}
!120 = distinct !{!120, !88}
!121 = !{!70, !12, i64 24}
!122 = !{!70, !12, i64 16}
!123 = distinct !{!123, !88}
!124 = distinct !{!124, !88}
!125 = distinct !{!125, !88}
!126 = distinct !{!126, !88}
!127 = distinct !{!127, !88}
!128 = distinct !{!128, !88}
!129 = distinct !{!129, !88}
!130 = distinct !{!130, !88}


; 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.208 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.612 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.1653 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1654 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.1655 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.1656 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1657 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.1658 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1659 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1660 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1661 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1662 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1663 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1664 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.1665 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1666 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1667 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1668 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1669 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1670 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1671 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.1672 = 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
declare dso_local void @_ZN11alglib_impl12minnlccreateElPKNS_9ae_vectorEPNS_11minnlcstateEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl13minnlcsetcondEPNS_11minnlcstateEdlPNS_8ae_stateE(ptr noundef, double noundef, i64 noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

declare noundef double @_ZN11alglib_impl8coalesceEddPNS_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 zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef, double noundef) local_unnamed_addr #0

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

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

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

declare noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef, ptr 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_impl6ae_logEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #0

declare void @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef, ...) local_unnamed_addr #0

declare noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef) local_unnamed_addr #0

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

declare void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef, i64 noundef, double noundef, ptr 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 void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr 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 noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

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

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

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

declare void @_ZN11alglib_impl6rcopymEllPKNS_9ae_matrixEPS0_PNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef, 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_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef, ptr noundef, i64 noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #0

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN11alglib_implL24monbi_clearrequestfieldsEPNS_8nbistateEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #3

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

6:                                                ; preds = %2
  %7 = getelementptr inbounds i8, ptr %0, i64 1264
  %8 = load ptr, ptr %7, align 8, !tbaa !59
  %9 = load i64, ptr %8, align 8, !tbaa !60
  %10 = getelementptr inbounds i8, ptr %8, i64 8
  %11 = load i64, ptr %10, align 8, !tbaa !60
  %12 = getelementptr inbounds i8, ptr %8, i64 16
  %13 = load i64, ptr %12, align 8, !tbaa !60
  %14 = getelementptr inbounds i8, ptr %8, i64 24
  %15 = load i64, ptr %14, align 8, !tbaa !60
  %16 = getelementptr inbounds i8, ptr %8, i64 32
  %17 = load i64, ptr %16, align 8, !tbaa !60
  %18 = getelementptr inbounds i8, ptr %8, i64 40
  %19 = load i64, ptr %18, align 8, !tbaa !60
  %20 = getelementptr inbounds i8, ptr %8, i64 48
  %21 = load i64, ptr %20, align 8, !tbaa !60
  %22 = getelementptr inbounds i8, ptr %8, i64 56
  %23 = load i64, ptr %22, align 8, !tbaa !60
  %24 = getelementptr inbounds i8, ptr %0, i64 1328
  %25 = load ptr, ptr %24, align 8, !tbaa !59
  %26 = load i8, ptr %25, align 1, !tbaa !61, !range !62, !noundef !63
  %27 = getelementptr inbounds i8, ptr %0, i64 1392
  %28 = load ptr, ptr %27, align 8, !tbaa !59
  %29 = load double, ptr %28, align 8, !tbaa !64
  %30 = getelementptr inbounds i8, ptr %28, i64 8
  %31 = load double, ptr %30, align 8, !tbaa !64
  br label %32

32:                                               ; preds = %2, %6
  %.01084 = phi i64 [ %9, %6 ], [ 359, %2 ]
  %.01072 = phi i64 [ %11, %6 ], [ -58, %2 ]
  %.01060 = phi i64 [ %13, %6 ], [ -919, %2 ]
  %.01048 = phi i64 [ %15, %6 ], [ -909, %2 ]
  %.01033 = phi i64 [ %17, %6 ], [ 81, %2 ]
  %.01021 = phi i64 [ %19, %6 ], [ 255, %2 ]
  %.01013 = phi i64 [ %21, %6 ], [ 74, %2 ]
  %.01006 = phi i64 [ %23, %6 ], [ -788, %2 ]
  %.0997 = phi double [ %29, %6 ], [ 2.050000e+02, %2 ]
  %.0989 = phi double [ %31, %6 ], [ -8.380000e+02, %2 ]
  %.0 = phi i8 [ %26, %6 ], [ 1, %2 ]
  switch i32 %4, label %33 [
    i32 0, label %95
    i32 1, label %124
    i32 2, label %195
    i32 3, label %219
    i32 4, label %252
    i32 5, label %345
    i32 6, label %368
    i32 7, label %462
    i32 8, label %746
    i32 9, label %786
    i32 10, label %915
    i32 11, label %939
    i32 12, label %982
    i32 13, label %1081
    i32 14, label %1104
    i32 15, label %1220
  ]

33:                                               ; preds = %32
  %34 = load i64, ptr %0, align 8, !tbaa !65
  %35 = getelementptr inbounds i8, ptr %0, i64 8
  %36 = load i64, ptr %35, align 8, !tbaa !66
  %37 = getelementptr inbounds i8, ptr %0, i64 104
  %38 = load i64, ptr %37, align 8, !tbaa !67
  %39 = getelementptr inbounds i8, ptr %0, i64 173312
  tail call void @_ZN11alglib_impl9hqrndseedEllPNS_10hqrndstateEPNS_8ae_stateE(i64 noundef 348546, i64 noundef 436734, ptr noundef nonnull %39, ptr noundef %1)
  %40 = icmp sgt i64 %36, 1
  %41 = icmp eq i64 %38, 1
  %42 = select i1 %40, i1 true, i1 %41
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %42, ptr noundef nonnull @.str.1653, ptr noundef %1)
  %43 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1654)
  %44 = zext i1 %43 to i8
  br i1 %43, label %45, label %48

45:                                               ; preds = %33
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.612)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.212)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1655)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.212)
  %46 = trunc i64 %34 to i32
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1656, i32 noundef %46)
  %47 = trunc i64 %36 to i32
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1657, i32 noundef %47)
  br label %48

48:                                               ; preds = %45, %33
  tail call void @_ZN11alglib_implL24monbi_clearrequestfieldsEPNS_8nbistateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %1)
  %49 = load i64, ptr %37, align 8, !tbaa !67
  %50 = icmp sge i64 %49, %36
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %50, ptr noundef nonnull @.str.1658, ptr noundef %1)
  %reass.add = shl i64 %36, 1
  %51 = add i64 %reass.add, %34
  %52 = getelementptr inbounds i8, ptr %1, i64 8
  %53 = load double, ptr %52, align 8, !tbaa !68
  %54 = getelementptr inbounds i8, ptr %0, i64 1472
  tail call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %38, i64 noundef %51, double noundef %53, ptr noundef nonnull %54, ptr noundef %1)
  %55 = getelementptr inbounds i8, ptr %0, i64 1552
  store i64 0, ptr %55, align 8, !tbaa !72
  %56 = getelementptr inbounds i8, ptr %0, i64 1584
  store i64 2, ptr %56, align 8, !tbaa !73
  %57 = getelementptr inbounds i8, ptr %0, i64 1464
  store i8 0, ptr %57, align 8, !tbaa !74
  %58 = getelementptr inbounds i8, ptr %0, i64 344
  %59 = getelementptr inbounds i8, ptr %0, i64 248
  %60 = load i64, ptr %59, align 8, !tbaa !75
  %61 = getelementptr inbounds i8, ptr %0, i64 264
  %62 = getelementptr inbounds i8, ptr %0, i64 256
  %63 = load i64, ptr %62, align 8, !tbaa !76
  %64 = getelementptr inbounds i8, ptr %0, i64 712
  %65 = getelementptr inbounds i8, ptr %0, i64 776
  %66 = getelementptr inbounds i8, ptr %0, i64 172616
  %67 = getelementptr inbounds i8, ptr %0, i64 172696
  %68 = getelementptr inbounds i8, ptr %0, i64 172760
  tail call void @_ZN11alglib_impl30converttwosidedlctoonesidedoldEPKNS_12sparsematrixElPKNS_9ae_matrixEllPKNS_9ae_vectorES8_PS3_PS6_PlPNS_8ae_stateE(ptr noundef nonnull %58, i64 noundef %60, ptr noundef nonnull %61, i64 noundef %63, i64 noundef %34, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull %67, ptr noundef nonnull %68, ptr noundef %1)
  %69 = getelementptr inbounds i8, ptr %0, i64 848
  %70 = getelementptr inbounds i8, ptr %0, i64 912
  %71 = getelementptr inbounds i8, ptr %0, i64 840
  %72 = load i64, ptr %71, align 8, !tbaa !77
  %73 = getelementptr inbounds i8, ptr %0, i64 172768
  %74 = getelementptr inbounds i8, ptr %0, i64 172832
  %75 = getelementptr inbounds i8, ptr %0, i64 172896
  %76 = getelementptr inbounds i8, ptr %0, i64 172960
  %77 = getelementptr inbounds i8, ptr %0, i64 172968
  tail call void @_ZN11alglib_impl31converttwosidednlctoonesidedoldEPKNS_9ae_vectorES2_lPS0_S3_S3_PlS4_PNS_8ae_stateE(ptr noundef nonnull %69, ptr noundef nonnull %70, i64 noundef %72, ptr noundef nonnull %73, ptr noundef nonnull %74, ptr noundef nonnull %75, ptr noundef nonnull %76, ptr noundef nonnull %77, ptr noundef %1)
  %78 = getelementptr inbounds i8, ptr %0, i64 40
  %79 = getelementptr inbounds i8, ptr %0, i64 1640
  tail call void @_ZN11alglib_impl12minnlccreateElPKNS_9ae_vectorEPNS_11minnlcstateEPNS_8ae_stateE(i64 noundef %34, ptr noundef nonnull %78, ptr noundef nonnull %79, ptr noundef %1)
  %80 = getelementptr inbounds i8, ptr %0, i64 16
  %81 = load double, ptr %80, align 8, !tbaa !78
  %82 = getelementptr inbounds i8, ptr %0, i64 24
  %83 = load i64, ptr %82, align 8, !tbaa !79
  tail call void @_ZN11alglib_impl13minnlcsetcondEPNS_11minnlcstateEdlPNS_8ae_stateE(ptr noundef nonnull %79, double noundef %81, i64 noundef %83, ptr noundef %1)
  %84 = getelementptr inbounds i8, ptr %0, i64 120
  %85 = getelementptr inbounds i8, ptr %0, i64 184
  tail call void @_ZN11alglib_impl11minnlcsetbcEPNS_11minnlcstateEPKNS_9ae_vectorES4_PNS_8ae_stateE(ptr noundef nonnull %79, ptr noundef nonnull %84, ptr noundef nonnull %85, ptr noundef %1)
  %86 = load i64, ptr %68, align 8, !tbaa !80
  tail call void @_ZN11alglib_impl11minnlcsetlcEPNS_11minnlcstateEPKNS_9ae_matrixEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %79, ptr noundef nonnull %66, ptr noundef nonnull %67, i64 noundef %86, ptr noundef %1)
  tail call void @_ZN11alglib_implL16monbi_setnlcalgoEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %79, ptr noundef %1)
  br label %87

87:                                               ; preds = %469, %48
  %.11085 = phi i64 [ %.01084, %469 ], [ %34, %48 ]
  %.11073 = phi i64 [ %.01072, %469 ], [ %36, %48 ]
  %.11061 = phi i64 [ %470, %469 ], [ 0, %48 ]
  %.11049 = phi i64 [ %.01048, %469 ], [ %38, %48 ]
  %.1 = phi i8 [ %.0, %469 ], [ %44, %48 ]
  %.not = icmp slt i64 %.11061, %.11073
  br i1 %.not, label %88, label %471

88:                                               ; preds = %87
  %89 = trunc nuw i8 %.1 to i1
  br i1 %89, label %90, label %101

90:                                               ; preds = %88
  %91 = trunc i64 %.11061 to i32
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1659, i32 noundef %91)
  %92 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %92, align 8, !tbaa !81
  %93 = getelementptr inbounds i8, ptr %0, i64 40
  %94 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.11085, ptr noundef nonnull %93, ptr noundef nonnull %94, ptr noundef %1)
  br label %1229

95:                                               ; preds = %32
  %96 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %96, align 8, !tbaa !81
  %97 = getelementptr inbounds i8, ptr %0, i64 1576
  %98 = load i64, ptr %97, align 8, !tbaa !82
  %99 = add nsw i64 %98, 1
  store i64 %99, ptr %97, align 8, !tbaa !82
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1660)
  %100 = getelementptr inbounds i8, ptr %0, i64 1048
  tail call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %100, i64 noundef 0, i64 noundef %.01072, ptr noundef %1)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %101

101:                                              ; preds = %88, %95
  %.21086 = phi i64 [ %.01084, %95 ], [ %.11085, %88 ]
  %.21074 = phi i64 [ %.01072, %95 ], [ %.11073, %88 ]
  %.21062 = phi i64 [ %.01060, %95 ], [ %.11061, %88 ]
  %.21050 = phi i64 [ %.01048, %95 ], [ %.11049, %88 ]
  %.2 = phi i8 [ %.0, %95 ], [ %.1, %88 ]
  %102 = getelementptr inbounds i8, ptr %0, i64 1640
  %103 = getelementptr inbounds i8, ptr %0, i64 172960
  %104 = load i64, ptr %103, align 8, !tbaa !83
  %105 = getelementptr inbounds i8, ptr %0, i64 172968
  %106 = load i64, ptr %105, align 8, !tbaa !84
  tail call void @_ZN11alglib_impl12minnlcsetnlcEPNS_11minnlcstateEllPNS_8ae_stateE(ptr noundef nonnull %102, i64 noundef %104, i64 noundef %106, ptr noundef %1)
  %107 = getelementptr inbounds i8, ptr %0, i64 40
  tail call void @_ZN11alglib_impl17minnlcrestartfromEPNS_11minnlcstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %102, ptr noundef nonnull %107, ptr noundef %1)
  br label %.preheader

.preheader:                                       ; preds = %142, %124, %101
  %.31087.ph = phi i64 [ %.21086, %101 ], [ %.01084, %124 ], [ %.01084, %142 ]
  %.31075.ph = phi i64 [ %.21074, %101 ], [ %.01072, %124 ], [ %.01072, %142 ]
  %.31063.ph = phi i64 [ %.21062, %101 ], [ %.01060, %124 ], [ %.01060, %142 ]
  %.31051.ph = phi i64 [ %.21050, %101 ], [ %.01048, %124 ], [ %.01048, %142 ]
  %.11034.ph = phi i64 [ %.01033, %101 ], [ 0, %124 ], [ %158, %142 ]
  %.3.ph = phi i8 [ %.2, %101 ], [ %.0, %124 ], [ %.0, %142 ]
  %108 = getelementptr inbounds i8, ptr %0, i64 1640
  %109 = tail call noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %108, ptr noundef %1)
  br i1 %109, label %.lr.ph1277, label %._crit_edge1278

.lr.ph1277:                                       ; preds = %.preheader
  %110 = getelementptr inbounds i8, ptr %0, i64 1464
  %111 = getelementptr inbounds i8, ptr %0, i64 4240
  br label %112

112:                                              ; preds = %.lr.ph1277, %170
  %113 = load i8, ptr %110, align 8, !tbaa !74, !range !62, !noundef !63
  %114 = trunc nuw i8 %113 to i1
  br i1 %114, label %115, label %117

115:                                              ; preds = %112
  %116 = getelementptr inbounds i8, ptr %0, i64 1584
  store i64 8, ptr %116, align 8, !tbaa !73
  br label %1253

117:                                              ; preds = %112
  %118 = load i8, ptr %111, align 8, !tbaa !85, !range !62, !noundef !63
  %119 = trunc nuw i8 %118 to i1
  br i1 %119, label %120, label %170

120:                                              ; preds = %117
  %121 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %121, align 8, !tbaa !81
  %122 = getelementptr inbounds i8, ptr %0, i64 4024
  %123 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.31087.ph, ptr noundef nonnull %122, ptr noundef nonnull %123, ptr noundef %1)
  br label %1229

124:                                              ; preds = %32
  %125 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %125, align 8, !tbaa !81
  %126 = getelementptr inbounds i8, ptr %0, i64 1104
  %127 = load ptr, ptr %126, align 8, !tbaa !59
  %128 = getelementptr inbounds double, ptr %127, i64 %.01060
  %129 = load double, ptr %128, align 8, !tbaa !64
  %130 = getelementptr inbounds i8, ptr %0, i64 4152
  %131 = load ptr, ptr %130, align 8, !tbaa !59
  store double %129, ptr %131, align 8, !tbaa !64
  %132 = getelementptr inbounds i8, ptr %0, i64 1112
  %133 = getelementptr inbounds i8, ptr %0, i64 4160
  tail call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %132, i64 noundef %.01060, ptr noundef nonnull %133, i64 noundef 0, ptr noundef %1)
  %134 = getelementptr inbounds i8, ptr %0, i64 172960
  %135 = getelementptr inbounds i8, ptr %0, i64 172968
  %136 = load i64, ptr %134, align 8, !tbaa !83
  %137 = load i64, ptr %135, align 8, !tbaa !84
  %138 = add nsw i64 %137, %136
  %.not1129.not1208 = icmp sgt i64 %138, 0
  br i1 %.not1129.not1208, label %.lr.ph1211, label %.preheader

.lr.ph1211:                                       ; preds = %124
  %139 = getelementptr inbounds i8, ptr %0, i64 172824
  %140 = getelementptr inbounds i8, ptr %0, i64 172888
  %141 = getelementptr inbounds i8, ptr %0, i64 172952
  br label %142

142:                                              ; preds = %.lr.ph1211, %142
  %.210351209 = phi i64 [ 0, %.lr.ph1211 ], [ %158, %142 ]
  %143 = load ptr, ptr %126, align 8, !tbaa !59
  %144 = load ptr, ptr %139, align 8, !tbaa !59
  %145 = getelementptr inbounds i64, ptr %144, i64 %.210351209
  %146 = load i64, ptr %145, align 8, !tbaa !60
  %147 = getelementptr double, ptr %143, i64 %.01072
  %148 = getelementptr double, ptr %147, i64 %146
  %149 = load double, ptr %148, align 8, !tbaa !64
  %150 = load ptr, ptr %140, align 8, !tbaa !59
  %151 = getelementptr inbounds double, ptr %150, i64 %.210351209
  %152 = load double, ptr %151, align 8, !tbaa !64
  %153 = load ptr, ptr %141, align 8, !tbaa !59
  %154 = getelementptr inbounds double, ptr %153, i64 %.210351209
  %155 = load double, ptr %154, align 8, !tbaa !64
  %156 = tail call double @llvm.fmuladd.f64(double %149, double %152, double %155)
  %157 = load ptr, ptr %130, align 8, !tbaa !59
  %158 = add nuw nsw i64 %.210351209, 1
  %159 = getelementptr inbounds double, ptr %157, i64 %158
  store double %156, ptr %159, align 8, !tbaa !64
  %160 = load ptr, ptr %139, align 8, !tbaa !59
  %161 = getelementptr inbounds i64, ptr %160, i64 %.210351209
  %162 = load i64, ptr %161, align 8, !tbaa !60
  %163 = add nsw i64 %162, %.01072
  tail call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %132, i64 noundef %163, ptr noundef nonnull %133, i64 noundef %158, ptr noundef %1)
  %164 = load ptr, ptr %140, align 8, !tbaa !59
  %165 = getelementptr inbounds double, ptr %164, i64 %.210351209
  %166 = load double, ptr %165, align 8, !tbaa !64
  tail call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.01084, double noundef %166, ptr noundef nonnull %133, i64 noundef %158, ptr noundef %1)
  %167 = load i64, ptr %134, align 8, !tbaa !83
  %168 = load i64, ptr %135, align 8, !tbaa !84
  %169 = add nsw i64 %168, %167
  %.not1129.not = icmp slt i64 %158, %169
  br i1 %.not1129.not, label %142, label %.preheader, !llvm.loop !86

170:                                              ; preds = %117
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.1661, ptr noundef %1)
  %171 = tail call noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %108, ptr noundef %1)
  br i1 %171, label %112, label %._crit_edge1278

._crit_edge1278:                                  ; preds = %170, %.preheader
  %172 = getelementptr inbounds i8, ptr %0, i64 173544
  %173 = getelementptr inbounds i8, ptr %0, i64 172088
  tail call void @_ZN11alglib_impl16minnlcresultsbufEPKNS_11minnlcstateEPNS_9ae_vectorEPNS_12minnlcreportEPNS_8ae_stateE(ptr noundef nonnull %108, ptr noundef nonnull %172, ptr noundef nonnull %173, ptr noundef %1)
  %174 = getelementptr inbounds i8, ptr %0, i64 172104
  %175 = load i64, ptr %174, align 8, !tbaa !88
  %176 = icmp eq i64 %175, -8
  br i1 %176, label %177, label %180

177:                                              ; preds = %._crit_edge1278
  %178 = getelementptr inbounds i8, ptr %0, i64 1584
  store i64 -8, ptr %178, align 8, !tbaa !73
  %179 = getelementptr inbounds i8, ptr %0, i64 1552
  store i64 0, ptr %179, align 8, !tbaa !72
  br label %1253

180:                                              ; preds = %._crit_edge1278
  %181 = icmp sgt i64 %175, 0
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %181, ptr noundef nonnull @.str.1662, ptr noundef %1)
  %182 = getelementptr inbounds i8, ptr %0, i64 1560
  %183 = load i64, ptr %182, align 8, !tbaa !89
  %184 = load i64, ptr %173, align 8, !tbaa !90
  %185 = add nsw i64 %184, %183
  store i64 %185, ptr %182, align 8, !tbaa !89
  %186 = getelementptr inbounds i8, ptr %0, i64 1576
  %187 = load i64, ptr %186, align 8, !tbaa !82
  %188 = getelementptr inbounds i8, ptr %0, i64 172096
  %189 = load i64, ptr %188, align 8, !tbaa !91
  %190 = add nsw i64 %189, %187
  store i64 %190, ptr %186, align 8, !tbaa !82
  %191 = trunc nuw i8 %.3.ph to i1
  br i1 %191, label %192, label %211

192:                                              ; preds = %180
  %193 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %193, align 8, !tbaa !81
  %194 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.31087.ph, ptr noundef nonnull %172, ptr noundef nonnull %194, ptr noundef %1)
  br label %1229

195:                                              ; preds = %32
  %196 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %196, align 8, !tbaa !81
  %197 = getelementptr inbounds i8, ptr %0, i64 1576
  %198 = load i64, ptr %197, align 8, !tbaa !82
  %199 = add nsw i64 %198, 1
  store i64 %199, ptr %197, align 8, !tbaa !82
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1663)
  %200 = getelementptr inbounds i8, ptr %0, i64 1048
  tail call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %200, i64 noundef 0, i64 noundef %.01072, ptr noundef %1)
  %201 = getelementptr inbounds i8, ptr %0, i64 172088
  %202 = load i64, ptr %201, align 8, !tbaa !90
  %203 = trunc i64 %202 to i32
  %204 = getelementptr inbounds i8, ptr %0, i64 172112
  %205 = load double, ptr %204, align 8, !tbaa !92
  %206 = getelementptr inbounds i8, ptr %0, i64 172128
  %207 = load double, ptr %206, align 8, !tbaa !93
  %208 = getelementptr inbounds i8, ptr %0, i64 172144
  %209 = load double, ptr %208, align 8, !tbaa !94
  %210 = tail call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %205, double noundef %207, double noundef %209, ptr noundef %1)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1664, i32 noundef %203, double noundef %210)
  br label %211

211:                                              ; preds = %180, %195
  %.41088 = phi i64 [ %.31087.ph, %180 ], [ %.01084, %195 ]
  %.41076 = phi i64 [ %.31075.ph, %180 ], [ %.01072, %195 ]
  %.41064 = phi i64 [ %.31063.ph, %180 ], [ %.01060, %195 ]
  %.41052 = phi i64 [ %.31051.ph, %180 ], [ %.01048, %195 ]
  %.31036 = phi i64 [ %.11034.ph, %180 ], [ %.01033, %195 ]
  %.4 = phi i8 [ %.3.ph, %180 ], [ %.0, %195 ]
  %212 = getelementptr inbounds i8, ptr %0, i64 112
  %213 = load i8, ptr %212, align 8, !tbaa !95, !range !62, !noundef !63
  %214 = trunc nuw i8 %213 to i1
  br i1 %214, label %215, label %361

215:                                              ; preds = %211
  %216 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %216, align 8, !tbaa !81
  %217 = getelementptr inbounds i8, ptr %0, i64 173544
  %218 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.41088, ptr noundef nonnull %217, ptr noundef nonnull %218, ptr noundef %1)
  br label %1229

219:                                              ; preds = %32
  %220 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %220, align 8, !tbaa !81
  %221 = getelementptr inbounds i8, ptr %0, i64 1576
  %222 = load i64, ptr %221, align 8, !tbaa !82
  %223 = add nsw i64 %222, 1
  store i64 %223, ptr %221, align 8, !tbaa !82
  %224 = getelementptr inbounds i8, ptr %0, i64 840
  %225 = load i64, ptr %224, align 8, !tbaa !77
  %226 = add nsw i64 %225, %.01072
  %227 = getelementptr inbounds i8, ptr %0, i64 1048
  %228 = getelementptr inbounds i8, ptr %0, i64 173672
  tail call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %226, ptr noundef nonnull %227, ptr noundef nonnull %228, ptr noundef %1)
  %229 = getelementptr inbounds i8, ptr %0, i64 1640
  %230 = getelementptr inbounds i8, ptr %0, i64 172960
  %231 = load i64, ptr %230, align 8, !tbaa !83
  %232 = getelementptr inbounds i8, ptr %0, i64 172968
  %233 = load i64, ptr %232, align 8, !tbaa !84
  %234 = add nsw i64 %233, 1
  tail call void @_ZN11alglib_impl12minnlcsetnlcEPNS_11minnlcstateEllPNS_8ae_stateE(ptr noundef nonnull %229, i64 noundef %231, i64 noundef %234, ptr noundef %1)
  %235 = getelementptr inbounds i8, ptr %0, i64 173544
  tail call void @_ZN11alglib_impl17minnlcrestartfromEPNS_11minnlcstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %229, ptr noundef nonnull %235, ptr noundef %1)
  br label %.preheader1133

.preheader1133:                                   ; preds = %219, %._crit_edge1201
  %.41037.ph = phi i64 [ %.61039.lcssa, %._crit_edge1201 ], [ %.01033, %219 ]
  %236 = getelementptr inbounds i8, ptr %0, i64 1640
  %237 = tail call noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %236, ptr noundef %1)
  br i1 %237, label %.lr.ph1205, label %._crit_edge1206

.lr.ph1205:                                       ; preds = %.preheader1133
  %238 = getelementptr inbounds i8, ptr %0, i64 1464
  %239 = getelementptr inbounds i8, ptr %0, i64 4240
  br label %240

240:                                              ; preds = %.lr.ph1205, %320
  %241 = load i8, ptr %238, align 8, !tbaa !74, !range !62, !noundef !63
  %242 = trunc nuw i8 %241 to i1
  br i1 %242, label %243, label %245

243:                                              ; preds = %240
  %244 = getelementptr inbounds i8, ptr %0, i64 1584
  store i64 8, ptr %244, align 8, !tbaa !73
  br label %1253

245:                                              ; preds = %240
  %246 = load i8, ptr %239, align 8, !tbaa !85, !range !62, !noundef !63
  %247 = trunc nuw i8 %246 to i1
  br i1 %247, label %248, label %320

248:                                              ; preds = %245
  %249 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %249, align 8, !tbaa !81
  %250 = getelementptr inbounds i8, ptr %0, i64 4024
  %251 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %250, ptr noundef nonnull %251, ptr noundef %1)
  br label %1229

252:                                              ; preds = %32
  %253 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %253, align 8, !tbaa !81
  %254 = getelementptr inbounds i8, ptr %0, i64 4152
  %255 = load ptr, ptr %254, align 8, !tbaa !59
  store double 0.000000e+00, ptr %255, align 8, !tbaa !64
  %256 = getelementptr inbounds i8, ptr %0, i64 4160
  tail call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.01084, double noundef 0.000000e+00, ptr noundef nonnull %256, i64 noundef 0, ptr noundef %1)
  %.not1127.not1194 = icmp sgt i64 %.01072, 0
  br i1 %.not1127.not1194, label %.lr.ph1197, label %.preheader1134

.lr.ph1197:                                       ; preds = %252
  %257 = getelementptr inbounds i8, ptr %0, i64 1104
  %258 = getelementptr inbounds i8, ptr %0, i64 1112
  br label %269

.preheader1134:                                   ; preds = %269, %252
  %259 = getelementptr inbounds i8, ptr %0, i64 172960
  %260 = getelementptr inbounds i8, ptr %0, i64 172968
  %261 = load i64, ptr %259, align 8, !tbaa !83
  %262 = load i64, ptr %260, align 8, !tbaa !84
  %263 = add i64 %262, %261
  %.not1128.not1198 = icmp sgt i64 %263, 0
  br i1 %.not1128.not1198, label %.lr.ph1200, label %._crit_edge1201

.lr.ph1200:                                       ; preds = %.preheader1134
  %264 = getelementptr inbounds i8, ptr %0, i64 1104
  %265 = getelementptr inbounds i8, ptr %0, i64 172824
  %266 = getelementptr inbounds i8, ptr %0, i64 172888
  %267 = getelementptr inbounds i8, ptr %0, i64 172952
  %268 = getelementptr inbounds i8, ptr %0, i64 1112
  br label %277

269:                                              ; preds = %.lr.ph1197, %269
  %.510381195 = phi i64 [ 0, %.lr.ph1197 ], [ %276, %269 ]
  %270 = load ptr, ptr %254, align 8, !tbaa !59
  %271 = load double, ptr %270, align 8, !tbaa !64
  %272 = load ptr, ptr %257, align 8, !tbaa !59
  %273 = getelementptr inbounds double, ptr %272, i64 %.510381195
  %274 = load double, ptr %273, align 8, !tbaa !64
  %275 = fadd double %271, %274
  store double %275, ptr %270, align 8, !tbaa !64
  tail call void @_ZN11alglib_impl6raddrrEldPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %.01084, double noundef 1.000000e+00, ptr noundef nonnull %258, i64 noundef %.510381195, ptr noundef nonnull %256, i64 noundef 0, ptr noundef %1)
  %276 = add nuw nsw i64 %.510381195, 1
  %exitcond1301.not = icmp eq i64 %276, %.01072
  br i1 %exitcond1301.not, label %.preheader1134, label %269, !llvm.loop !96

277:                                              ; preds = %.lr.ph1200, %277
  %.610391199 = phi i64 [ 0, %.lr.ph1200 ], [ %293, %277 ]
  %278 = load ptr, ptr %264, align 8, !tbaa !59
  %279 = load ptr, ptr %265, align 8, !tbaa !59
  %280 = getelementptr inbounds i64, ptr %279, i64 %.610391199
  %281 = load i64, ptr %280, align 8, !tbaa !60
  %282 = getelementptr double, ptr %278, i64 %.01072
  %283 = getelementptr double, ptr %282, i64 %281
  %284 = load double, ptr %283, align 8, !tbaa !64
  %285 = load ptr, ptr %266, align 8, !tbaa !59
  %286 = getelementptr inbounds double, ptr %285, i64 %.610391199
  %287 = load double, ptr %286, align 8, !tbaa !64
  %288 = load ptr, ptr %267, align 8, !tbaa !59
  %289 = getelementptr inbounds double, ptr %288, i64 %.610391199
  %290 = load double, ptr %289, align 8, !tbaa !64
  %291 = tail call double @llvm.fmuladd.f64(double %284, double %287, double %290)
  %292 = load ptr, ptr %254, align 8, !tbaa !59
  %293 = add nuw nsw i64 %.610391199, 1
  %294 = getelementptr inbounds double, ptr %292, i64 %293
  store double %291, ptr %294, align 8, !tbaa !64
  %295 = load ptr, ptr %265, align 8, !tbaa !59
  %296 = getelementptr inbounds i64, ptr %295, i64 %.610391199
  %297 = load i64, ptr %296, align 8, !tbaa !60
  %298 = add nsw i64 %297, %.01072
  tail call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %268, i64 noundef %298, ptr noundef nonnull %256, i64 noundef %293, ptr noundef %1)
  %299 = load ptr, ptr %266, align 8, !tbaa !59
  %300 = getelementptr inbounds double, ptr %299, i64 %.610391199
  %301 = load double, ptr %300, align 8, !tbaa !64
  tail call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.01084, double noundef %301, ptr noundef nonnull %256, i64 noundef %293, ptr noundef %1)
  %302 = load i64, ptr %259, align 8, !tbaa !83
  %303 = load i64, ptr %260, align 8, !tbaa !84
  %304 = add i64 %303, %302
  %.not1128.not = icmp slt i64 %293, %304
  br i1 %.not1128.not, label %277, label %._crit_edge1201, !llvm.loop !97

._crit_edge1201:                                  ; preds = %277, %.preheader1134
  %.pre-phi1313 = phi i64 [ %263, %.preheader1134 ], [ %304, %277 ]
  %.61039.lcssa = phi i64 [ 0, %.preheader1134 ], [ %293, %277 ]
  %.lcssa1150 = phi i64 [ %261, %.preheader1134 ], [ %302, %277 ]
  %.lcssa1149 = phi i64 [ %262, %.preheader1134 ], [ %303, %277 ]
  %305 = getelementptr inbounds i8, ptr %0, i64 1104
  %306 = load ptr, ptr %305, align 8, !tbaa !59
  %307 = getelementptr inbounds double, ptr %306, i64 %.01060
  %308 = load double, ptr %307, align 8, !tbaa !64
  %309 = getelementptr inbounds i8, ptr %0, i64 173728
  %310 = load ptr, ptr %309, align 8, !tbaa !59
  %311 = getelementptr inbounds double, ptr %310, i64 %.01060
  %312 = load double, ptr %311, align 8, !tbaa !64
  %313 = fsub double %308, %312
  %314 = load ptr, ptr %254, align 8, !tbaa !59
  %315 = getelementptr double, ptr %314, i64 %.lcssa1150
  %316 = getelementptr i8, ptr %315, i64 8
  %317 = getelementptr double, ptr %316, i64 %.lcssa1149
  store double %313, ptr %317, align 8, !tbaa !64
  %318 = getelementptr inbounds i8, ptr %0, i64 1112
  %319 = add i64 %.pre-phi1313, 1
  tail call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %318, i64 noundef %.01060, ptr noundef nonnull %256, i64 noundef %319, ptr noundef %1)
  br label %.preheader1133

320:                                              ; preds = %245
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.1665, ptr noundef %1)
  %321 = tail call noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %236, ptr noundef %1)
  br i1 %321, label %240, label %._crit_edge1206

._crit_edge1206:                                  ; preds = %320, %.preheader1133
  %322 = getelementptr inbounds i8, ptr %0, i64 173608
  %323 = getelementptr inbounds i8, ptr %0, i64 172088
  tail call void @_ZN11alglib_impl16minnlcresultsbufEPKNS_11minnlcstateEPNS_9ae_vectorEPNS_12minnlcreportEPNS_8ae_stateE(ptr noundef nonnull %236, ptr noundef nonnull %322, ptr noundef nonnull %323, ptr noundef %1)
  %324 = getelementptr inbounds i8, ptr %0, i64 172104
  %325 = load i64, ptr %324, align 8, !tbaa !88
  %326 = icmp eq i64 %325, -8
  br i1 %326, label %327, label %330

327:                                              ; preds = %._crit_edge1206
  %328 = getelementptr inbounds i8, ptr %0, i64 1584
  store i64 -8, ptr %328, align 8, !tbaa !73
  %329 = getelementptr inbounds i8, ptr %0, i64 1552
  store i64 0, ptr %329, align 8, !tbaa !72
  br label %1253

330:                                              ; preds = %._crit_edge1206
  %331 = icmp sgt i64 %325, 0
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %331, ptr noundef nonnull @.str.1662, ptr noundef %1)
  %332 = getelementptr inbounds i8, ptr %0, i64 1560
  %333 = load i64, ptr %332, align 8, !tbaa !89
  %334 = load i64, ptr %323, align 8, !tbaa !90
  %335 = add nsw i64 %334, %333
  store i64 %335, ptr %332, align 8, !tbaa !89
  %336 = getelementptr inbounds i8, ptr %0, i64 1576
  %337 = load i64, ptr %336, align 8, !tbaa !82
  %338 = getelementptr inbounds i8, ptr %0, i64 172096
  %339 = load i64, ptr %338, align 8, !tbaa !91
  %340 = add nsw i64 %339, %337
  store i64 %340, ptr %336, align 8, !tbaa !82
  %341 = trunc nuw i8 %.0 to i1
  br i1 %341, label %342, label %364

342:                                              ; preds = %330
  %343 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %343, align 8, !tbaa !81
  %344 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %322, ptr noundef nonnull %344, ptr noundef %1)
  br label %1229

345:                                              ; preds = %32
  %346 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %346, align 8, !tbaa !81
  %347 = getelementptr inbounds i8, ptr %0, i64 1576
  %348 = load i64, ptr %347, align 8, !tbaa !82
  %349 = add nsw i64 %348, 1
  store i64 %349, ptr %347, align 8, !tbaa !82
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1666)
  %350 = getelementptr inbounds i8, ptr %0, i64 1048
  tail call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %350, i64 noundef 0, i64 noundef %.01072, ptr noundef %1)
  %351 = getelementptr inbounds i8, ptr %0, i64 172088
  %352 = load i64, ptr %351, align 8, !tbaa !90
  %353 = trunc i64 %352 to i32
  %354 = getelementptr inbounds i8, ptr %0, i64 172112
  %355 = load double, ptr %354, align 8, !tbaa !92
  %356 = getelementptr inbounds i8, ptr %0, i64 172128
  %357 = load double, ptr %356, align 8, !tbaa !93
  %358 = getelementptr inbounds i8, ptr %0, i64 172144
  %359 = load double, ptr %358, align 8, !tbaa !94
  %360 = tail call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %355, double noundef %357, double noundef %359, ptr noundef %1)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1664, i32 noundef %353, double noundef %360)
  br label %364

361:                                              ; preds = %211
  %362 = getelementptr inbounds i8, ptr %0, i64 173544
  %363 = getelementptr inbounds i8, ptr %0, i64 173608
  tail call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.41088, ptr noundef nonnull %362, ptr noundef nonnull %363, ptr noundef %1)
  br label %364

364:                                              ; preds = %345, %330, %361
  %.51089 = phi i64 [ %.41088, %361 ], [ %.01084, %330 ], [ %.01084, %345 ]
  %.51077 = phi i64 [ %.41076, %361 ], [ %.01072, %330 ], [ %.01072, %345 ]
  %.51065 = phi i64 [ %.41064, %361 ], [ %.01060, %330 ], [ %.01060, %345 ]
  %.51053 = phi i64 [ %.41052, %361 ], [ %.01048, %330 ], [ %.01048, %345 ]
  %.71040 = phi i64 [ %.31036, %361 ], [ %.41037.ph, %330 ], [ %.01033, %345 ]
  %.5 = phi i8 [ %.4, %361 ], [ %.0, %330 ], [ %.0, %345 ]
  %365 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %365, align 8, !tbaa !81
  %366 = getelementptr inbounds i8, ptr %0, i64 173608
  %367 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.51089, ptr noundef nonnull %366, ptr noundef nonnull %367, ptr noundef %1)
  br label %1229

368:                                              ; preds = %32
  %369 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %369, align 8, !tbaa !81
  %370 = getelementptr inbounds i8, ptr %0, i64 1576
  %371 = load i64, ptr %370, align 8, !tbaa !82
  %372 = add nsw i64 %371, 1
  store i64 %372, ptr %370, align 8, !tbaa !82
  %373 = getelementptr inbounds i8, ptr %0, i64 173608
  %374 = getelementptr inbounds i8, ptr %0, i64 1472
  %375 = getelementptr inbounds i8, ptr %0, i64 1552
  %376 = load i64, ptr %375, align 8, !tbaa !72
  tail call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %373, ptr noundef nonnull %374, i64 noundef %376, ptr noundef %1)
  %.not1125.not1185 = icmp sgt i64 %.01072, 0
  br i1 %.not1125.not1185, label %.lr.ph1188, label %.preheader1135.._crit_edge1192_crit_edge

.lr.ph1188:                                       ; preds = %368
  %377 = getelementptr inbounds i8, ptr %0, i64 1104
  %378 = getelementptr inbounds i8, ptr %0, i64 1544
  %379 = load i64, ptr %375, align 8, !tbaa !72
  %xtraiter1342 = and i64 %.01072, 1
  %380 = icmp eq i64 %.01072, 1
  br i1 %380, label %.preheader1135.unr-lcssa, label %.lr.ph1188.new

.lr.ph1188.new:                                   ; preds = %.lr.ph1188
  %unroll_iter1344 = and i64 %.01072, 9223372036854775806
  br label %390

.preheader1135.unr-lcssa:                         ; preds = %390, %.lr.ph1188
  %.810411186.unr = phi i64 [ 0, %.lr.ph1188 ], [ %408, %390 ]
  %lcmp.mod1343.not = icmp eq i64 %xtraiter1342, 0
  br i1 %lcmp.mod1343.not, label %.preheader1135, label %.preheader1135.epilog-lcssa

.preheader1135.epilog-lcssa:                      ; preds = %.preheader1135.unr-lcssa
  %381 = load ptr, ptr %377, align 8, !tbaa !59
  %382 = getelementptr inbounds double, ptr %381, i64 %.810411186.unr
  %383 = load double, ptr %382, align 8, !tbaa !64
  %384 = load ptr, ptr %378, align 8, !tbaa !59
  %385 = getelementptr inbounds ptr, ptr %384, i64 %379
  %386 = load ptr, ptr %385, align 8, !tbaa !98
  %387 = getelementptr double, ptr %386, i64 %.01084
  %388 = getelementptr double, ptr %387, i64 %.810411186.unr
  store double %383, ptr %388, align 8, !tbaa !64
  br label %.preheader1135

.preheader1135:                                   ; preds = %.preheader1135.unr-lcssa, %.preheader1135.epilog-lcssa
  br i1 %.not1125.not1185, label %.lr.ph1191, label %.preheader1135.._crit_edge1192_crit_edge

.preheader1135.._crit_edge1192_crit_edge:         ; preds = %368, %.preheader1135
  %.pre1312 = load i64, ptr %375, align 8, !tbaa !72
  br label %._crit_edge1192

.lr.ph1191:                                       ; preds = %.preheader1135
  %389 = getelementptr inbounds i8, ptr %0, i64 1544
  br label %409

390:                                              ; preds = %390, %.lr.ph1188.new
  %.810411186 = phi i64 [ 0, %.lr.ph1188.new ], [ %408, %390 ]
  %niter1345 = phi i64 [ 0, %.lr.ph1188.new ], [ %niter1345.next.1, %390 ]
  %391 = load ptr, ptr %377, align 8, !tbaa !59
  %392 = getelementptr inbounds double, ptr %391, i64 %.810411186
  %393 = load double, ptr %392, align 8, !tbaa !64
  %394 = load ptr, ptr %378, align 8, !tbaa !59
  %395 = getelementptr inbounds ptr, ptr %394, i64 %379
  %396 = load ptr, ptr %395, align 8, !tbaa !98
  %397 = getelementptr double, ptr %396, i64 %.01084
  %398 = getelementptr double, ptr %397, i64 %.810411186
  store double %393, ptr %398, align 8, !tbaa !64
  %399 = or disjoint i64 %.810411186, 1
  %400 = load ptr, ptr %377, align 8, !tbaa !59
  %401 = getelementptr inbounds double, ptr %400, i64 %399
  %402 = load double, ptr %401, align 8, !tbaa !64
  %403 = load ptr, ptr %378, align 8, !tbaa !59
  %404 = getelementptr inbounds ptr, ptr %403, i64 %379
  %405 = load ptr, ptr %404, align 8, !tbaa !98
  %406 = getelementptr double, ptr %405, i64 %.01084
  %407 = getelementptr double, ptr %406, i64 %399
  store double %402, ptr %407, align 8, !tbaa !64
  %408 = add nuw nsw i64 %.810411186, 2
  %niter1345.next.1 = add i64 %niter1345, 2
  %niter1345.ncmp.1 = icmp eq i64 %niter1345.next.1, %unroll_iter1344
  br i1 %niter1345.ncmp.1, label %.preheader1135.unr-lcssa, label %390, !llvm.loop !99

409:                                              ; preds = %.lr.ph1191, %409
  %.910421190 = phi i64 [ 0, %.lr.ph1191 ], [ %419, %409 ]
  %410 = icmp eq i64 %.910421190, %.01060
  %411 = tail call noundef double @_ZN11alglib_impl6rcase2EbddPNS_8ae_stateE(i1 noundef zeroext %410, double noundef 1.000000e+00, double noundef 0.000000e+00, ptr noundef %1)
  %412 = load ptr, ptr %389, align 8, !tbaa !59
  %413 = load i64, ptr %375, align 8, !tbaa !72
  %414 = getelementptr inbounds ptr, ptr %412, i64 %413
  %415 = load ptr, ptr %414, align 8, !tbaa !98
  %416 = getelementptr double, ptr %415, i64 %.01084
  %417 = getelementptr double, ptr %416, i64 %.01072
  %418 = getelementptr double, ptr %417, i64 %.910421190
  store double %411, ptr %418, align 8, !tbaa !64
  %419 = add nuw nsw i64 %.910421190, 1
  %exitcond1300.not = icmp eq i64 %419, %.01072
  br i1 %exitcond1300.not, label %._crit_edge1192, label %409, !llvm.loop !100

._crit_edge1192:                                  ; preds = %409, %.preheader1135.._crit_edge1192_crit_edge
  %420 = phi i64 [ %.pre1312, %.preheader1135.._crit_edge1192_crit_edge ], [ %413, %409 ]
  %.91042.lcssa = phi i64 [ 0, %.preheader1135.._crit_edge1192_crit_edge ], [ %.01072, %409 ]
  %421 = add nsw i64 %420, 1
  store i64 %421, ptr %375, align 8, !tbaa !72
  %422 = getelementptr inbounds i8, ptr %0, i64 1568
  %423 = load i64, ptr %422, align 8, !tbaa !101
  %424 = add nsw i64 %423, 1
  store i64 %424, ptr %422, align 8, !tbaa !101
  %425 = getelementptr inbounds i8, ptr %0, i64 172112
  %426 = load double, ptr %425, align 8, !tbaa !92
  %427 = getelementptr inbounds i8, ptr %0, i64 1592
  %428 = load double, ptr %427, align 8, !tbaa !102
  %429 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %426, double noundef %428)
  br i1 %429, label %430, label %435

430:                                              ; preds = %._crit_edge1192
  %431 = load double, ptr %425, align 8, !tbaa !92
  store double %431, ptr %427, align 8, !tbaa !102
  %432 = getelementptr inbounds i8, ptr %0, i64 172120
  %433 = load i64, ptr %432, align 8, !tbaa !103
  %434 = getelementptr inbounds i8, ptr %0, i64 1600
  store i64 %433, ptr %434, align 8, !tbaa !104
  br label %435

435:                                              ; preds = %430, %._crit_edge1192
  %436 = getelementptr inbounds i8, ptr %0, i64 172128
  %437 = load double, ptr %436, align 8, !tbaa !93
  %438 = getelementptr inbounds i8, ptr %0, i64 1608
  %439 = load double, ptr %438, align 8, !tbaa !105
  %440 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %437, double noundef %439)
  br i1 %440, label %441, label %446

441:                                              ; preds = %435
  %442 = load double, ptr %436, align 8, !tbaa !93
  store double %442, ptr %438, align 8, !tbaa !105
  %443 = getelementptr inbounds i8, ptr %0, i64 172136
  %444 = load i64, ptr %443, align 8, !tbaa !106
  %445 = getelementptr inbounds i8, ptr %0, i64 1616
  store i64 %444, ptr %445, align 8, !tbaa !107
  br label %446

446:                                              ; preds = %441, %435
  %447 = getelementptr inbounds i8, ptr %0, i64 172144
  %448 = load double, ptr %447, align 8, !tbaa !94
  %449 = getelementptr inbounds i8, ptr %0, i64 1624
  %450 = load double, ptr %449, align 8, !tbaa !108
  %451 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %448, double noundef %450)
  br i1 %451, label %452, label %457

452:                                              ; preds = %446
  %453 = load double, ptr %447, align 8, !tbaa !94
  store double %453, ptr %449, align 8, !tbaa !108
  %454 = getelementptr inbounds i8, ptr %0, i64 172152
  %455 = load i64, ptr %454, align 8, !tbaa !109
  %456 = getelementptr inbounds i8, ptr %0, i64 1632
  store i64 %455, ptr %456, align 8, !tbaa !110
  br label %457

457:                                              ; preds = %452, %446
  %458 = load i64, ptr %375, align 8, !tbaa !72
  %459 = add nsw i64 %458, -1
  %460 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl7rcopyrvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %374, i64 noundef %459, ptr noundef nonnull %460, ptr noundef %1)
  %461 = getelementptr inbounds i8, ptr %0, i64 1193
  store i8 1, ptr %461, align 1, !tbaa !111
  br label %1229

462:                                              ; preds = %32
  %463 = getelementptr inbounds i8, ptr %0, i64 1193
  store i8 0, ptr %463, align 1, !tbaa !111
  %464 = getelementptr inbounds i8, ptr %0, i64 1464
  %465 = load i8, ptr %464, align 8, !tbaa !74, !range !62, !noundef !63
  %466 = trunc nuw i8 %465 to i1
  br i1 %466, label %467, label %469

467:                                              ; preds = %462
  %468 = getelementptr inbounds i8, ptr %0, i64 1584
  store i64 8, ptr %468, align 8, !tbaa !73
  br label %1253

469:                                              ; preds = %462
  %470 = add nsw i64 %.01060, 1
  br label %87

471:                                              ; preds = %87
  %472 = getelementptr inbounds i8, ptr %0, i64 172976
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.11073, ptr noundef nonnull %472, ptr noundef %1)
  %.not1114.not1213 = icmp sgt i64 %.11073, 0
  br i1 %.not1114.not1213, label %.lr.ph1216, label %._crit_edge1217.thread

._crit_edge1217.thread:                           ; preds = %471
  %473 = getelementptr inbounds i8, ptr %0, i64 173040
  tail call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %.11073, i64 noundef %.11073, ptr noundef nonnull %473, ptr noundef %1)
  br label %._crit_edge1225.thread

.lr.ph1216:                                       ; preds = %471
  %474 = getelementptr inbounds i8, ptr %0, i64 1544
  %475 = getelementptr inbounds i8, ptr %0, i64 173032
  %476 = add nsw i64 %.11073, -1
  %xtraiter1347 = and i64 %.11073, 1
  %477 = icmp eq i64 %476, 0
  br i1 %477, label %._crit_edge1217.unr-lcssa, label %.lr.ph1216.new

.lr.ph1216.new:                                   ; preds = %.lr.ph1216
  %unroll_iter1349 = and i64 %.11073, 9223372036854775806
  br label %478

478:                                              ; preds = %478, %.lr.ph1216.new
  %.1010431214 = phi i64 [ 0, %.lr.ph1216.new ], [ %496, %478 ]
  %niter1350 = phi i64 [ 0, %.lr.ph1216.new ], [ %niter1350.next.1, %478 ]
  %479 = load ptr, ptr %474, align 8, !tbaa !59
  %480 = getelementptr inbounds ptr, ptr %479, i64 %.1010431214
  %481 = load ptr, ptr %480, align 8, !tbaa !98
  %482 = getelementptr double, ptr %481, i64 %.11085
  %483 = getelementptr double, ptr %482, i64 %.1010431214
  %484 = load double, ptr %483, align 8, !tbaa !64
  %485 = load ptr, ptr %475, align 8, !tbaa !59
  %486 = getelementptr inbounds double, ptr %485, i64 %.1010431214
  store double %484, ptr %486, align 8, !tbaa !64
  %487 = or disjoint i64 %.1010431214, 1
  %488 = load ptr, ptr %474, align 8, !tbaa !59
  %489 = getelementptr inbounds ptr, ptr %488, i64 %487
  %490 = load ptr, ptr %489, align 8, !tbaa !98
  %491 = getelementptr double, ptr %490, i64 %.11085
  %492 = getelementptr double, ptr %491, i64 %487
  %493 = load double, ptr %492, align 8, !tbaa !64
  %494 = load ptr, ptr %475, align 8, !tbaa !59
  %495 = getelementptr inbounds double, ptr %494, i64 %487
  store double %493, ptr %495, align 8, !tbaa !64
  %496 = add nuw nsw i64 %.1010431214, 2
  %niter1350.next.1 = add i64 %niter1350, 2
  %niter1350.ncmp.1 = icmp eq i64 %niter1350.next.1, %unroll_iter1349
  br i1 %niter1350.ncmp.1, label %._crit_edge1217.unr-lcssa, label %478, !llvm.loop !112

._crit_edge1217.unr-lcssa:                        ; preds = %478, %.lr.ph1216
  %.1010431214.unr = phi i64 [ 0, %.lr.ph1216 ], [ %496, %478 ]
  %lcmp.mod1348.not = icmp eq i64 %xtraiter1347, 0
  br i1 %lcmp.mod1348.not, label %._crit_edge1217, label %._crit_edge1217.epilog-lcssa

._crit_edge1217.epilog-lcssa:                     ; preds = %._crit_edge1217.unr-lcssa
  %497 = load ptr, ptr %474, align 8, !tbaa !59
  %498 = getelementptr inbounds ptr, ptr %497, i64 %.1010431214.unr
  %499 = load ptr, ptr %498, align 8, !tbaa !98
  %500 = getelementptr double, ptr %499, i64 %.11085
  %501 = getelementptr double, ptr %500, i64 %.1010431214.unr
  %502 = load double, ptr %501, align 8, !tbaa !64
  %503 = load ptr, ptr %475, align 8, !tbaa !59
  %504 = getelementptr inbounds double, ptr %503, i64 %.1010431214.unr
  store double %502, ptr %504, align 8, !tbaa !64
  br label %._crit_edge1217

._crit_edge1217:                                  ; preds = %._crit_edge1217.unr-lcssa, %._crit_edge1217.epilog-lcssa
  %505 = getelementptr inbounds i8, ptr %0, i64 173040
  tail call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %.11073, i64 noundef %.11073, ptr noundef nonnull %505, ptr noundef %1)
  br i1 %.not1114.not1213, label %.preheader1132.lr.ph, label %._crit_edge1225.thread

.preheader1132.lr.ph:                             ; preds = %._crit_edge1217
  %506 = getelementptr inbounds i8, ptr %0, i64 1544
  %507 = getelementptr inbounds i8, ptr %0, i64 173032
  %508 = getelementptr inbounds i8, ptr %0, i64 173112
  %xtraiter1352 = and i64 %.11073, 1
  %509 = icmp eq i64 %476, 0
  %unroll_iter1354 = and i64 %.11073, 9223372036854775806
  %lcmp.mod1353.not = icmp eq i64 %xtraiter1352, 0
  br label %.preheader1132.us

.preheader1132.us:                                ; preds = %._crit_edge1221.us, %.preheader1132.lr.ph
  %.1110441224.us = phi i64 [ 0, %.preheader1132.lr.ph ], [ %554, %._crit_edge1221.us ]
  br i1 %509, label %._crit_edge1221.us.unr-lcssa, label %.preheader1132.us.new

.preheader1132.us.new:                            ; preds = %.preheader1132.us, %.preheader1132.us.new
  %.210231219.us = phi i64 [ %539, %.preheader1132.us.new ], [ 0, %.preheader1132.us ]
  %niter1355 = phi i64 [ %niter1355.next.1, %.preheader1132.us.new ], [ 0, %.preheader1132.us ]
  %510 = load ptr, ptr %506, align 8, !tbaa !59
  %511 = getelementptr inbounds ptr, ptr %510, i64 %.210231219.us
  %512 = load ptr, ptr %511, align 8, !tbaa !98
  %513 = getelementptr double, ptr %512, i64 %.11085
  %514 = getelementptr double, ptr %513, i64 %.1110441224.us
  %515 = load double, ptr %514, align 8, !tbaa !64
  %516 = load ptr, ptr %507, align 8, !tbaa !59
  %517 = getelementptr inbounds double, ptr %516, i64 %.1110441224.us
  %518 = load double, ptr %517, align 8, !tbaa !64
  %519 = fsub double %515, %518
  %520 = load ptr, ptr %508, align 8, !tbaa !59
  %521 = getelementptr inbounds ptr, ptr %520, i64 %.1110441224.us
  %522 = load ptr, ptr %521, align 8, !tbaa !98
  %523 = getelementptr inbounds double, ptr %522, i64 %.210231219.us
  store double %519, ptr %523, align 8, !tbaa !64
  %524 = or disjoint i64 %.210231219.us, 1
  %525 = load ptr, ptr %506, align 8, !tbaa !59
  %526 = getelementptr inbounds ptr, ptr %525, i64 %524
  %527 = load ptr, ptr %526, align 8, !tbaa !98
  %528 = getelementptr double, ptr %527, i64 %.11085
  %529 = getelementptr double, ptr %528, i64 %.1110441224.us
  %530 = load double, ptr %529, align 8, !tbaa !64
  %531 = load ptr, ptr %507, align 8, !tbaa !59
  %532 = getelementptr inbounds double, ptr %531, i64 %.1110441224.us
  %533 = load double, ptr %532, align 8, !tbaa !64
  %534 = fsub double %530, %533
  %535 = load ptr, ptr %508, align 8, !tbaa !59
  %536 = getelementptr inbounds ptr, ptr %535, i64 %.1110441224.us
  %537 = load ptr, ptr %536, align 8, !tbaa !98
  %538 = getelementptr inbounds double, ptr %537, i64 %524
  store double %534, ptr %538, align 8, !tbaa !64
  %539 = add nuw nsw i64 %.210231219.us, 2
  %niter1355.next.1 = add i64 %niter1355, 2
  %niter1355.ncmp.1 = icmp eq i64 %niter1355.next.1, %unroll_iter1354
  br i1 %niter1355.ncmp.1, label %._crit_edge1221.us.unr-lcssa, label %.preheader1132.us.new, !llvm.loop !113

._crit_edge1221.us.unr-lcssa:                     ; preds = %.preheader1132.us.new, %.preheader1132.us
  %.210231219.us.unr = phi i64 [ 0, %.preheader1132.us ], [ %539, %.preheader1132.us.new ]
  br i1 %lcmp.mod1353.not, label %._crit_edge1221.us, label %._crit_edge1221.us.epilog-lcssa

._crit_edge1221.us.epilog-lcssa:                  ; preds = %._crit_edge1221.us.unr-lcssa
  %540 = load ptr, ptr %506, align 8, !tbaa !59
  %541 = getelementptr inbounds ptr, ptr %540, i64 %.210231219.us.unr
  %542 = load ptr, ptr %541, align 8, !tbaa !98
  %543 = getelementptr double, ptr %542, i64 %.11085
  %544 = getelementptr double, ptr %543, i64 %.1110441224.us
  %545 = load double, ptr %544, align 8, !tbaa !64
  %546 = load ptr, ptr %507, align 8, !tbaa !59
  %547 = getelementptr inbounds double, ptr %546, i64 %.1110441224.us
  %548 = load double, ptr %547, align 8, !tbaa !64
  %549 = fsub double %545, %548
  %550 = load ptr, ptr %508, align 8, !tbaa !59
  %551 = getelementptr inbounds ptr, ptr %550, i64 %.1110441224.us
  %552 = load ptr, ptr %551, align 8, !tbaa !98
  %553 = getelementptr inbounds double, ptr %552, i64 %.210231219.us.unr
  store double %549, ptr %553, align 8, !tbaa !64
  br label %._crit_edge1221.us

._crit_edge1221.us:                               ; preds = %._crit_edge1221.us.unr-lcssa, %._crit_edge1221.us.epilog-lcssa
  %554 = add nuw nsw i64 %.1110441224.us, 1
  %exitcond1304.not = icmp eq i64 %554, %.11073
  br i1 %exitcond1304.not, label %._crit_edge1225, label %.preheader1132.us, !llvm.loop !114

._crit_edge1225.thread:                           ; preds = %._crit_edge1217.thread, %._crit_edge1217
  %555 = getelementptr inbounds i8, ptr %0, i64 173184
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.11073, ptr noundef nonnull %555, ptr noundef %1)
  br label %._crit_edge1243

._crit_edge1225:                                  ; preds = %._crit_edge1221.us
  %556 = getelementptr inbounds i8, ptr %0, i64 173184
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.11073, ptr noundef nonnull %556, ptr noundef %1)
  br i1 %.not1114.not1213, label %.lr.ph1242, label %._crit_edge1243

.lr.ph1242:                                       ; preds = %._crit_edge1225
  %557 = getelementptr inbounds i8, ptr %0, i64 173240
  %558 = getelementptr inbounds i8, ptr %0, i64 173112
  %xtraiter1356 = and i64 %.11073, 1
  %559 = icmp eq i64 %476, 0
  %unroll_iter1358 = and i64 %.11073, 9223372036854775806
  %lcmp.mod1357.not = icmp eq i64 %xtraiter1356, 0
  br label %.lr.ph1230.preheader

.lr.ph1230.preheader:                             ; preds = %616, %.lr.ph1242
  %.1210451240 = phi i64 [ 0, %.lr.ph1242 ], [ %617, %616 ]
  %560 = load ptr, ptr %557, align 8, !tbaa !59
  %561 = getelementptr inbounds double, ptr %560, i64 %.1210451240
  store double 0.000000e+00, ptr %561, align 8, !tbaa !64
  br i1 %559, label %._crit_edge1231.unr-lcssa, label %.lr.ph1230

.lr.ph1230:                                       ; preds = %.lr.ph1230.preheader, %.lr.ph1230
  %.410251228 = phi i64 [ %581, %.lr.ph1230 ], [ 0, %.lr.ph1230.preheader ]
  %niter1359 = phi i64 [ %niter1359.next.1, %.lr.ph1230 ], [ 0, %.lr.ph1230.preheader ]
  %562 = load ptr, ptr %557, align 8, !tbaa !59
  %563 = getelementptr inbounds double, ptr %562, i64 %.1210451240
  %564 = load double, ptr %563, align 8, !tbaa !64
  %565 = load ptr, ptr %558, align 8, !tbaa !59
  %566 = getelementptr inbounds ptr, ptr %565, i64 %.1210451240
  %567 = load ptr, ptr %566, align 8, !tbaa !98
  %568 = getelementptr inbounds double, ptr %567, i64 %.410251228
  %569 = load double, ptr %568, align 8, !tbaa !64
  %570 = fsub double %564, %569
  store double %570, ptr %563, align 8, !tbaa !64
  %571 = or disjoint i64 %.410251228, 1
  %572 = load ptr, ptr %557, align 8, !tbaa !59
  %573 = getelementptr inbounds double, ptr %572, i64 %.1210451240
  %574 = load double, ptr %573, align 8, !tbaa !64
  %575 = load ptr, ptr %558, align 8, !tbaa !59
  %576 = getelementptr inbounds ptr, ptr %575, i64 %.1210451240
  %577 = load ptr, ptr %576, align 8, !tbaa !98
  %578 = getelementptr inbounds double, ptr %577, i64 %571
  %579 = load double, ptr %578, align 8, !tbaa !64
  %580 = fsub double %574, %579
  store double %580, ptr %573, align 8, !tbaa !64
  %581 = add nuw nsw i64 %.410251228, 2
  %niter1359.next.1 = add i64 %niter1359, 2
  %niter1359.ncmp.1 = icmp eq i64 %niter1359.next.1, %unroll_iter1358
  br i1 %niter1359.ncmp.1, label %._crit_edge1231.unr-lcssa, label %.lr.ph1230, !llvm.loop !115

._crit_edge1231.unr-lcssa:                        ; preds = %.lr.ph1230, %.lr.ph1230.preheader
  %.410251228.unr = phi i64 [ 0, %.lr.ph1230.preheader ], [ %581, %.lr.ph1230 ]
  br i1 %lcmp.mod1357.not, label %._crit_edge1231, label %.lr.ph1230.epil

.lr.ph1230.epil:                                  ; preds = %._crit_edge1231.unr-lcssa
  %582 = load ptr, ptr %557, align 8, !tbaa !59
  %583 = getelementptr inbounds double, ptr %582, i64 %.1210451240
  %584 = load double, ptr %583, align 8, !tbaa !64
  %585 = load ptr, ptr %558, align 8, !tbaa !59
  %586 = getelementptr inbounds ptr, ptr %585, i64 %.1210451240
  %587 = load ptr, ptr %586, align 8, !tbaa !98
  %588 = getelementptr inbounds double, ptr %587, i64 %.410251228.unr
  %589 = load double, ptr %588, align 8, !tbaa !64
  %590 = fsub double %584, %589
  store double %590, ptr %583, align 8, !tbaa !64
  br label %._crit_edge1231

._crit_edge1231:                                  ; preds = %._crit_edge1231.unr-lcssa, %.lr.ph1230.epil
  %591 = load ptr, ptr %557, align 8, !tbaa !59
  %592 = getelementptr inbounds double, ptr %591, i64 %.1210451240
  %593 = load double, ptr %592, align 8, !tbaa !64
  %594 = tail call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %593, double noundef 0.000000e+00)
  br i1 %594, label %.lr.ph1236.preheader, label %616

.lr.ph1236.preheader:                             ; preds = %._crit_edge1231
  %595 = load ptr, ptr %557, align 8, !tbaa !59
  %596 = getelementptr inbounds double, ptr %595, i64 %.1210451240
  store double 0.000000e+00, ptr %596, align 8, !tbaa !64
  br label %.lr.ph1236

.lr.ph1236:                                       ; preds = %.lr.ph1236.preheader, %.lr.ph1236
  %.510261234 = phi i64 [ %609, %.lr.ph1236 ], [ 0, %.lr.ph1236.preheader ]
  %597 = load ptr, ptr %557, align 8, !tbaa !59
  %598 = getelementptr inbounds double, ptr %597, i64 %.1210451240
  %599 = load double, ptr %598, align 8, !tbaa !64
  %600 = load ptr, ptr %558, align 8, !tbaa !59
  %601 = getelementptr inbounds ptr, ptr %600, i64 %.1210451240
  %602 = load ptr, ptr %601, align 8, !tbaa !98
  %603 = getelementptr inbounds double, ptr %602, i64 %.510261234
  %604 = load double, ptr %603, align 8, !tbaa !64
  %605 = fneg double %604
  %606 = tail call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %599, double noundef %605, ptr noundef %1)
  %607 = load ptr, ptr %557, align 8, !tbaa !59
  %608 = getelementptr inbounds double, ptr %607, i64 %.1210451240
  store double %606, ptr %608, align 8, !tbaa !64
  %609 = add nuw nsw i64 %.510261234, 1
  %exitcond1306.not = icmp eq i64 %609, %.11073
  br i1 %exitcond1306.not, label %._crit_edge1237, label %.lr.ph1236, !llvm.loop !116

._crit_edge1237:                                  ; preds = %.lr.ph1236
  %610 = load ptr, ptr %557, align 8, !tbaa !59
  %611 = getelementptr inbounds double, ptr %610, i64 %.1210451240
  %612 = load double, ptr %611, align 8, !tbaa !64
  %613 = tail call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %612, double noundef -1.000000e+00, ptr noundef %1)
  %614 = load ptr, ptr %557, align 8, !tbaa !59
  %615 = getelementptr inbounds double, ptr %614, i64 %.1210451240
  store double %613, ptr %615, align 8, !tbaa !64
  br label %616

616:                                              ; preds = %._crit_edge1231, %._crit_edge1237
  %617 = add nuw nsw i64 %.1210451240, 1
  %exitcond1307.not = icmp eq i64 %617, %.11073
  br i1 %exitcond1307.not, label %._crit_edge1243, label %.lr.ph1230.preheader, !llvm.loop !117

._crit_edge1243:                                  ; preds = %616, %._crit_edge1225.thread, %._crit_edge1225
  %618 = phi ptr [ %556, %._crit_edge1225 ], [ %555, %._crit_edge1225.thread ], [ %556, %616 ]
  %.31024.lcssa = phi i64 [ %.11073, %._crit_edge1225 ], [ %.01021, %._crit_edge1225.thread ], [ %.11073, %616 ]
  %619 = tail call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.11073, ptr noundef nonnull %618, ptr noundef %1)
  %620 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %619, ptr noundef %1)
  %621 = tail call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %620, double noundef 0.000000e+00)
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %621, ptr noundef nonnull @.str.1667, ptr noundef %1)
  %622 = fdiv double 1.000000e+00, %620
  %623 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %622, double noundef 1.000000e+00, ptr noundef %1)
  tail call void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.11073, double noundef %623, ptr noundef nonnull %618, ptr noundef %1)
  br label %624

624:                                              ; preds = %1227, %._crit_edge1243
  %.61090 = phi i64 [ %.11085, %._crit_edge1243 ], [ %.01084, %1227 ]
  %.61078 = phi i64 [ %.11073, %._crit_edge1243 ], [ %.01072, %1227 ]
  %.61066 = phi i64 [ %.11061, %._crit_edge1243 ], [ %.01060, %1227 ]
  %.61054 = phi i64 [ %.11049, %._crit_edge1243 ], [ %.01048, %1227 ]
  %.71028 = phi i64 [ %.31024.lcssa, %._crit_edge1243 ], [ %.01021, %1227 ]
  %.11007 = phi i64 [ %.11073, %._crit_edge1243 ], [ %1228, %1227 ]
  %.6 = phi i8 [ %.1, %._crit_edge1243 ], [ %.0, %1227 ]
  %.not1117 = icmp slt i64 %.11007, %.61054
  br i1 %.not1117, label %625, label %1253

625:                                              ; preds = %624
  %626 = trunc nuw i8 %.6 to i1
  br i1 %626, label %627, label %629

627:                                              ; preds = %625
  %628 = trunc i64 %.11007 to i32
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1668, i32 noundef %628)
  br label %629

629:                                              ; preds = %627, %625
  %630 = getelementptr inbounds i8, ptr %0, i64 173120
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.61078, ptr noundef nonnull %630, ptr noundef %1)
  %.not1118.not1245 = icmp sgt i64 %.61078, 0
  br i1 %.not1118.not1245, label %.lr.ph1249, label %._crit_edge1250

.lr.ph1249:                                       ; preds = %629
  %631 = getelementptr inbounds i8, ptr %0, i64 173312
  %632 = getelementptr inbounds i8, ptr %0, i64 173176
  br label %633

633:                                              ; preds = %.lr.ph1249, %633
  %.19981247 = phi double [ 0.000000e+00, %.lr.ph1249 ], [ %642, %633 ]
  %.1310461246 = phi i64 [ 0, %.lr.ph1249 ], [ %643, %633 ]
  %634 = tail call noundef double @_ZN11alglib_impl13hqrnduniformrEPNS_10hqrndstateEPNS_8ae_stateE(ptr noundef nonnull %631, ptr noundef %1)
  %635 = fadd double %634, 5.000000e-16
  %636 = tail call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef %635, ptr noundef %1)
  %637 = load ptr, ptr %632, align 8, !tbaa !59
  %638 = getelementptr inbounds double, ptr %637, i64 %.1310461246
  store double %636, ptr %638, align 8, !tbaa !64
  %639 = load ptr, ptr %632, align 8, !tbaa !59
  %640 = getelementptr inbounds double, ptr %639, i64 %.1310461246
  %641 = load double, ptr %640, align 8, !tbaa !64
  %642 = fadd double %.19981247, %641
  %643 = add nuw nsw i64 %.1310461246, 1
  %exitcond1308.not = icmp eq i64 %643, %.61078
  br i1 %exitcond1308.not, label %._crit_edge1250, label %633, !llvm.loop !118

._crit_edge1250:                                  ; preds = %633, %629
  %.1998.lcssa = phi double [ 0.000000e+00, %629 ], [ %642, %633 ]
  %644 = fdiv double 1.000000e+00, %.1998.lcssa
  tail call void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.61078, double noundef %644, ptr noundef nonnull %630, ptr noundef %1)
  br i1 %626, label %645, label %646

645:                                              ; preds = %._crit_edge1250
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1669)
  tail call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %630, i64 noundef 0, i64 noundef %.61078, ptr noundef %1)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %646

646:                                              ; preds = %645, %._crit_edge1250
  %647 = add nsw i64 %.61090, 1
  %648 = getelementptr inbounds i8, ptr %0, i64 173248
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %647, ptr noundef nonnull %648, ptr noundef %1)
  %.not1119.not1259 = icmp sgt i64 %.11007, 0
  br i1 %.not1119.not1259, label %.preheader1131.lr.ph, label %._crit_edge1263

.preheader1131.lr.ph:                             ; preds = %646
  %649 = getelementptr inbounds i8, ptr %0, i64 1544
  %650 = getelementptr inbounds i8, ptr %0, i64 173176
  br label %.preheader1131

.preheader1131:                                   ; preds = %.preheader1131.lr.ph, %._crit_edge1256
  %.29991262 = phi double [ 1.000000e+300, %.preheader1131.lr.ph ], [ %.31000, %._crit_edge1256 ]
  %.110141261 = phi i64 [ -1, %.preheader1131.lr.ph ], [ %.21015, %._crit_edge1256 ]
  %.1410471260 = phi i64 [ 0, %.preheader1131.lr.ph ], [ %666, %._crit_edge1256 ]
  br i1 %.not1118.not1245, label %.lr.ph1255, label %._crit_edge1256

.lr.ph1255:                                       ; preds = %.preheader1131, %.lr.ph1255
  %.29911254 = phi double [ %663, %.lr.ph1255 ], [ 0.000000e+00, %.preheader1131 ]
  %.910301253 = phi i64 [ %664, %.lr.ph1255 ], [ 0, %.preheader1131 ]
  %651 = load ptr, ptr %649, align 8, !tbaa !59
  %652 = getelementptr inbounds ptr, ptr %651, i64 %.1410471260
  %653 = load ptr, ptr %652, align 8, !tbaa !98
  %654 = getelementptr double, ptr %653, i64 %.61090
  %655 = getelementptr double, ptr %654, i64 %.61078
  %656 = getelementptr double, ptr %655, i64 %.910301253
  %657 = load double, ptr %656, align 8, !tbaa !64
  %658 = load ptr, ptr %650, align 8, !tbaa !59
  %659 = getelementptr inbounds double, ptr %658, i64 %.910301253
  %660 = load double, ptr %659, align 8, !tbaa !64
  %661 = fsub double %657, %660
  %662 = tail call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %661, ptr noundef %1)
  %663 = fadd double %.29911254, %662
  %664 = add nuw nsw i64 %.910301253, 1
  %exitcond1309.not = icmp eq i64 %664, %.61078
  br i1 %exitcond1309.not, label %._crit_edge1256, label %.lr.ph1255, !llvm.loop !119

._crit_edge1256:                                  ; preds = %.lr.ph1255, %.preheader1131
  %.2991.lcssa = phi double [ 0.000000e+00, %.preheader1131 ], [ %663, %.lr.ph1255 ]
  %665 = tail call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %.2991.lcssa, double noundef %.29991262)
  %.21015 = select i1 %665, i64 %.1410471260, i64 %.110141261
  %.31000 = select i1 %665, double %.2991.lcssa, double %.29991262
  %666 = add nuw nsw i64 %.1410471260, 1
  %exitcond1310.not = icmp eq i64 %666, %.11007
  br i1 %exitcond1310.not, label %._crit_edge1263.loopexit, label %.preheader1131, !llvm.loop !120

._crit_edge1263.loopexit:                         ; preds = %._crit_edge1256
  %smax = tail call i64 @llvm.smax.i64(i64 %.61078, i64 0)
  br label %._crit_edge1263

._crit_edge1263:                                  ; preds = %._crit_edge1263.loopexit, %646
  %.141047.lcssa = phi i64 [ 0, %646 ], [ %.11007, %._crit_edge1263.loopexit ]
  %.81029.lcssa = phi i64 [ %.71028, %646 ], [ %smax, %._crit_edge1263.loopexit ]
  %.11014.lcssa = phi i64 [ -1, %646 ], [ %.21015, %._crit_edge1263.loopexit ]
  %.2999.lcssa = phi double [ 1.000000e+300, %646 ], [ %.31000, %._crit_edge1263.loopexit ]
  %.1990.lcssa = phi double [ %.0989, %646 ], [ %.2991.lcssa, %._crit_edge1263.loopexit ]
  %667 = icmp sgt i64 %.11014.lcssa, -1
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %667, ptr noundef nonnull @.str.1670, ptr noundef %1)
  %668 = getelementptr inbounds i8, ptr %0, i64 1472
  tail call void @_ZN11alglib_impl7rcopyrvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.61090, ptr noundef nonnull %668, i64 noundef %.11014.lcssa, ptr noundef nonnull %648, ptr noundef %1)
  %669 = getelementptr inbounds i8, ptr %0, i64 173304
  %670 = load ptr, ptr %669, align 8, !tbaa !59
  %671 = getelementptr inbounds double, ptr %670, i64 %.61090
  store double 0.000000e+00, ptr %671, align 8, !tbaa !64
  br i1 %626, label %672, label %674

672:                                              ; preds = %._crit_edge1263
  %673 = trunc i64 %.11014.lcssa to i32
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1671, i32 noundef %673)
  br label %674

674:                                              ; preds = %672, %._crit_edge1263
  %675 = getelementptr inbounds i8, ptr %0, i64 173336
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %647, ptr noundef nonnull %675, ptr noundef %1)
  %676 = getelementptr inbounds i8, ptr %0, i64 173400
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %647, ptr noundef nonnull %676, ptr noundef %1)
  %677 = getelementptr inbounds i8, ptr %0, i64 120
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.61090, ptr noundef nonnull %677, ptr noundef nonnull %675, ptr noundef %1)
  %678 = getelementptr inbounds i8, ptr %0, i64 184
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.61090, ptr noundef nonnull %678, ptr noundef nonnull %676, ptr noundef %1)
  %679 = getelementptr inbounds i8, ptr %1, i64 24
  %680 = load double, ptr %679, align 8, !tbaa !121
  %681 = getelementptr inbounds i8, ptr %0, i64 173392
  %682 = load ptr, ptr %681, align 8, !tbaa !59
  %683 = getelementptr inbounds double, ptr %682, i64 %.61090
  store double %680, ptr %683, align 8, !tbaa !64
  %684 = getelementptr inbounds i8, ptr %1, i64 16
  %685 = load double, ptr %684, align 8, !tbaa !122
  %686 = getelementptr inbounds i8, ptr %0, i64 173456
  %687 = load ptr, ptr %686, align 8, !tbaa !59
  %688 = getelementptr inbounds double, ptr %687, i64 %.61090
  store double %685, ptr %688, align 8, !tbaa !64
  %689 = getelementptr inbounds i8, ptr %0, i64 172760
  %690 = load i64, ptr %689, align 8, !tbaa !80
  %691 = icmp sgt i64 %690, 0
  br i1 %691, label %692, label %.loopexit

692:                                              ; preds = %674
  %693 = add nsw i64 %.61090, 2
  %694 = getelementptr inbounds i8, ptr %0, i64 173464
  tail call void @_ZN11alglib_impl7rallocmEllPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %690, i64 noundef %693, ptr noundef nonnull %694, ptr noundef nonnull %1)
  %695 = load i64, ptr %689, align 8, !tbaa !80
  %696 = getelementptr inbounds i8, ptr %0, i64 172616
  tail call void @_ZN11alglib_impl6rcopymEllPKNS_9ae_matrixEPS0_PNS_8ae_stateE(i64 noundef %695, i64 noundef %.61090, ptr noundef nonnull %696, ptr noundef nonnull %694, ptr noundef nonnull %1)
  %697 = load i64, ptr %689, align 8, !tbaa !80
  %.not1120.not1269 = icmp sgt i64 %697, 0
  br i1 %.not1120.not1269, label %.lr.ph1272, label %.loopexit

.lr.ph1272:                                       ; preds = %692
  %698 = getelementptr inbounds i8, ptr %0, i64 173536
  %699 = getelementptr inbounds i8, ptr %0, i64 172688
  %xtraiter1361 = and i64 %697, 1
  %700 = icmp eq i64 %697, 1
  br i1 %700, label %.loopexit.loopexit.unr-lcssa, label %.lr.ph1272.new

.lr.ph1272.new:                                   ; preds = %.lr.ph1272
  %unroll_iter1363 = and i64 %697, 9223372036854775806
  br label %701

701:                                              ; preds = %701, %.lr.ph1272.new
  %.151270 = phi i64 [ 0, %.lr.ph1272.new ], [ %729, %701 ]
  %niter1364 = phi i64 [ 0, %.lr.ph1272.new ], [ %niter1364.next.1, %701 ]
  %702 = load ptr, ptr %698, align 8, !tbaa !59
  %703 = getelementptr inbounds ptr, ptr %702, i64 %.151270
  %704 = load ptr, ptr %703, align 8, !tbaa !98
  %705 = getelementptr inbounds double, ptr %704, i64 %.61090
  store double 0.000000e+00, ptr %705, align 8, !tbaa !64
  %706 = load ptr, ptr %699, align 8, !tbaa !59
  %707 = getelementptr inbounds ptr, ptr %706, i64 %.151270
  %708 = load ptr, ptr %707, align 8, !tbaa !98
  %709 = getelementptr inbounds double, ptr %708, i64 %.61090
  %710 = load double, ptr %709, align 8, !tbaa !64
  %711 = load ptr, ptr %698, align 8, !tbaa !59
  %712 = getelementptr inbounds ptr, ptr %711, i64 %.151270
  %713 = load ptr, ptr %712, align 8, !tbaa !98
  %714 = getelementptr inbounds double, ptr %713, i64 %647
  store double %710, ptr %714, align 8, !tbaa !64
  %715 = or disjoint i64 %.151270, 1
  %716 = load ptr, ptr %698, align 8, !tbaa !59
  %717 = getelementptr inbounds ptr, ptr %716, i64 %715
  %718 = load ptr, ptr %717, align 8, !tbaa !98
  %719 = getelementptr inbounds double, ptr %718, i64 %.61090
  store double 0.000000e+00, ptr %719, align 8, !tbaa !64
  %720 = load ptr, ptr %699, align 8, !tbaa !59
  %721 = getelementptr inbounds ptr, ptr %720, i64 %715
  %722 = load ptr, ptr %721, align 8, !tbaa !98
  %723 = getelementptr inbounds double, ptr %722, i64 %.61090
  %724 = load double, ptr %723, align 8, !tbaa !64
  %725 = load ptr, ptr %698, align 8, !tbaa !59
  %726 = getelementptr inbounds ptr, ptr %725, i64 %715
  %727 = load ptr, ptr %726, align 8, !tbaa !98
  %728 = getelementptr inbounds double, ptr %727, i64 %647
  store double %724, ptr %728, align 8, !tbaa !64
  %729 = add nuw nsw i64 %.151270, 2
  %niter1364.next.1 = add i64 %niter1364, 2
  %niter1364.ncmp.1 = icmp eq i64 %niter1364.next.1, %unroll_iter1363
  br i1 %niter1364.ncmp.1, label %.loopexit.loopexit.unr-lcssa, label %701, !llvm.loop !123

.loopexit.loopexit.unr-lcssa:                     ; preds = %701, %.lr.ph1272
  %.151270.unr = phi i64 [ 0, %.lr.ph1272 ], [ %729, %701 ]
  %lcmp.mod1362.not = icmp eq i64 %xtraiter1361, 0
  br i1 %lcmp.mod1362.not, label %.loopexit, label %.loopexit.loopexit.epilog-lcssa

.loopexit.loopexit.epilog-lcssa:                  ; preds = %.loopexit.loopexit.unr-lcssa
  %730 = load ptr, ptr %698, align 8, !tbaa !59
  %731 = getelementptr inbounds ptr, ptr %730, i64 %.151270.unr
  %732 = load ptr, ptr %731, align 8, !tbaa !98
  %733 = getelementptr inbounds double, ptr %732, i64 %.61090
  store double 0.000000e+00, ptr %733, align 8, !tbaa !64
  %734 = load ptr, ptr %699, align 8, !tbaa !59
  %735 = getelementptr inbounds ptr, ptr %734, i64 %.151270.unr
  %736 = load ptr, ptr %735, align 8, !tbaa !98
  %737 = getelementptr inbounds double, ptr %736, i64 %.61090
  %738 = load double, ptr %737, align 8, !tbaa !64
  %739 = load ptr, ptr %698, align 8, !tbaa !59
  %740 = getelementptr inbounds ptr, ptr %739, i64 %.151270.unr
  %741 = load ptr, ptr %740, align 8, !tbaa !98
  %742 = getelementptr inbounds double, ptr %741, i64 %647
  store double %738, ptr %742, align 8, !tbaa !64
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit.epilog-lcssa, %.loopexit.loopexit.unr-lcssa, %692, %674
  %.16 = phi i64 [ %.141047.lcssa, %674 ], [ 0, %692 ], [ %697, %.loopexit.loopexit.unr-lcssa ], [ %697, %.loopexit.loopexit.epilog-lcssa ]
  br i1 %626, label %743, label %752

743:                                              ; preds = %.loopexit
  %744 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %744, align 8, !tbaa !81
  %745 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.61090, ptr noundef nonnull %648, ptr noundef nonnull %745, ptr noundef %1)
  br label %1229

746:                                              ; preds = %32
  %747 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %747, align 8, !tbaa !81
  %748 = getelementptr inbounds i8, ptr %0, i64 1576
  %749 = load i64, ptr %748, align 8, !tbaa !82
  %750 = add nsw i64 %749, 1
  store i64 %750, ptr %748, align 8, !tbaa !82
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1660)
  %751 = getelementptr inbounds i8, ptr %0, i64 1048
  tail call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %751, i64 noundef 0, i64 noundef %.01072, ptr noundef %1)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  %.pre = add nsw i64 %.01084, 1
  br label %752

752:                                              ; preds = %.loopexit, %746
  %.pre-phi = phi i64 [ %647, %.loopexit ], [ %.pre, %746 ]
  %.71091 = phi i64 [ %.61090, %.loopexit ], [ %.01084, %746 ]
  %.71079 = phi i64 [ %.61078, %.loopexit ], [ %.01072, %746 ]
  %.71067 = phi i64 [ %.61066, %.loopexit ], [ %.01060, %746 ]
  %.71055 = phi i64 [ %.61054, %.loopexit ], [ %.01048, %746 ]
  %.17 = phi i64 [ %.16, %.loopexit ], [ %.01033, %746 ]
  %.101031 = phi i64 [ %.81029.lcssa, %.loopexit ], [ %.01021, %746 ]
  %.31016 = phi i64 [ %.11014.lcssa, %.loopexit ], [ %.01013, %746 ]
  %.21008 = phi i64 [ %.11007, %.loopexit ], [ %.01006, %746 ]
  %.41001 = phi double [ %.2999.lcssa, %.loopexit ], [ %.0997, %746 ]
  %.3992 = phi double [ %.1990.lcssa, %.loopexit ], [ %.0989, %746 ]
  %.7 = phi i8 [ %.6, %.loopexit ], [ %.0, %746 ]
  %753 = getelementptr inbounds i8, ptr %0, i64 173248
  %754 = getelementptr inbounds i8, ptr %0, i64 1640
  tail call void @_ZN11alglib_impl12minnlccreateElPKNS_9ae_vectorEPNS_11minnlcstateEPNS_8ae_stateE(i64 noundef %.pre-phi, ptr noundef nonnull %753, ptr noundef nonnull %754, ptr noundef %1)
  %755 = getelementptr inbounds i8, ptr %0, i64 16
  %756 = load double, ptr %755, align 8, !tbaa !78
  %757 = getelementptr inbounds i8, ptr %0, i64 24
  %758 = load i64, ptr %757, align 8, !tbaa !79
  tail call void @_ZN11alglib_impl13minnlcsetcondEPNS_11minnlcstateEdlPNS_8ae_stateE(ptr noundef nonnull %754, double noundef %756, i64 noundef %758, ptr noundef %1)
  %759 = getelementptr inbounds i8, ptr %0, i64 173336
  %760 = getelementptr inbounds i8, ptr %0, i64 173400
  tail call void @_ZN11alglib_impl11minnlcsetbcEPNS_11minnlcstateEPKNS_9ae_vectorES4_PNS_8ae_stateE(ptr noundef nonnull %754, ptr noundef nonnull %759, ptr noundef nonnull %760, ptr noundef %1)
  %761 = getelementptr inbounds i8, ptr %0, i64 173464
  %762 = getelementptr inbounds i8, ptr %0, i64 172696
  %763 = getelementptr inbounds i8, ptr %0, i64 172760
  %764 = load i64, ptr %763, align 8, !tbaa !80
  tail call void @_ZN11alglib_impl11minnlcsetlcEPNS_11minnlcstateEPKNS_9ae_matrixEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %754, ptr noundef nonnull %761, ptr noundef nonnull %762, i64 noundef %764, ptr noundef %1)
  %765 = getelementptr inbounds i8, ptr %0, i64 172960
  %766 = load i64, ptr %765, align 8, !tbaa !83
  %767 = getelementptr inbounds i8, ptr %0, i64 172968
  %768 = load i64, ptr %767, align 8, !tbaa !84
  %769 = add nsw i64 %768, %.71079
  tail call void @_ZN11alglib_impl12minnlcsetnlcEPNS_11minnlcstateEllPNS_8ae_stateE(ptr noundef nonnull %754, i64 noundef %766, i64 noundef %769, ptr noundef %1)
  tail call void @_ZN11alglib_implL16monbi_setnlcalgoEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %754, ptr noundef %1)
  br label %.preheader1130

.preheader1130:                                   ; preds = %849, %.preheader1136, %752
  %.81092.ph = phi i64 [ %.71091, %752 ], [ %.01084, %.preheader1136 ], [ %.01084, %849 ]
  %.81080.ph = phi i64 [ %.71079, %752 ], [ %.01072, %.preheader1136 ], [ %.01072, %849 ]
  %.81068.ph = phi i64 [ %.71067, %752 ], [ %.01060, %.preheader1136 ], [ %.01060, %849 ]
  %.81056.ph = phi i64 [ %.71055, %752 ], [ %.01048, %.preheader1136 ], [ %.01048, %849 ]
  %.18.ph = phi i64 [ %.17, %752 ], [ 0, %.preheader1136 ], [ %.01072, %849 ]
  %.111032.ph = phi i64 [ %.101031, %752 ], [ %.01021, %.preheader1136 ], [ %.01021, %849 ]
  %.41017.ph = phi i64 [ %.31016, %752 ], [ %.01013, %.preheader1136 ], [ %.01013, %849 ]
  %.31009.ph = phi i64 [ %.21008, %752 ], [ %.01006, %.preheader1136 ], [ %.01006, %849 ]
  %.51002.ph = phi double [ %.41001, %752 ], [ %.0997, %.preheader1136 ], [ %.0997, %849 ]
  %.4993.ph = phi double [ %.3992, %752 ], [ %.0989, %.preheader1136 ], [ %.0989, %849 ]
  %.8.ph = phi i8 [ %.7, %752 ], [ %.0, %.preheader1136 ], [ %.0, %849 ]
  %770 = getelementptr inbounds i8, ptr %0, i64 1640
  %771 = tail call noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %770, ptr noundef %1)
  br i1 %771, label %.lr.ph1274, label %._crit_edge1275

.lr.ph1274:                                       ; preds = %.preheader1130
  %772 = getelementptr inbounds i8, ptr %0, i64 1464
  %773 = getelementptr inbounds i8, ptr %0, i64 4240
  br label %774

774:                                              ; preds = %.lr.ph1274, %890
  %775 = load i8, ptr %772, align 8, !tbaa !74, !range !62, !noundef !63
  %776 = trunc nuw i8 %775 to i1
  br i1 %776, label %777, label %779

777:                                              ; preds = %774
  %778 = getelementptr inbounds i8, ptr %0, i64 1584
  store i64 8, ptr %778, align 8, !tbaa !73
  br label %1253

779:                                              ; preds = %774
  %780 = load i8, ptr %773, align 8, !tbaa !85, !range !62, !noundef !63
  %781 = trunc nuw i8 %780 to i1
  br i1 %781, label %782, label %890

782:                                              ; preds = %779
  %783 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %783, align 8, !tbaa !81
  %784 = getelementptr inbounds i8, ptr %0, i64 4024
  %785 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.81092.ph, ptr noundef nonnull %784, ptr noundef nonnull %785, ptr noundef %1)
  br label %1229

786:                                              ; preds = %32
  %787 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %787, align 8, !tbaa !81
  %788 = getelementptr inbounds i8, ptr %0, i64 4080
  %789 = load ptr, ptr %788, align 8, !tbaa !59
  %790 = getelementptr inbounds double, ptr %789, i64 %.01084
  %791 = load double, ptr %790, align 8, !tbaa !64
  %792 = fneg double %791
  %793 = getelementptr inbounds i8, ptr %0, i64 4152
  %794 = load ptr, ptr %793, align 8, !tbaa !59
  store double %792, ptr %794, align 8, !tbaa !64
  %795 = add nsw i64 %.01084, 1
  %796 = getelementptr inbounds i8, ptr %0, i64 4160
  tail call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %795, double noundef 0.000000e+00, ptr noundef nonnull %796, i64 noundef 0, ptr noundef %1)
  %797 = getelementptr inbounds i8, ptr %0, i64 4232
  %798 = load ptr, ptr %797, align 8, !tbaa !59
  %799 = load ptr, ptr %798, align 8, !tbaa !98
  %800 = getelementptr inbounds double, ptr %799, i64 %.01084
  store double -1.000000e+00, ptr %800, align 8, !tbaa !64
  %801 = getelementptr inbounds i8, ptr %0, i64 172960
  %802 = getelementptr inbounds i8, ptr %0, i64 172968
  %803 = load i64, ptr %801, align 8, !tbaa !83
  %804 = load i64, ptr %802, align 8, !tbaa !84
  %805 = add nsw i64 %804, %803
  %.not.not11121177 = icmp sgt i64 %805, 0
  br i1 %.not.not11121177, label %.lr.ph1180, label %.preheader1136

.lr.ph1180:                                       ; preds = %786
  %806 = getelementptr inbounds i8, ptr %0, i64 1104
  %807 = getelementptr inbounds i8, ptr %0, i64 172824
  %808 = getelementptr inbounds i8, ptr %0, i64 172888
  %809 = getelementptr inbounds i8, ptr %0, i64 172952
  %810 = getelementptr inbounds i8, ptr %0, i64 1112
  br label %817

.preheader1136:                                   ; preds = %817, %786
  %.not.not11131181 = icmp sgt i64 %.01072, 0
  br i1 %.not.not11131181, label %.lr.ph1183, label %.preheader1130

.lr.ph1183:                                       ; preds = %.preheader1136
  %811 = getelementptr inbounds i8, ptr %0, i64 1104
  %812 = getelementptr inbounds i8, ptr %0, i64 173032
  %813 = getelementptr inbounds i8, ptr %0, i64 173240
  %814 = getelementptr inbounds i8, ptr %0, i64 173120
  %815 = getelementptr inbounds i8, ptr %0, i64 173040
  %816 = getelementptr inbounds i8, ptr %0, i64 1112
  br label %849

817:                                              ; preds = %.lr.ph1180, %817
  %.191178 = phi i64 [ 0, %.lr.ph1180 ], [ %833, %817 ]
  %818 = load ptr, ptr %806, align 8, !tbaa !59
  %819 = load ptr, ptr %807, align 8, !tbaa !59
  %820 = getelementptr inbounds i64, ptr %819, i64 %.191178
  %821 = load i64, ptr %820, align 8, !tbaa !60
  %822 = getelementptr double, ptr %818, i64 %.01072
  %823 = getelementptr double, ptr %822, i64 %821
  %824 = load double, ptr %823, align 8, !tbaa !64
  %825 = load ptr, ptr %808, align 8, !tbaa !59
  %826 = getelementptr inbounds double, ptr %825, i64 %.191178
  %827 = load double, ptr %826, align 8, !tbaa !64
  %828 = load ptr, ptr %809, align 8, !tbaa !59
  %829 = getelementptr inbounds double, ptr %828, i64 %.191178
  %830 = load double, ptr %829, align 8, !tbaa !64
  %831 = tail call double @llvm.fmuladd.f64(double %824, double %827, double %830)
  %832 = load ptr, ptr %793, align 8, !tbaa !59
  %833 = add nuw nsw i64 %.191178, 1
  %834 = getelementptr inbounds double, ptr %832, i64 %833
  store double %831, ptr %834, align 8, !tbaa !64
  %835 = load ptr, ptr %807, align 8, !tbaa !59
  %836 = getelementptr inbounds i64, ptr %835, i64 %.191178
  %837 = load i64, ptr %836, align 8, !tbaa !60
  %838 = add nsw i64 %837, %.01072
  tail call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %810, i64 noundef %838, ptr noundef nonnull %796, i64 noundef %833, ptr noundef %1)
  %839 = load ptr, ptr %808, align 8, !tbaa !59
  %840 = getelementptr inbounds double, ptr %839, i64 %.191178
  %841 = load double, ptr %840, align 8, !tbaa !64
  tail call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.01084, double noundef %841, ptr noundef nonnull %796, i64 noundef %833, ptr noundef %1)
  %842 = load ptr, ptr %797, align 8, !tbaa !59
  %843 = getelementptr inbounds ptr, ptr %842, i64 %833
  %844 = load ptr, ptr %843, align 8, !tbaa !98
  %845 = getelementptr inbounds double, ptr %844, i64 %.01084
  store double 0.000000e+00, ptr %845, align 8, !tbaa !64
  %846 = load i64, ptr %801, align 8, !tbaa !83
  %847 = load i64, ptr %802, align 8, !tbaa !84
  %848 = add nsw i64 %847, %846
  %.not.not1112 = icmp slt i64 %833, %848
  br i1 %.not.not1112, label %817, label %.preheader1136, !llvm.loop !124

849:                                              ; preds = %.lr.ph1183, %849
  %.201182 = phi i64 [ 0, %.lr.ph1183 ], [ %874, %849 ]
  %850 = load ptr, ptr %811, align 8, !tbaa !59
  %851 = getelementptr inbounds double, ptr %850, i64 %.201182
  %852 = load double, ptr %851, align 8, !tbaa !64
  %853 = load ptr, ptr %812, align 8, !tbaa !59
  %854 = getelementptr inbounds double, ptr %853, i64 %.201182
  %855 = load double, ptr %854, align 8, !tbaa !64
  %856 = fsub double %852, %855
  %857 = load ptr, ptr %788, align 8, !tbaa !59
  %858 = getelementptr inbounds double, ptr %857, i64 %.01084
  %859 = load double, ptr %858, align 8, !tbaa !64
  %860 = load ptr, ptr %813, align 8, !tbaa !59
  %861 = getelementptr inbounds double, ptr %860, i64 %.201182
  %862 = load double, ptr %861, align 8, !tbaa !64
  %863 = fneg double %859
  %864 = tail call double @llvm.fmuladd.f64(double %863, double %862, double %856)
  %865 = tail call noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.01072, ptr noundef nonnull %814, ptr noundef nonnull %815, i64 noundef %.201182, ptr noundef %1)
  %866 = fsub double %864, %865
  %867 = load ptr, ptr %793, align 8, !tbaa !59
  %868 = load i64, ptr %801, align 8, !tbaa !83
  %869 = load i64, ptr %802, align 8, !tbaa !84
  %870 = getelementptr double, ptr %867, i64 %868
  %871 = getelementptr i8, ptr %870, i64 8
  %872 = getelementptr double, ptr %871, i64 %869
  %873 = getelementptr double, ptr %872, i64 %.201182
  store double %866, ptr %873, align 8, !tbaa !64
  %874 = add nuw nsw i64 %.201182, 1
  %875 = add i64 %874, %868
  %876 = add i64 %875, %869
  tail call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %816, i64 noundef %.201182, ptr noundef nonnull %796, i64 noundef %876, ptr noundef %1)
  %877 = load ptr, ptr %813, align 8, !tbaa !59
  %878 = getelementptr inbounds double, ptr %877, i64 %.201182
  %879 = load double, ptr %878, align 8, !tbaa !64
  %880 = fneg double %879
  %881 = load ptr, ptr %797, align 8, !tbaa !59
  %882 = load i64, ptr %801, align 8, !tbaa !83
  %883 = load i64, ptr %802, align 8, !tbaa !84
  %884 = getelementptr ptr, ptr %881, i64 %882
  %885 = getelementptr i8, ptr %884, i64 8
  %886 = getelementptr ptr, ptr %885, i64 %883
  %887 = getelementptr ptr, ptr %886, i64 %.201182
  %888 = load ptr, ptr %887, align 8, !tbaa !98
  %889 = getelementptr inbounds double, ptr %888, i64 %.01084
  store double %880, ptr %889, align 8, !tbaa !64
  %exitcond1298.not = icmp eq i64 %874, %.01072
  br i1 %exitcond1298.not, label %.preheader1130, label %849, !llvm.loop !125

890:                                              ; preds = %779
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.1661, ptr noundef %1)
  %891 = tail call noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %770, ptr noundef %1)
  br i1 %891, label %774, label %._crit_edge1275

._crit_edge1275:                                  ; preds = %890, %.preheader1130
  %892 = getelementptr inbounds i8, ptr %0, i64 173544
  %893 = getelementptr inbounds i8, ptr %0, i64 172088
  tail call void @_ZN11alglib_impl16minnlcresultsbufEPKNS_11minnlcstateEPNS_9ae_vectorEPNS_12minnlcreportEPNS_8ae_stateE(ptr noundef nonnull %770, ptr noundef nonnull %892, ptr noundef nonnull %893, ptr noundef %1)
  %894 = getelementptr inbounds i8, ptr %0, i64 172104
  %895 = load i64, ptr %894, align 8, !tbaa !88
  %896 = icmp eq i64 %895, -8
  br i1 %896, label %897, label %900

897:                                              ; preds = %._crit_edge1275
  %898 = getelementptr inbounds i8, ptr %0, i64 1584
  store i64 -8, ptr %898, align 8, !tbaa !73
  %899 = getelementptr inbounds i8, ptr %0, i64 1552
  store i64 0, ptr %899, align 8, !tbaa !72
  br label %1253

900:                                              ; preds = %._crit_edge1275
  %901 = icmp sgt i64 %895, 0
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %901, ptr noundef nonnull @.str.1662, ptr noundef %1)
  %902 = getelementptr inbounds i8, ptr %0, i64 1560
  %903 = load i64, ptr %902, align 8, !tbaa !89
  %904 = load i64, ptr %893, align 8, !tbaa !90
  %905 = add nsw i64 %904, %903
  store i64 %905, ptr %902, align 8, !tbaa !89
  %906 = getelementptr inbounds i8, ptr %0, i64 1576
  %907 = load i64, ptr %906, align 8, !tbaa !82
  %908 = getelementptr inbounds i8, ptr %0, i64 172096
  %909 = load i64, ptr %908, align 8, !tbaa !91
  %910 = add nsw i64 %909, %907
  store i64 %910, ptr %906, align 8, !tbaa !82
  %911 = trunc nuw i8 %.8.ph to i1
  br i1 %911, label %912, label %931

912:                                              ; preds = %900
  %913 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %913, align 8, !tbaa !81
  %914 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.81092.ph, ptr noundef nonnull %892, ptr noundef nonnull %914, ptr noundef %1)
  br label %1229

915:                                              ; preds = %32
  %916 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %916, align 8, !tbaa !81
  %917 = getelementptr inbounds i8, ptr %0, i64 1576
  %918 = load i64, ptr %917, align 8, !tbaa !82
  %919 = add nsw i64 %918, 1
  store i64 %919, ptr %917, align 8, !tbaa !82
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1663)
  %920 = getelementptr inbounds i8, ptr %0, i64 1048
  tail call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %920, i64 noundef 0, i64 noundef %.01072, ptr noundef %1)
  %921 = getelementptr inbounds i8, ptr %0, i64 172088
  %922 = load i64, ptr %921, align 8, !tbaa !90
  %923 = trunc i64 %922 to i32
  %924 = getelementptr inbounds i8, ptr %0, i64 172112
  %925 = load double, ptr %924, align 8, !tbaa !92
  %926 = getelementptr inbounds i8, ptr %0, i64 172128
  %927 = load double, ptr %926, align 8, !tbaa !93
  %928 = getelementptr inbounds i8, ptr %0, i64 172144
  %929 = load double, ptr %928, align 8, !tbaa !94
  %930 = tail call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %925, double noundef %927, double noundef %929, ptr noundef %1)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1664, i32 noundef %923, double noundef %930)
  br label %931

931:                                              ; preds = %900, %915
  %.91093 = phi i64 [ %.81092.ph, %900 ], [ %.01084, %915 ]
  %.91081 = phi i64 [ %.81080.ph, %900 ], [ %.01072, %915 ]
  %.91069 = phi i64 [ %.81068.ph, %900 ], [ %.01060, %915 ]
  %.91057 = phi i64 [ %.81056.ph, %900 ], [ %.01048, %915 ]
  %.21 = phi i64 [ %.18.ph, %900 ], [ %.01033, %915 ]
  %.12 = phi i64 [ %.111032.ph, %900 ], [ %.01021, %915 ]
  %.51018 = phi i64 [ %.41017.ph, %900 ], [ %.01013, %915 ]
  %.41010 = phi i64 [ %.31009.ph, %900 ], [ %.01006, %915 ]
  %.61003 = phi double [ %.51002.ph, %900 ], [ %.0997, %915 ]
  %.5994 = phi double [ %.4993.ph, %900 ], [ %.0989, %915 ]
  %.9 = phi i8 [ %.8.ph, %900 ], [ %.0, %915 ]
  %932 = getelementptr inbounds i8, ptr %0, i64 112
  %933 = load i8, ptr %932, align 8, !tbaa !95, !range !62, !noundef !63
  %934 = trunc nuw i8 %933 to i1
  br i1 %934, label %935, label %1097

935:                                              ; preds = %931
  %936 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %936, align 8, !tbaa !81
  %937 = getelementptr inbounds i8, ptr %0, i64 173544
  %938 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.91093, ptr noundef nonnull %937, ptr noundef nonnull %938, ptr noundef %1)
  br label %1229

939:                                              ; preds = %32
  %940 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %940, align 8, !tbaa !81
  %941 = getelementptr inbounds i8, ptr %0, i64 1576
  %942 = load i64, ptr %941, align 8, !tbaa !82
  %943 = add nsw i64 %942, 1
  store i64 %943, ptr %941, align 8, !tbaa !82
  %944 = getelementptr inbounds i8, ptr %0, i64 840
  %945 = load i64, ptr %944, align 8, !tbaa !77
  %946 = add nsw i64 %945, %.01072
  %947 = getelementptr inbounds i8, ptr %0, i64 1048
  %948 = getelementptr inbounds i8, ptr %0, i64 173672
  tail call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %946, ptr noundef nonnull %947, ptr noundef nonnull %948, ptr noundef %1)
  %949 = getelementptr inbounds i8, ptr %0, i64 173544
  %950 = getelementptr inbounds i8, ptr %0, i64 1640
  tail call void @_ZN11alglib_impl12minnlccreateElPKNS_9ae_vectorEPNS_11minnlcstateEPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %949, ptr noundef nonnull %950, ptr noundef %1)
  %951 = getelementptr inbounds i8, ptr %0, i64 16
  %952 = load double, ptr %951, align 8, !tbaa !78
  %953 = getelementptr inbounds i8, ptr %0, i64 24
  %954 = load i64, ptr %953, align 8, !tbaa !79
  tail call void @_ZN11alglib_impl13minnlcsetcondEPNS_11minnlcstateEdlPNS_8ae_stateE(ptr noundef nonnull %950, double noundef %952, i64 noundef %954, ptr noundef %1)
  %955 = getelementptr inbounds i8, ptr %0, i64 173336
  %956 = getelementptr inbounds i8, ptr %0, i64 173400
  tail call void @_ZN11alglib_impl11minnlcsetbcEPNS_11minnlcstateEPKNS_9ae_vectorES4_PNS_8ae_stateE(ptr noundef nonnull %950, ptr noundef nonnull %955, ptr noundef nonnull %956, ptr noundef %1)
  %957 = getelementptr inbounds i8, ptr %0, i64 172616
  %958 = getelementptr inbounds i8, ptr %0, i64 172696
  %959 = getelementptr inbounds i8, ptr %0, i64 172760
  %960 = load i64, ptr %959, align 8, !tbaa !80
  tail call void @_ZN11alglib_impl11minnlcsetlcEPNS_11minnlcstateEPKNS_9ae_matrixEPKNS_9ae_vectorElPNS_8ae_stateE(ptr noundef nonnull %950, ptr noundef nonnull %957, ptr noundef nonnull %958, i64 noundef %960, ptr noundef %1)
  %961 = getelementptr inbounds i8, ptr %0, i64 172960
  %962 = load i64, ptr %961, align 8, !tbaa !83
  %963 = getelementptr inbounds i8, ptr %0, i64 172968
  %964 = load i64, ptr %963, align 8, !tbaa !84
  %965 = add nsw i64 %964, %.01072
  tail call void @_ZN11alglib_impl12minnlcsetnlcEPNS_11minnlcstateEllPNS_8ae_stateE(ptr noundef nonnull %950, i64 noundef %962, i64 noundef %965, ptr noundef %1)
  tail call void @_ZN11alglib_implL16monbi_setnlcalgoEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %950, ptr noundef %1)
  br label %.preheader1137

.preheader1137:                                   ; preds = %1038, %.preheader1138, %939
  %.22.ph = phi i64 [ %.01033, %939 ], [ 0, %.preheader1138 ], [ %.01072, %1038 ]
  %966 = getelementptr inbounds i8, ptr %0, i64 1640
  %967 = tail call noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %966, ptr noundef %1)
  br i1 %967, label %.lr.ph1174, label %._crit_edge1175

.lr.ph1174:                                       ; preds = %.preheader1137
  %968 = getelementptr inbounds i8, ptr %0, i64 1464
  %969 = getelementptr inbounds i8, ptr %0, i64 4240
  br label %970

970:                                              ; preds = %.lr.ph1174, %1056
  %971 = load i8, ptr %968, align 8, !tbaa !74, !range !62, !noundef !63
  %972 = trunc nuw i8 %971 to i1
  br i1 %972, label %973, label %975

973:                                              ; preds = %970
  %974 = getelementptr inbounds i8, ptr %0, i64 1584
  store i64 8, ptr %974, align 8, !tbaa !73
  br label %1253

975:                                              ; preds = %970
  %976 = load i8, ptr %969, align 8, !tbaa !85, !range !62, !noundef !63
  %977 = trunc nuw i8 %976 to i1
  br i1 %977, label %978, label %1056

978:                                              ; preds = %975
  %979 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %979, align 8, !tbaa !81
  %980 = getelementptr inbounds i8, ptr %0, i64 4024
  %981 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %980, ptr noundef nonnull %981, ptr noundef %1)
  br label %1229

982:                                              ; preds = %32
  %983 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %983, align 8, !tbaa !81
  %984 = getelementptr inbounds i8, ptr %0, i64 4152
  %985 = load ptr, ptr %984, align 8, !tbaa !59
  store double 0.000000e+00, ptr %985, align 8, !tbaa !64
  %986 = getelementptr inbounds i8, ptr %0, i64 4160
  tail call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.01084, double noundef 0.000000e+00, ptr noundef nonnull %986, i64 noundef 0, ptr noundef %1)
  %.not.not11091163 = icmp sgt i64 %.01072, 0
  br i1 %.not.not11091163, label %.lr.ph1166, label %.preheader1139

.lr.ph1166:                                       ; preds = %982
  %987 = getelementptr inbounds i8, ptr %0, i64 1104
  %988 = getelementptr inbounds i8, ptr %0, i64 1112
  br label %999

.preheader1139:                                   ; preds = %999, %982
  %989 = getelementptr inbounds i8, ptr %0, i64 172960
  %990 = getelementptr inbounds i8, ptr %0, i64 172968
  %991 = load i64, ptr %989, align 8, !tbaa !83
  %992 = load i64, ptr %990, align 8, !tbaa !84
  %993 = add nsw i64 %992, %991
  %.not.not11101167 = icmp sgt i64 %993, 0
  br i1 %.not.not11101167, label %.lr.ph1169, label %.preheader1138

.lr.ph1169:                                       ; preds = %.preheader1139
  %994 = getelementptr inbounds i8, ptr %0, i64 1104
  %995 = getelementptr inbounds i8, ptr %0, i64 172824
  %996 = getelementptr inbounds i8, ptr %0, i64 172888
  %997 = getelementptr inbounds i8, ptr %0, i64 172952
  %998 = getelementptr inbounds i8, ptr %0, i64 1112
  br label %1010

999:                                              ; preds = %.lr.ph1166, %999
  %.231164 = phi i64 [ 0, %.lr.ph1166 ], [ %1006, %999 ]
  %1000 = load ptr, ptr %984, align 8, !tbaa !59
  %1001 = load double, ptr %1000, align 8, !tbaa !64
  %1002 = load ptr, ptr %987, align 8, !tbaa !59
  %1003 = getelementptr inbounds double, ptr %1002, i64 %.231164
  %1004 = load double, ptr %1003, align 8, !tbaa !64
  %1005 = fadd double %1001, %1004
  store double %1005, ptr %1000, align 8, !tbaa !64
  tail call void @_ZN11alglib_impl6raddrrEldPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %.01084, double noundef 1.000000e+00, ptr noundef nonnull %988, i64 noundef %.231164, ptr noundef nonnull %986, i64 noundef 0, ptr noundef %1)
  %1006 = add nuw nsw i64 %.231164, 1
  %exitcond1296.not = icmp eq i64 %1006, %.01072
  br i1 %exitcond1296.not, label %.preheader1139, label %999, !llvm.loop !126

.preheader1138:                                   ; preds = %1010, %.preheader1139
  br i1 %.not.not11091163, label %.lr.ph1172, label %.preheader1137

.lr.ph1172:                                       ; preds = %.preheader1138
  %1007 = getelementptr inbounds i8, ptr %0, i64 1104
  %1008 = getelementptr inbounds i8, ptr %0, i64 173728
  %1009 = getelementptr inbounds i8, ptr %0, i64 1112
  br label %1038

1010:                                             ; preds = %.lr.ph1169, %1010
  %.241168 = phi i64 [ 0, %.lr.ph1169 ], [ %1026, %1010 ]
  %1011 = load ptr, ptr %994, align 8, !tbaa !59
  %1012 = load ptr, ptr %995, align 8, !tbaa !59
  %1013 = getelementptr inbounds i64, ptr %1012, i64 %.241168
  %1014 = load i64, ptr %1013, align 8, !tbaa !60
  %1015 = getelementptr double, ptr %1011, i64 %.01072
  %1016 = getelementptr double, ptr %1015, i64 %1014
  %1017 = load double, ptr %1016, align 8, !tbaa !64
  %1018 = load ptr, ptr %996, align 8, !tbaa !59
  %1019 = getelementptr inbounds double, ptr %1018, i64 %.241168
  %1020 = load double, ptr %1019, align 8, !tbaa !64
  %1021 = load ptr, ptr %997, align 8, !tbaa !59
  %1022 = getelementptr inbounds double, ptr %1021, i64 %.241168
  %1023 = load double, ptr %1022, align 8, !tbaa !64
  %1024 = tail call double @llvm.fmuladd.f64(double %1017, double %1020, double %1023)
  %1025 = load ptr, ptr %984, align 8, !tbaa !59
  %1026 = add nuw nsw i64 %.241168, 1
  %1027 = getelementptr inbounds double, ptr %1025, i64 %1026
  store double %1024, ptr %1027, align 8, !tbaa !64
  %1028 = load ptr, ptr %995, align 8, !tbaa !59
  %1029 = getelementptr inbounds i64, ptr %1028, i64 %.241168
  %1030 = load i64, ptr %1029, align 8, !tbaa !60
  %1031 = add nsw i64 %1030, %.01072
  tail call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %998, i64 noundef %1031, ptr noundef nonnull %986, i64 noundef %1026, ptr noundef %1)
  %1032 = load ptr, ptr %996, align 8, !tbaa !59
  %1033 = getelementptr inbounds double, ptr %1032, i64 %.241168
  %1034 = load double, ptr %1033, align 8, !tbaa !64
  tail call void @_ZN11alglib_impl5rmulrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.01084, double noundef %1034, ptr noundef nonnull %986, i64 noundef %1026, ptr noundef %1)
  %1035 = load i64, ptr %989, align 8, !tbaa !83
  %1036 = load i64, ptr %990, align 8, !tbaa !84
  %1037 = add nsw i64 %1036, %1035
  %.not.not1110 = icmp slt i64 %1026, %1037
  br i1 %.not.not1110, label %1010, label %.preheader1138, !llvm.loop !127

1038:                                             ; preds = %.lr.ph1172, %1038
  %.251171 = phi i64 [ 0, %.lr.ph1172 ], [ %1053, %1038 ]
  %1039 = load ptr, ptr %1007, align 8, !tbaa !59
  %1040 = getelementptr inbounds double, ptr %1039, i64 %.251171
  %1041 = load double, ptr %1040, align 8, !tbaa !64
  %1042 = load ptr, ptr %1008, align 8, !tbaa !59
  %1043 = getelementptr inbounds double, ptr %1042, i64 %.251171
  %1044 = load double, ptr %1043, align 8, !tbaa !64
  %1045 = fsub double %1041, %1044
  %1046 = load ptr, ptr %984, align 8, !tbaa !59
  %1047 = load i64, ptr %989, align 8, !tbaa !83
  %1048 = load i64, ptr %990, align 8, !tbaa !84
  %1049 = getelementptr double, ptr %1046, i64 %1047
  %1050 = getelementptr i8, ptr %1049, i64 8
  %1051 = getelementptr double, ptr %1050, i64 %1048
  %1052 = getelementptr double, ptr %1051, i64 %.251171
  store double %1045, ptr %1052, align 8, !tbaa !64
  %1053 = add nuw nsw i64 %.251171, 1
  %1054 = add i64 %1053, %1047
  %1055 = add i64 %1054, %1048
  tail call void @_ZN11alglib_impl7rcopyrrElPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %1009, i64 noundef %.251171, ptr noundef nonnull %986, i64 noundef %1055, ptr noundef %1)
  %exitcond1297.not = icmp eq i64 %1053, %.01072
  br i1 %exitcond1297.not, label %.preheader1137, label %1038, !llvm.loop !128

1056:                                             ; preds = %975
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.1661, ptr noundef %1)
  %1057 = tail call noundef zeroext i1 @_ZN11alglib_impl15minnlciterationEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef nonnull %966, ptr noundef %1)
  br i1 %1057, label %970, label %._crit_edge1175

._crit_edge1175:                                  ; preds = %1056, %.preheader1137
  %1058 = getelementptr inbounds i8, ptr %0, i64 173608
  %1059 = getelementptr inbounds i8, ptr %0, i64 172088
  tail call void @_ZN11alglib_impl16minnlcresultsbufEPKNS_11minnlcstateEPNS_9ae_vectorEPNS_12minnlcreportEPNS_8ae_stateE(ptr noundef nonnull %966, ptr noundef nonnull %1058, ptr noundef nonnull %1059, ptr noundef %1)
  %1060 = getelementptr inbounds i8, ptr %0, i64 172104
  %1061 = load i64, ptr %1060, align 8, !tbaa !88
  %1062 = icmp eq i64 %1061, -8
  br i1 %1062, label %1063, label %1066

1063:                                             ; preds = %._crit_edge1175
  %1064 = getelementptr inbounds i8, ptr %0, i64 1584
  store i64 -8, ptr %1064, align 8, !tbaa !73
  %1065 = getelementptr inbounds i8, ptr %0, i64 1552
  store i64 0, ptr %1065, align 8, !tbaa !72
  br label %1253

1066:                                             ; preds = %._crit_edge1175
  %1067 = icmp sgt i64 %1061, 0
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1067, ptr noundef nonnull @.str.1662, ptr noundef %1)
  %1068 = getelementptr inbounds i8, ptr %0, i64 1560
  %1069 = load i64, ptr %1068, align 8, !tbaa !89
  %1070 = load i64, ptr %1059, align 8, !tbaa !90
  %1071 = add nsw i64 %1070, %1069
  store i64 %1071, ptr %1068, align 8, !tbaa !89
  %1072 = getelementptr inbounds i8, ptr %0, i64 1576
  %1073 = load i64, ptr %1072, align 8, !tbaa !82
  %1074 = getelementptr inbounds i8, ptr %0, i64 172096
  %1075 = load i64, ptr %1074, align 8, !tbaa !91
  %1076 = add nsw i64 %1075, %1073
  store i64 %1076, ptr %1072, align 8, !tbaa !82
  %1077 = trunc nuw i8 %.0 to i1
  br i1 %1077, label %1078, label %1100

1078:                                             ; preds = %1066
  %1079 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %1079, align 8, !tbaa !81
  %1080 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %1058, ptr noundef nonnull %1080, ptr noundef %1)
  br label %1229

1081:                                             ; preds = %32
  %1082 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %1082, align 8, !tbaa !81
  %1083 = getelementptr inbounds i8, ptr %0, i64 1576
  %1084 = load i64, ptr %1083, align 8, !tbaa !82
  %1085 = add nsw i64 %1084, 1
  store i64 %1085, ptr %1083, align 8, !tbaa !82
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1666)
  %1086 = getelementptr inbounds i8, ptr %0, i64 1048
  tail call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %1086, i64 noundef 0, i64 noundef %.01072, ptr noundef %1)
  %1087 = getelementptr inbounds i8, ptr %0, i64 172088
  %1088 = load i64, ptr %1087, align 8, !tbaa !90
  %1089 = trunc i64 %1088 to i32
  %1090 = getelementptr inbounds i8, ptr %0, i64 172112
  %1091 = load double, ptr %1090, align 8, !tbaa !92
  %1092 = getelementptr inbounds i8, ptr %0, i64 172128
  %1093 = load double, ptr %1092, align 8, !tbaa !93
  %1094 = getelementptr inbounds i8, ptr %0, i64 172144
  %1095 = load double, ptr %1094, align 8, !tbaa !94
  %1096 = tail call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %1091, double noundef %1093, double noundef %1095, ptr noundef %1)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1664, i32 noundef %1089, double noundef %1096)
  br label %1100

1097:                                             ; preds = %931
  %1098 = getelementptr inbounds i8, ptr %0, i64 173544
  %1099 = getelementptr inbounds i8, ptr %0, i64 173608
  tail call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.91093, ptr noundef nonnull %1098, ptr noundef nonnull %1099, ptr noundef %1)
  br label %1100

1100:                                             ; preds = %1081, %1066, %1097
  %.101094 = phi i64 [ %.91093, %1097 ], [ %.01084, %1066 ], [ %.01084, %1081 ]
  %.101082 = phi i64 [ %.91081, %1097 ], [ %.01072, %1066 ], [ %.01072, %1081 ]
  %.101070 = phi i64 [ %.91069, %1097 ], [ %.01060, %1066 ], [ %.01060, %1081 ]
  %.101058 = phi i64 [ %.91057, %1097 ], [ %.01048, %1066 ], [ %.01048, %1081 ]
  %.26 = phi i64 [ %.21, %1097 ], [ %.22.ph, %1066 ], [ %.01033, %1081 ]
  %.13 = phi i64 [ %.12, %1097 ], [ %.01021, %1066 ], [ %.01021, %1081 ]
  %.61019 = phi i64 [ %.51018, %1097 ], [ %.01013, %1066 ], [ %.01013, %1081 ]
  %.51011 = phi i64 [ %.41010, %1097 ], [ %.01006, %1066 ], [ %.01006, %1081 ]
  %.71004 = phi double [ %.61003, %1097 ], [ %.0997, %1066 ], [ %.0997, %1081 ]
  %.6995 = phi double [ %.5994, %1097 ], [ %.0989, %1066 ], [ %.0989, %1081 ]
  %.10 = phi i8 [ %.9, %1097 ], [ %.0, %1066 ], [ %.0, %1081 ]
  %1101 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 1, ptr %1101, align 8, !tbaa !81
  %1102 = getelementptr inbounds i8, ptr %0, i64 173608
  %1103 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.101094, ptr noundef nonnull %1102, ptr noundef nonnull %1103, ptr noundef %1)
  br label %1229

1104:                                             ; preds = %32
  %1105 = getelementptr inbounds i8, ptr %0, i64 1192
  store i8 0, ptr %1105, align 8, !tbaa !81
  %1106 = getelementptr inbounds i8, ptr %0, i64 1576
  %1107 = load i64, ptr %1106, align 8, !tbaa !82
  %1108 = add nsw i64 %1107, 1
  store i64 %1108, ptr %1106, align 8, !tbaa !82
  %1109 = getelementptr inbounds i8, ptr %0, i64 1552
  %1110 = load i64, ptr %1109, align 8, !tbaa !72
  %1111 = icmp slt i64 %1110, %.01048
  tail call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1111, ptr noundef nonnull @.str.1672, ptr noundef %1)
  %1112 = getelementptr inbounds i8, ptr %0, i64 173608
  %1113 = getelementptr inbounds i8, ptr %0, i64 1472
  %1114 = load i64, ptr %1109, align 8, !tbaa !72
  tail call void @_ZN11alglib_impl7rcopyvrElPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %1112, ptr noundef nonnull %1113, i64 noundef %1114, ptr noundef %1)
  %.not.not1158 = icmp sgt i64 %.01072, 0
  %.pre.pre = load i64, ptr %1109, align 8, !tbaa !72
  br i1 %.not.not1158, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %1104
  %1115 = getelementptr inbounds i8, ptr %0, i64 1104
  %1116 = getelementptr inbounds i8, ptr %0, i64 1544
  %1117 = add nsw i64 %.01072, -1
  %xtraiter = and i64 %.01072, 1
  %1118 = icmp eq i64 %1117, 0
  br i1 %1118, label %.preheader1140.unr-lcssa, label %.lr.ph.new

.lr.ph.new:                                       ; preds = %.lr.ph
  %unroll_iter = and i64 %.01072, 9223372036854775806
  br label %1130

.preheader1140.unr-lcssa:                         ; preds = %1130, %.lr.ph
  %.271159.unr = phi i64 [ 0, %.lr.ph ], [ %1148, %1130 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.preheader1140, label %.preheader1140.epilog-lcssa

.preheader1140.epilog-lcssa:                      ; preds = %.preheader1140.unr-lcssa
  %1119 = load ptr, ptr %1115, align 8, !tbaa !59
  %1120 = getelementptr inbounds double, ptr %1119, i64 %.271159.unr
  %1121 = load double, ptr %1120, align 8, !tbaa !64
  %1122 = load ptr, ptr %1116, align 8, !tbaa !59
  %1123 = getelementptr inbounds ptr, ptr %1122, i64 %.pre.pre
  %1124 = load ptr, ptr %1123, align 8, !tbaa !98
  %1125 = getelementptr double, ptr %1124, i64 %.01084
  %1126 = getelementptr double, ptr %1125, i64 %.271159.unr
  store double %1121, ptr %1126, align 8, !tbaa !64
  br label %.preheader1140

.preheader1140:                                   ; preds = %.preheader1140.unr-lcssa, %.preheader1140.epilog-lcssa
  br i1 %.not.not1158, label %.lr.ph1162, label %._crit_edge

.lr.ph1162:                                       ; preds = %.preheader1140
  %1127 = getelementptr inbounds i8, ptr %0, i64 173176
  %1128 = getelementptr inbounds i8, ptr %0, i64 1544
  %xtraiter1337 = and i64 %.01072, 1
  %1129 = icmp eq i64 %1117, 0
  br i1 %1129, label %._crit_edge.loopexit.unr-lcssa, label %.lr.ph1162.new

.lr.ph1162.new:                                   ; preds = %.lr.ph1162
  %unroll_iter1339 = and i64 %.01072, 9223372036854775806
  br label %1149

1130:                                             ; preds = %1130, %.lr.ph.new
  %.271159 = phi i64 [ 0, %.lr.ph.new ], [ %1148, %1130 ]
  %niter = phi i64 [ 0, %.lr.ph.new ], [ %niter.next.1, %1130 ]
  %1131 = load ptr, ptr %1115, align 8, !tbaa !59
  %1132 = getelementptr inbounds double, ptr %1131, i64 %.271159
  %1133 = load double, ptr %1132, align 8, !tbaa !64
  %1134 = load ptr, ptr %1116, align 8, !tbaa !59
  %1135 = getelementptr inbounds ptr, ptr %1134, i64 %.pre.pre
  %1136 = load ptr, ptr %1135, align 8, !tbaa !98
  %1137 = getelementptr double, ptr %1136, i64 %.01084
  %1138 = getelementptr double, ptr %1137, i64 %.271159
  store double %1133, ptr %1138, align 8, !tbaa !64
  %1139 = or disjoint i64 %.271159, 1
  %1140 = load ptr, ptr %1115, align 8, !tbaa !59
  %1141 = getelementptr inbounds double, ptr %1140, i64 %1139
  %1142 = load double, ptr %1141, align 8, !tbaa !64
  %1143 = load ptr, ptr %1116, align 8, !tbaa !59
  %1144 = getelementptr inbounds ptr, ptr %1143, i64 %.pre.pre
  %1145 = load ptr, ptr %1144, align 8, !tbaa !98
  %1146 = getelementptr double, ptr %1145, i64 %.01084
  %1147 = getelementptr double, ptr %1146, i64 %1139
  store double %1142, ptr %1147, align 8, !tbaa !64
  %1148 = add nuw nsw i64 %.271159, 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 %.preheader1140.unr-lcssa, label %1130, !llvm.loop !129

1149:                                             ; preds = %1149, %.lr.ph1162.new
  %.281161 = phi i64 [ 0, %.lr.ph1162.new ], [ %1169, %1149 ]
  %niter1340 = phi i64 [ 0, %.lr.ph1162.new ], [ %niter1340.next.1, %1149 ]
  %1150 = load ptr, ptr %1127, align 8, !tbaa !59
  %1151 = getelementptr inbounds double, ptr %1150, i64 %.281161
  %1152 = load double, ptr %1151, align 8, !tbaa !64
  %1153 = load ptr, ptr %1128, align 8, !tbaa !59
  %1154 = getelementptr inbounds ptr, ptr %1153, i64 %.pre.pre
  %1155 = load ptr, ptr %1154, align 8, !tbaa !98
  %1156 = getelementptr double, ptr %1155, i64 %.01084
  %1157 = getelementptr double, ptr %1156, i64 %.01072
  %1158 = getelementptr double, ptr %1157, i64 %.281161
  store double %1152, ptr %1158, align 8, !tbaa !64
  %1159 = or disjoint i64 %.281161, 1
  %1160 = load ptr, ptr %1127, align 8, !tbaa !59
  %1161 = getelementptr inbounds double, ptr %1160, i64 %1159
  %1162 = load double, ptr %1161, align 8, !tbaa !64
  %1163 = load ptr, ptr %1128, align 8, !tbaa !59
  %1164 = getelementptr inbounds ptr, ptr %1163, i64 %.pre.pre
  %1165 = load ptr, ptr %1164, align 8, !tbaa !98
  %1166 = getelementptr double, ptr %1165, i64 %.01084
  %1167 = getelementptr double, ptr %1166, i64 %.01072
  %1168 = getelementptr double, ptr %1167, i64 %1159
  store double %1162, ptr %1168, align 8, !tbaa !64
  %1169 = add nuw nsw i64 %.281161, 2
  %niter1340.next.1 = add i64 %niter1340, 2
  %niter1340.ncmp.1 = icmp eq i64 %niter1340.next.1, %unroll_iter1339
  br i1 %niter1340.ncmp.1, label %._crit_edge.loopexit.unr-lcssa, label %1149, !llvm.loop !130

._crit_edge.loopexit.unr-lcssa:                   ; preds = %1149, %.lr.ph1162
  %.281161.unr = phi i64 [ 0, %.lr.ph1162 ], [ %1169, %1149 ]
  %lcmp.mod1338.not = icmp eq i64 %xtraiter1337, 0
  br i1 %lcmp.mod1338.not, label %._crit_edge, label %._crit_edge.loopexit.epilog-lcssa

._crit_edge.loopexit.epilog-lcssa:                ; preds = %._crit_edge.loopexit.unr-lcssa
  %1170 = load ptr, ptr %1127, align 8, !tbaa !59
  %1171 = getelementptr inbounds double, ptr %1170, i64 %.281161.unr
  %1172 = load double, ptr %1171, align 8, !tbaa !64
  %1173 = load ptr, ptr %1128, align 8, !tbaa !59
  %1174 = getelementptr inbounds ptr, ptr %1173, i64 %.pre.pre
  %1175 = load ptr, ptr %1174, align 8, !tbaa !98
  %1176 = getelementptr double, ptr %1175, i64 %.01084
  %1177 = getelementptr double, ptr %1176, i64 %.01072
  %1178 = getelementptr double, ptr %1177, i64 %.281161.unr
  store double %1172, ptr %1178, align 8, !tbaa !64
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit.epilog-lcssa, %._crit_edge.loopexit.unr-lcssa, %1104, %.preheader1140
  %.28.lcssa = phi i64 [ 0, %.preheader1140 ], [ 0, %1104 ], [ %.01072, %._crit_edge.loopexit.unr-lcssa ], [ %.01072, %._crit_edge.loopexit.epilog-lcssa ]
  %1179 = add nsw i64 %.pre.pre, 1
  store i64 %1179, ptr %1109, align 8, !tbaa !72
  %1180 = getelementptr inbounds i8, ptr %0, i64 1568
  %1181 = load i64, ptr %1180, align 8, !tbaa !101
  %1182 = add nsw i64 %1181, 1
  store i64 %1182, ptr %1180, align 8, !tbaa !101
  %1183 = getelementptr inbounds i8, ptr %0, i64 172112
  %1184 = load double, ptr %1183, align 8, !tbaa !92
  %1185 = getelementptr inbounds i8, ptr %0, i64 1592
  %1186 = load double, ptr %1185, align 8, !tbaa !102
  %1187 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1184, double noundef %1186)
  br i1 %1187, label %1188, label %1193

1188:                                             ; preds = %._crit_edge
  %1189 = load double, ptr %1183, align 8, !tbaa !92
  store double %1189, ptr %1185, align 8, !tbaa !102
  %1190 = getelementptr inbounds i8, ptr %0, i64 172120
  %1191 = load i64, ptr %1190, align 8, !tbaa !103
  %1192 = getelementptr inbounds i8, ptr %0, i64 1600
  store i64 %1191, ptr %1192, align 8, !tbaa !104
  br label %1193

1193:                                             ; preds = %1188, %._crit_edge
  %1194 = getelementptr inbounds i8, ptr %0, i64 172128
  %1195 = load double, ptr %1194, align 8, !tbaa !93
  %1196 = getelementptr inbounds i8, ptr %0, i64 1608
  %1197 = load double, ptr %1196, align 8, !tbaa !105
  %1198 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1195, double noundef %1197)
  br i1 %1198, label %1199, label %1204

1199:                                             ; preds = %1193
  %1200 = load double, ptr %1194, align 8, !tbaa !93
  store double %1200, ptr %1196, align 8, !tbaa !105
  %1201 = getelementptr inbounds i8, ptr %0, i64 172136
  %1202 = load i64, ptr %1201, align 8, !tbaa !106
  %1203 = getelementptr inbounds i8, ptr %0, i64 1616
  store i64 %1202, ptr %1203, align 8, !tbaa !107
  br label %1204

1204:                                             ; preds = %1199, %1193
  %1205 = getelementptr inbounds i8, ptr %0, i64 172144
  %1206 = load double, ptr %1205, align 8, !tbaa !94
  %1207 = getelementptr inbounds i8, ptr %0, i64 1624
  %1208 = load double, ptr %1207, align 8, !tbaa !108
  %1209 = tail call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1206, double noundef %1208)
  br i1 %1209, label %1210, label %1215

1210:                                             ; preds = %1204
  %1211 = load double, ptr %1205, align 8, !tbaa !94
  store double %1211, ptr %1207, align 8, !tbaa !108
  %1212 = getelementptr inbounds i8, ptr %0, i64 172152
  %1213 = load i64, ptr %1212, align 8, !tbaa !109
  %1214 = getelementptr inbounds i8, ptr %0, i64 1632
  store i64 %1213, ptr %1214, align 8, !tbaa !110
  br label %1215

1215:                                             ; preds = %1210, %1204
  %1216 = load i64, ptr %1109, align 8, !tbaa !72
  %1217 = add nsw i64 %1216, -1
  %1218 = getelementptr inbounds i8, ptr %0, i64 976
  tail call void @_ZN11alglib_impl7rcopyrvElPKNS_9ae_matrixElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01084, ptr noundef nonnull %1113, i64 noundef %1217, ptr noundef nonnull %1218, ptr noundef %1)
  %1219 = getelementptr inbounds i8, ptr %0, i64 1193
  store i8 1, ptr %1219, align 1, !tbaa !111
  br label %1229

1220:                                             ; preds = %32
  %1221 = getelementptr inbounds i8, ptr %0, i64 1193
  store i8 0, ptr %1221, align 1, !tbaa !111
  %1222 = getelementptr inbounds i8, ptr %0, i64 1464
  %1223 = load i8, ptr %1222, align 8, !tbaa !74, !range !62, !noundef !63
  %1224 = trunc nuw i8 %1223 to i1
  br i1 %1224, label %1225, label %1227

1225:                                             ; preds = %1220
  %1226 = getelementptr inbounds i8, ptr %0, i64 1584
  store i64 8, ptr %1226, align 8, !tbaa !73
  br label %1253

1227:                                             ; preds = %1220
  %1228 = add nsw i64 %.01006, 1
  br label %624

1229:                                             ; preds = %1215, %1100, %1078, %978, %935, %912, %782, %743, %457, %364, %342, %248, %215, %192, %120, %90
  %.sink = phi i32 [ 15, %1215 ], [ 14, %1100 ], [ 13, %1078 ], [ 12, %978 ], [ 11, %935 ], [ 10, %912 ], [ 9, %782 ], [ 8, %743 ], [ 7, %457 ], [ 6, %364 ], [ 5, %342 ], [ 4, %248 ], [ 3, %215 ], [ 2, %192 ], [ 1, %120 ], [ 0, %90 ]
  %.111095 = phi i64 [ %.01084, %1215 ], [ %.101094, %1100 ], [ %.01084, %1078 ], [ %.01084, %978 ], [ %.91093, %935 ], [ %.81092.ph, %912 ], [ %.81092.ph, %782 ], [ %.61090, %743 ], [ %.01084, %457 ], [ %.51089, %364 ], [ %.01084, %342 ], [ %.01084, %248 ], [ %.41088, %215 ], [ %.31087.ph, %192 ], [ %.31087.ph, %120 ], [ %.11085, %90 ]
  %.111083 = phi i64 [ %.01072, %1215 ], [ %.101082, %1100 ], [ %.01072, %1078 ], [ %.01072, %978 ], [ %.91081, %935 ], [ %.81080.ph, %912 ], [ %.81080.ph, %782 ], [ %.61078, %743 ], [ %.01072, %457 ], [ %.51077, %364 ], [ %.01072, %342 ], [ %.01072, %248 ], [ %.41076, %215 ], [ %.31075.ph, %192 ], [ %.31075.ph, %120 ], [ %.11073, %90 ]
  %.111071 = phi i64 [ %.01060, %1215 ], [ %.101070, %1100 ], [ %.01060, %1078 ], [ %.01060, %978 ], [ %.91069, %935 ], [ %.81068.ph, %912 ], [ %.81068.ph, %782 ], [ %.61066, %743 ], [ %.01060, %457 ], [ %.51065, %364 ], [ %.01060, %342 ], [ %.01060, %248 ], [ %.41064, %215 ], [ %.31063.ph, %192 ], [ %.31063.ph, %120 ], [ %.11061, %90 ]
  %.111059 = phi i64 [ %.01048, %1215 ], [ %.101058, %1100 ], [ %.01048, %1078 ], [ %.01048, %978 ], [ %.91057, %935 ], [ %.81056.ph, %912 ], [ %.81056.ph, %782 ], [ %.61054, %743 ], [ %.01048, %457 ], [ %.51053, %364 ], [ %.01048, %342 ], [ %.01048, %248 ], [ %.41052, %215 ], [ %.31051.ph, %192 ], [ %.31051.ph, %120 ], [ %.11049, %90 ]
  %.29 = phi i64 [ %.28.lcssa, %1215 ], [ %.26, %1100 ], [ %.22.ph, %1078 ], [ %.22.ph, %978 ], [ %.21, %935 ], [ %.18.ph, %912 ], [ %.18.ph, %782 ], [ %.16, %743 ], [ %.91042.lcssa, %457 ], [ %.71040, %364 ], [ %.41037.ph, %342 ], [ %.41037.ph, %248 ], [ %.31036, %215 ], [ %.11034.ph, %192 ], [ %.11034.ph, %120 ], [ %.01033, %90 ]
  %.14 = phi i64 [ %.01021, %1215 ], [ %.13, %1100 ], [ %.01021, %1078 ], [ %.01021, %978 ], [ %.12, %935 ], [ %.111032.ph, %912 ], [ %.111032.ph, %782 ], [ %.81029.lcssa, %743 ], [ %.01021, %457 ], [ %.01021, %364 ], [ %.01021, %342 ], [ %.01021, %248 ], [ %.01021, %215 ], [ %.01021, %192 ], [ %.01021, %120 ], [ %.01021, %90 ]
  %.71020 = phi i64 [ %.01013, %1215 ], [ %.61019, %1100 ], [ %.01013, %1078 ], [ %.01013, %978 ], [ %.51018, %935 ], [ %.41017.ph, %912 ], [ %.41017.ph, %782 ], [ %.11014.lcssa, %743 ], [ %.01013, %457 ], [ %.01013, %364 ], [ %.01013, %342 ], [ %.01013, %248 ], [ %.01013, %215 ], [ %.01013, %192 ], [ %.01013, %120 ], [ %.01013, %90 ]
  %.61012 = phi i64 [ %.01006, %1215 ], [ %.51011, %1100 ], [ %.01006, %1078 ], [ %.01006, %978 ], [ %.41010, %935 ], [ %.31009.ph, %912 ], [ %.31009.ph, %782 ], [ %.11007, %743 ], [ %.01006, %457 ], [ %.01006, %364 ], [ %.01006, %342 ], [ %.01006, %248 ], [ %.01006, %215 ], [ %.01006, %192 ], [ %.01006, %120 ], [ %.01006, %90 ]
  %.81005 = phi double [ %.0997, %1215 ], [ %.71004, %1100 ], [ %.0997, %1078 ], [ %.0997, %978 ], [ %.61003, %935 ], [ %.51002.ph, %912 ], [ %.51002.ph, %782 ], [ %.2999.lcssa, %743 ], [ %.0997, %457 ], [ %.0997, %364 ], [ %.0997, %342 ], [ %.0997, %248 ], [ %.0997, %215 ], [ %.0997, %192 ], [ %.0997, %120 ], [ %.0997, %90 ]
  %.7996 = phi double [ %.0989, %1215 ], [ %.6995, %1100 ], [ %.0989, %1078 ], [ %.0989, %978 ], [ %.5994, %935 ], [ %.4993.ph, %912 ], [ %.4993.ph, %782 ], [ %.1990.lcssa, %743 ], [ %.0989, %457 ], [ %.0989, %364 ], [ %.0989, %342 ], [ %.0989, %248 ], [ %.0989, %215 ], [ %.0989, %192 ], [ %.0989, %120 ], [ %.0989, %90 ]
  %.11 = phi i8 [ %.0, %1215 ], [ %.10, %1100 ], [ %.0, %1078 ], [ %.0, %978 ], [ %.9, %935 ], [ %.8.ph, %912 ], [ %.8.ph, %782 ], [ %.6, %743 ], [ %.0, %457 ], [ %.5, %364 ], [ %.0, %342 ], [ %.0, %248 ], [ %.4, %215 ], [ %.3.ph, %192 ], [ %.3.ph, %120 ], [ %.1, %90 ]
  store i32 %.sink, ptr %3, align 8, !tbaa !5
  %1230 = getelementptr inbounds i8, ptr %0, i64 1264
  %1231 = load ptr, ptr %1230, align 8, !tbaa !59
  store i64 %.111095, ptr %1231, align 8, !tbaa !60
  %1232 = load ptr, ptr %1230, align 8, !tbaa !59
  %1233 = getelementptr inbounds i8, ptr %1232, i64 8
  store i64 %.111083, ptr %1233, align 8, !tbaa !60
  %1234 = load ptr, ptr %1230, align 8, !tbaa !59
  %1235 = getelementptr inbounds i8, ptr %1234, i64 16
  store i64 %.111071, ptr %1235, align 8, !tbaa !60
  %1236 = load ptr, ptr %1230, align 8, !tbaa !59
  %1237 = getelementptr inbounds i8, ptr %1236, i64 24
  store i64 %.111059, ptr %1237, align 8, !tbaa !60
  %1238 = load ptr, ptr %1230, align 8, !tbaa !59
  %1239 = getelementptr inbounds i8, ptr %1238, i64 32
  store i64 %.29, ptr %1239, align 8, !tbaa !60
  %1240 = load ptr, ptr %1230, align 8, !tbaa !59
  %1241 = getelementptr inbounds i8, ptr %1240, i64 40
  store i64 %.14, ptr %1241, align 8, !tbaa !60
  %1242 = load ptr, ptr %1230, align 8, !tbaa !59
  %1243 = getelementptr inbounds i8, ptr %1242, i64 48
  store i64 %.71020, ptr %1243, align 8, !tbaa !60
  %1244 = load ptr, ptr %1230, align 8, !tbaa !59
  %1245 = getelementptr inbounds i8, ptr %1244, i64 56
  store i64 %.61012, ptr %1245, align 8, !tbaa !60
  %1246 = getelementptr inbounds i8, ptr %0, i64 1328
  %1247 = load ptr, ptr %1246, align 8, !tbaa !59
  %1248 = and i8 %.11, 1
  store i8 %1248, ptr %1247, align 1, !tbaa !61
  %1249 = getelementptr inbounds i8, ptr %0, i64 1392
  %1250 = load ptr, ptr %1249, align 8, !tbaa !59
  store double %.81005, ptr %1250, align 8, !tbaa !64
  %1251 = load ptr, ptr %1249, align 8, !tbaa !59
  %1252 = getelementptr inbounds i8, ptr %1251, i64 8
  store double %.7996, ptr %1252, align 8, !tbaa !64
  br label %1253

1253:                                             ; preds = %624, %1229, %1225, %1063, %973, %897, %777, %467, %327, %243, %177, %115
  %.01096 = phi i1 [ false, %115 ], [ true, %1229 ], [ false, %177 ], [ false, %243 ], [ false, %327 ], [ false, %467 ], [ false, %777 ], [ false, %897 ], [ false, %973 ], [ false, %1063 ], [ false, %1225 ], [ false, %624 ]
  ret i1 %.01096
}

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN11alglib_implL16monbi_setnlcalgoEPNS_11minnlcstateEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smax.i64(i64, i64) #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 = { mustprogress nounwind 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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }

!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, !18, i64 1200}
!6 = !{!"_ZTSN11alglib_impl8nbistateE", !7, i64 0, !7, i64 8, !10, i64 16, !7, i64 24, !11, i64 32, !12, i64 40, !7, i64 104, !11, i64 112, !12, i64 120, !12, i64 184, !7, i64 248, !7, i64 256, !15, i64 264, !16, i64 344, !12, i64 712, !12, i64 776, !7, i64 840, !12, i64 848, !12, i64 912, !12, i64 976, !10, i64 1040, !12, i64 1048, !15, i64 1112, !11, i64 1192, !11, i64 1193, !17, i64 1200, !11, i64 1464, !15, i64 1472, !7, i64 1552, !7, i64 1560, !7, i64 1568, !7, i64 1576, !7, i64 1584, !10, i64 1592, !7, i64 1600, !10, i64 1608, !7, i64 1616, !10, i64 1624, !7, i64 1632, !19, i64 1640, !57, i64 172088, !12, i64 172424, !12, i64 172488, !12, i64 172552, !15, i64 172616, !12, i64 172696, !7, i64 172760, !12, i64 172768, !12, i64 172832, !12, i64 172896, !7, i64 172960, !7, i64 172968, !12, i64 172976, !15, i64 173040, !12, i64 173120, !12, i64 173184, !12, i64 173248, !58, i64 173312, !12, i64 173336, !12, i64 173400, !15, i64 173464, !12, i64 173544, !12, i64 173608, !12, i64 173672}
!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_impl10rcommstateE", !18, i64 0, !12, i64 8, !12, i64 72, !12, i64 136, !12, i64 200}
!18 = !{!"int", !8, i64 0}
!19 = !{!"_ZTSN11alglib_impl11minnlcstateE", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 24, !20, i64 32, !7, i64 56, !11, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !12, i64 96, !12, i64 160, !12, i64 224, !12, i64 288, !12, i64 352, !21, i64 416, !7, i64 2232, !12, i64 2240, !12, i64 2304, !7, i64 2368, !11, i64 2376, !12, i64 2384, !10, i64 2448, !12, i64 2456, !15, i64 2520, !11, i64 2600, !11, i64 2601, !11, i64 2602, !7, i64 2608, !12, i64 2616, !10, i64 2680, !7, i64 2688, !7, i64 2696, !7, i64 2704, !7, i64 2712, !7, i64 2720, !12, i64 2728, !12, i64 2792, !12, i64 2856, !16, i64 2920, !12, i64 3288, !12, i64 3352, !12, i64 3416, !12, i64 3480, !15, i64 3544, !16, i64 3624, !17, i64 3992, !17, i64 4256, !12, i64 4520, !12, i64 4584, !15, i64 4648, !12, i64 4728, !12, i64 4792, !12, i64 4856, !12, i64 4920, !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, !15, i64 5704, !12, i64 5784, !12, i64 5848, !12, i64 5912, !12, i64 5976, !10, i64 6040, !11, i64 6048, !12, i64 6056, !12, i64 6120, !22, i64 6184, !16, i64 37712, !12, i64 38080, !12, i64 38144, !11, i64 38208, !37, i64 38216, !49, i64 100960, !7, i64 164120, !52, i64 164128, !12, i64 169832, !7, i64 169896, !7, i64 169904, !7, i64 169912, !7, i64 169920, !10, i64 169928, !7, i64 169936, !10, i64 169944, !7, i64 169952, !10, i64 169960, !7, i64 169968, !7, i64 169976, !12, i64 169984, !12, i64 170048, !12, i64 170112, !12, i64 170176, !12, i64 170240, !12, i64 170304, !12, i64 170368, !7, i64 170432, !7, i64 170440}
!20 = !{!"_ZTSN11alglib_impl19nlpstoppingcriteriaE", !10, i64 0, !10, i64 8, !7, i64 16}
!21 = !{!"_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}
!22 = !{!"_ZTSN11alglib_impl11minaulstateE", !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, !16, i64 472, !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, !20, i64 1416, !7, i64 1440, !7, i64 1448, !12, i64 1456, !12, i64 1520, !16, i64 1584, !10, i64 1952, !11, i64 1960, !11, i64 1961, !11, i64 1962, !10, i64 1968, !23, i64 1976, !23, i64 2576, !23, i64 3176, !23, i64 3776, !23, i64 4376, !23, i64 4976, !10, i64 5576, !7, i64 5584, !7, i64 5592, !12, i64 5600, !12, i64 5664, !12, i64 5728, !12, i64 5792, !12, i64 5856, !12, i64 5920, !12, i64 5984, !24, i64 6048, !35, i64 22296, !35, i64 25656, !12, i64 29016, !12, i64 29080, !12, i64 29144, !12, i64 29208, !7, i64 29272, !7, i64 29280, !7, i64 29288, !10, i64 29296, !7, i64 29304, !36, i64 29312, !10, i64 29504, !10, i64 29512, !12, i64 29520, !12, i64 29584, !12, i64 29648, !15, i64 29712, !12, i64 29792, !12, i64 29856, !23, i64 29920, !23, i64 30520, !7, i64 31120, !7, i64 31128, !7, i64 31136, !10, i64 31144, !7, i64 31152, !10, i64 31160, !7, i64 31168, !10, i64 31176, !7, i64 31184, !7, i64 31192, !12, i64 31200, !17, i64 31264}
!23 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !7, i64 0, !7, i64 8, !11, i64 16, !12, i64 24, !12, i64 88, !15, i64 152, !16, i64 232}
!24 = !{!"_ZTSN11alglib_impl20minaulpreconditionerE", !7, i64 0, !7, i64 8, !25, i64 16, !16, i64 15080, !7, i64 15448, !15, i64 15456, !15, i64 15536, !7, i64 15616, !15, i64 15624, !12, i64 15704, !12, i64 15768, !12, i64 15832, !12, i64 15896, !15, i64 15960, !15, i64 16040, !12, i64 16120, !12, i64 16184}
!25 = !{!"_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, !26, i64 1000, !12, i64 1512, !12, i64 1576, !12, i64 1640, !12, i64 1704, !12, i64 1768, !12, i64 1832, !27, i64 1896, !27, i64 2040, !27, i64 2184, !27, i64 2328, !27, i64 2472, !27, i64 2616, !12, i64 2760, !12, i64 2824, !12, i64 2888, !12, i64 2952, !12, i64 3016, !29, i64 3080, !34, 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}
!26 = !{!"_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}
!27 = !{!"_ZTSN11alglib_impl9ae_nxpoolE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !13, i64 32, !28, i64 64, !13, i64 112}
!28 = !{!"_ZTSN11alglib_impl7ae_lockE", !14, i64 0, !13, i64 8, !11, i64 40}
!29 = !{!"_ZTSN11alglib_impl9amdbufferE", !7, i64 0, !11, i64 8, !11, i64 9, !12, i64 16, !12, i64 80, !12, i64 144, !30, i64 208, !30, i64 568, !30, i64 928, !31, i64 1288, !32, i64 1496, !33, i64 1968, !12, i64 2120, !12, i64 2184, !12, i64 2248, !33, i64 2312, !33, i64 2464, !33, i64 2616, !33, i64 2768, !33, i64 2920, !33, i64 3072, !12, i64 3224, !7, i64 3288, !33, i64 3296, !33, i64 3448, !30, i64 3600, !33, i64 3960, !12, i64 4112, !12, i64 4176, !12, i64 4240, !15, i64 4304}
!30 = !{!"_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}
!31 = !{!"_ZTSN11alglib_impl11amdllmatrixE", !7, i64 0, !12, i64 8, !12, i64 72, !12, i64 136, !7, i64 200}
!32 = !{!"_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}
!33 = !{!"_ZTSN11alglib_impl5nisetE", !7, i64 0, !7, i64 8, !12, i64 16, !12, i64 80, !7, i64 144}
!34 = !{!"_ZTSN11alglib_impl18priorityamdbuffersE", !12, i64 0, !12, i64 64, !29, i64 128, !16, i64 4512, !16, i64 4880, !16, i64 5248, !16, i64 5616, !16, i64 5984}
!35 = !{!"_ZTSN11alglib_impl12xbfgshessianE", !7, i64 0, !12, i64 8, !12, i64 72, !7, i64 136, !7, i64 144, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !7, i64 208, !10, i64 216, !10, i64 224, !15, i64 232, !7, i64 312, !10, i64 320, !10, i64 328, !10, i64 336, !7, i64 344, !10, i64 352, !15, i64 360, !15, i64 440, !15, i64 520, !15, i64 600, !11, i64 680, !7, i64 688, !15, i64 696, !15, i64 776, !11, i64 856, !12, i64 864, !11, i64 928, !7, i64 936, !15, i64 944, !12, i64 1024, !12, i64 1088, !15, i64 1152, !12, i64 1232, !12, i64 1296, !11, i64 1360, !12, i64 1368, !10, i64 1432, !10, i64 1440, !7, i64 1448, !15, i64 1456, !12, i64 1536, !12, i64 1600, !12, i64 1664, !12, i64 1728, !12, i64 1792, !12, i64 1856, !15, i64 1920, !15, i64 2000, !15, i64 2080, !15, i64 2160, !15, i64 2240, !15, i64 2320, !15, i64 2400, !15, i64 2480, !12, i64 2560, !12, i64 2624, !15, i64 2688, !12, i64 2768, !15, i64 2832, !15, i64 2912, !15, i64 2992, !15, i64 3072, !15, i64 3152, !12, i64 3232, !12, i64 3296}
!36 = !{!"_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}
!37 = !{!"_ZTSN11alglib_impl11minsqpstateE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !11, i64 40, !12, i64 48, !15, i64 112, !12, i64 192, !12, i64 256, !12, i64 320, !12, i64 384, !12, i64 448, !20, i64 512, !7, i64 536, !12, i64 544, !12, i64 608, !15, i64 672, !10, i64 752, !11, i64 760, !11, i64 761, !10, i64 768, !10, i64 776, !10, i64 784, !7, i64 792, !7, i64 800, !23, i64 808, !12, i64 1408, !12, i64 1472, !12, i64 1536, !12, i64 1600, !38, i64 1664, !35, i64 55416, !48, i64 58776, !7, i64 58912, !12, i64 58920, !12, i64 58984, !23, i64 59048, !23, i64 59648, !23, i64 60248, !23, i64 60848, !12, i64 61448, !12, i64 61512, !12, i64 61576, !12, i64 61640, !12, i64 61704, !12, i64 61768, !12, i64 61832, !12, i64 61896, !12, i64 61960, !12, i64 62024, !12, i64 62088, !12, i64 62152, !12, i64 62216, !12, i64 62280, !7, i64 62344, !7, i64 62352, !10, i64 62360, !7, i64 62368, !10, i64 62376, !7, i64 62384, !10, i64 62392, !7, i64 62400, !46, i64 62408, !46, i64 62432, !46, i64 62456, !17, i64 62480}
!38 = !{!"_ZTSN11alglib_impl15minsqpsubsolverE", !39, i64 0, !43, i64 26648, !12, i64 50544, !12, i64 50608, !12, i64 50672, !12, i64 50736, !12, i64 50800, !16, i64 50864, !16, i64 51232, !12, i64 51600, !15, i64 51664, !12, i64 51744, !15, i64 51808, !16, i64 51888, !12, i64 52256, !12, i64 52320, !12, i64 52384, !12, i64 52448, !12, i64 52512, !12, i64 52576, !12, i64 52640, !12, i64 52704, !15, i64 52768, !12, i64 52848, !12, i64 52912, !15, i64 52976, !12, i64 53056, !7, i64 53120, !16, i64 53128, !12, i64 53496, !12, i64 53560, !12, i64 53624, !12, i64 53688}
!39 = !{!"_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, !40, i64 2832, !40, i64 3488, !40, i64 4144, !40, i64 4800, !40, 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, !41, i64 7864, !42, 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, !40, 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}
!40 = !{!"_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}
!41 = !{!"_ZTSN11alglib_impl23vipmreducedsparsesystemE", !16, i64 0, !12, i64 368, !12, i64 432, !12, i64 496, !12, i64 560, !7, i64 624, !25, i64 632, !12, i64 15696, !12, i64 15760, !12, i64 15824, !12, i64 15888, !12, i64 15952, !12, i64 16016}
!42 = !{!"_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}
!43 = !{!"_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, !44, i64 2176, !44, i64 2576, !44, i64 2976, !44, 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, !45, i64 4240, !7, i64 4624, !7, i64 4632, !11, i64 4640, !11, i64 4641, !11, i64 4642, !46, i64 4648, !46, i64 4672, !46, i64 4696, !46, i64 4720, !46, i64 4744, !47, i64 4768, !45, 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}
!44 = !{!"_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}
!45 = !{!"_ZTSN11alglib_impl17ipm2righthandsideE", !12, i64 0, !12, i64 64, !12, i64 128, !12, i64 192, !12, i64 256, !12, i64 320}
!46 = !{!"_ZTSN11alglib_impl6stimerE", !7, i64 0, !7, i64 8, !11, i64 16}
!47 = !{!"_ZTSN11alglib_impl17ipm2reducedsystemE", !16, i64 0, !12, i64 368, !25, 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}
!48 = !{!"_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, !28, i64 56, !13, i64 104}
!49 = !{!"_ZTSN11alglib_impl12minfsqpstateE", !7, i64 0, !7, i64 8, !7, i64 16, !11, i64 24, !12, i64 32, !16, i64 96, !12, i64 464, !12, i64 528, !12, i64 592, !12, i64 656, !12, i64 720, !12, i64 784, !12, i64 848, !12, i64 912, !12, i64 976, !12, i64 1040, !12, i64 1104, !12, i64 1168, !12, i64 1232, !12, i64 1296, !12, i64 1360, !12, i64 1424, !12, i64 1488, !12, i64 1552, !10, i64 1616, !10, i64 1624, !20, i64 1632, !7, i64 1656, !12, i64 1664, !12, i64 1728, !16, i64 1792, !10, i64 2160, !11, i64 2168, !11, i64 2169, !10, i64 2176, !10, i64 2184, !7, i64 2192, !7, i64 2200, !23, i64 2208, !12, i64 2808, !12, i64 2872, !50, i64 2936, !35, i64 56768, !12, i64 60128, !12, i64 60192, !23, i64 60256, !23, i64 60856, !12, i64 61456, !12, i64 61520, !12, i64 61584, !51, i64 61648, !12, i64 61816, !12, i64 61880, !12, i64 61944, !12, i64 62008, !12, i64 62072, !12, i64 62136, !12, i64 62200, !12, i64 62264, !12, i64 62328, !12, i64 62392, !12, i64 62456, !12, i64 62520, !12, i64 62584, !12, i64 62648, !7, i64 62712, !7, i64 62720, !10, i64 62728, !7, i64 62736, !10, i64 62744, !7, i64 62752, !10, i64 62760, !7, i64 62768, !46, i64 62776, !46, i64 62800, !46, i64 62824, !46, i64 62848, !46, i64 62872, !17, i64 62896}
!50 = !{!"_ZTSN11alglib_impl16minfsqpsubsolverE", !39, i64 0, !43, i64 26648, !12, i64 50544, !12, i64 50608, !12, i64 50672, !12, i64 50736, !12, i64 50800, !16, i64 50864, !16, i64 51232, !12, i64 51600, !10, i64 51664, !10, i64 51672, !15, i64 51680, !12, i64 51760, !15, i64 51824, !16, i64 51904, !12, i64 52272, !12, i64 52336, !12, i64 52400, !12, i64 52464, !12, i64 52528, !12, i64 52592, !12, i64 52656, !12, i64 52720, !12, i64 52784, !15, i64 52848, !12, i64 52928, !12, i64 52992, !15, i64 53056, !12, i64 53136, !7, i64 53200, !16, i64 53208, !12, i64 53576, !12, i64 53640, !12, i64 53704, !12, i64 53768}
!51 = !{!"_ZTSN11alglib_impl9nlpfilterE", !10, i64 0, !7, i64 8, !10, i64 16, !10, i64 24, !11, i64 32, !12, i64 40, !12, i64 104}
!52 = !{!"_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, !17, i64 1240, !11, i64 1504, !11, i64 1505, !7, i64 1512, !7, i64 1520, !10, i64 1528, !10, i64 1536, !11, i64 1544, !53, i64 1552, !10, i64 1848, !10, i64 1856, !54, i64 1864, !54, i64 2184, !10, i64 2504, !10, i64 2512, !55, i64 2520, !55, i64 2840, !10, i64 3160, !10, i64 3168, !56, i64 3176, !56, i64 3504, !11, i64 3832, !12, i64 3840, !12, i64 3904, !15, i64 3968, !17, 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}
!53 = !{!"_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}
!54 = !{!"_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}
!55 = !{!"_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}
!56 = !{!"_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}
!57 = !{!"_ZTSN11alglib_impl12minnlcreportE", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !7, i64 32, !10, i64 40, !7, i64 48, !10, i64 56, !7, i64 64, !12, i64 72, !12, i64 136, !12, i64 200, !12, i64 264, !7, i64 328}
!58 = !{!"_ZTSN11alglib_impl10hqrndstateE", !7, i64 0, !7, i64 8, !7, i64 16}
!59 = !{!8, !8, i64 0}
!60 = !{!7, !7, i64 0}
!61 = !{!11, !11, i64 0}
!62 = !{i8 0, i8 2}
!63 = !{}
!64 = !{!10, !10, i64 0}
!65 = !{!6, !7, i64 0}
!66 = !{!6, !7, i64 8}
!67 = !{!6, !7, i64 104}
!68 = !{!69, !10, i64 8}
!69 = !{!"_ZTSN11alglib_impl8ae_stateE", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !14, i64 32, !13, i64 40, !14, i64 72, !70, i64 80, !14, i64 88, !71, i64 96, !14, i64 104, !14, i64 112, !14, i64 120}
!70 = !{!"_ZTSN11alglib_impl13ae_error_typeE", !8, i64 0}
!71 = !{!"long long", !8, i64 0}
!72 = !{!6, !7, i64 1552}
!73 = !{!6, !7, i64 1584}
!74 = !{!6, !11, i64 1464}
!75 = !{!6, !7, i64 248}
!76 = !{!6, !7, i64 256}
!77 = !{!6, !7, i64 840}
!78 = !{!6, !10, i64 16}
!79 = !{!6, !7, i64 24}
!80 = !{!6, !7, i64 172760}
!81 = !{!6, !11, i64 1192}
!82 = !{!6, !7, i64 1576}
!83 = !{!6, !7, i64 172960}
!84 = !{!6, !7, i64 172968}
!85 = !{!6, !11, i64 4240}
!86 = distinct !{!86, !87}
!87 = !{!"llvm.loop.mustprogress"}
!88 = !{!6, !7, i64 172104}
!89 = !{!6, !7, i64 1560}
!90 = !{!6, !7, i64 172088}
!91 = !{!6, !7, i64 172096}
!92 = !{!6, !10, i64 172112}
!93 = !{!6, !10, i64 172128}
!94 = !{!6, !10, i64 172144}
!95 = !{!6, !11, i64 112}
!96 = distinct !{!96, !87}
!97 = distinct !{!97, !87}
!98 = !{!14, !14, i64 0}
!99 = distinct !{!99, !87}
!100 = distinct !{!100, !87}
!101 = !{!6, !7, i64 1568}
!102 = !{!6, !10, i64 1592}
!103 = !{!6, !7, i64 172120}
!104 = !{!6, !7, i64 1600}
!105 = !{!6, !10, i64 1608}
!106 = !{!6, !7, i64 172136}
!107 = !{!6, !7, i64 1616}
!108 = !{!6, !10, i64 1624}
!109 = !{!6, !7, i64 172152}
!110 = !{!6, !7, i64 1632}
!111 = !{!6, !11, i64 1193}
!112 = distinct !{!112, !87}
!113 = distinct !{!113, !87}
!114 = distinct !{!114, !87}
!115 = distinct !{!115, !87}
!116 = distinct !{!116, !87}
!117 = distinct !{!117, !87}
!118 = distinct !{!118, !87}
!119 = distinct !{!119, !87}
!120 = distinct !{!120, !87}
!121 = !{!69, !10, i64 24}
!122 = !{!69, !10, i64 16}
!123 = distinct !{!123, !87}
!124 = distinct !{!124, !87}
!125 = distinct !{!125, !87}
!126 = distinct !{!126, !87}
!127 = distinct !{!127, !87}
!128 = distinct !{!128, !87}
!129 = distinct !{!129, !87}
!130 = distinct !{!130, !87}


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