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

; 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::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::nlpstoppingcriteria" = type { double, double, i64 }
%"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::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::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::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::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }
%"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::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 }

@.str.205 = external hidden unnamed_addr constant [66 x i8], align 1
@.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.708 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.733 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.774 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.777 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1119 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1120 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1127 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.1129 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.1130 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1131 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.1132 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1133 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1135 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.1136 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.1137 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1161 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1170 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1171 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1247 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.1248 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1249 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN11alglib_implL27nlcaul_defaultinequalitylagE = external hidden global double, align 8
@.str.1250 = external hidden unnamed_addr constant [102 x i8], align 1
@_ZN11alglib_implL18nlcaul_xbfgsmemlenE = external hidden global i64, align 8
@_ZN11alglib_implL19nlcaul_xbfgsmaxhessE = external hidden global double, align 8
@.str.1251 = external hidden unnamed_addr constant [99 x i8], align 1
@_ZN11alglib_implL18nlcaul_aulbigscaleE = external hidden global double, align 8
@_ZN11alglib_implL20nlcaul_aulsmallscaleE = external hidden global double, align 8
@.str.1252 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.1253 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1254 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1255 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1256 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1257 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.1258 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.1259 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.1260 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.1261 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1262 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1263 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1264 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1265 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1266 = external hidden unnamed_addr constant [48 x i8], align 1
@_ZN11alglib_implL11nlcaul_gtolE = external hidden global double, align 8
@.str.1267 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.1268 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.1269 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.1270 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.1271 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1272 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1273 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.1274 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.1275 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.1276 = external hidden unnamed_addr constant [62 x i8], align 1
@_ZN11alglib_implL21nlcaul_stagnationepsfE = external hidden global double, align 8
@.str.1277 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.1278 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.1279 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.1280 = external hidden unnamed_addr constant [73 x i8], align 1
@_ZN11alglib_implL23nlcaul_fstagnationlimitE = external hidden global i64, align 8
@_ZN11alglib_implL29nlcaul_besterrstagnationcoeffE = external hidden global double, align 8
@.str.1281 = external hidden unnamed_addr constant [71 x i8], align 1
@_ZN11alglib_implL29nlcaul_besterrstagnationlimitE = external hidden global i64, align 8
@.str.1282 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.1283 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.1284 = external hidden unnamed_addr constant [40 x i8], align 1
@_ZN11alglib_implL19nlcaul_aulmaxgrowthE = external hidden global double, align 8
@.str.1285 = external hidden unnamed_addr constant [33 x i8], align 1
@_ZN11alglib_implL17nlcaul_maxlagmultE = external hidden global double, align 8
@_ZN11alglib_implL17nlcaul_minlagmultE = external hidden global double, align 8
@_ZN11alglib_implL13nlcaul_rhomaxE = external hidden global double, align 8

; 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: 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) #1

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

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

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

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

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

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

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_impl13ae_fp_less_eqEdd(double noundef, double noundef) #1

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl28smoothnessmonitortracestatusEPKNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef, i1 noundef zeroext, ptr noundef) #3

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

declare noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) #1

declare void @_ZN11alglib_impl36tracevectorunscaledunshiftedautoprecEPKNS_9ae_vectorElS2_bS2_bPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef, i1 noundef zeroext, ptr noundef, i1 noundef zeroext, 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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN11alglib_impl17hessiansetmaxhessEPNS_12xbfgshessianEdPNS_8ae_stateE(ptr noundef, double noundef, ptr noundef) #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl13hessianupdateEPNS_12xbfgshessianEPKNS_9ae_vectorES4_S4_S4_bPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef) #3

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef, ptr noundef) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef, ptr noundef) #4

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

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

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

declare noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext, i64 noundef, i64 noundef, ptr noundef) #1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl15minauliterationEPNS_11minaulstateEPNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, i1 noundef zeroext %2, ptr noundef %3) #3 {
  %5 = alloca i1, align 1
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i8, align 1
  %9 = alloca ptr, align 8
  %10 = alloca i64, align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i8, align 1
  %15 = alloca i8, align 1
  %16 = alloca i8, align 1
  %17 = alloca double, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca i64, align 8
  %34 = alloca i8, align 1
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca i8, align 1
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca i8, align 1
  %50 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  %51 = zext i1 %2 to i8
  store i8 %51, ptr %8, align 1, !tbaa !9
  store ptr %3, ptr %9, align 8, !tbaa !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 1, ptr %14) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #5
  %52 = load ptr, ptr %6, align 8, !tbaa !5
  %53 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %52, i32 0, i32 81
  %54 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %53, i32 0, i32 0
  %55 = load i32, ptr %54, align 8, !tbaa !11
  %56 = icmp sge i32 %55, 0
  br i1 %56, label %57, label %341

57:                                               ; preds = %4
  %58 = load ptr, ptr %6, align 8, !tbaa !5
  %59 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %58, i32 0, i32 81
  %60 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %59, i32 0, i32 1
  %61 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %60, i32 0, i32 4
  %62 = load ptr, ptr %61, align 8, !tbaa !36
  %63 = getelementptr inbounds i64, ptr %62, i64 0
  %64 = load i64, ptr %63, align 8, !tbaa !37
  store i64 %64, ptr %10, align 8, !tbaa !37
  %65 = load ptr, ptr %6, align 8, !tbaa !5
  %66 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %65, i32 0, i32 81
  %67 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %66, i32 0, i32 1
  %68 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %67, i32 0, i32 4
  %69 = load ptr, ptr %68, align 8, !tbaa !36
  %70 = getelementptr inbounds i64, ptr %69, i64 1
  %71 = load i64, ptr %70, align 8, !tbaa !37
  store i64 %71, ptr %11, align 8, !tbaa !37
  %72 = load ptr, ptr %6, align 8, !tbaa !5
  %73 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %72, i32 0, i32 81
  %74 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %73, i32 0, i32 1
  %75 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %74, i32 0, i32 4
  %76 = load ptr, ptr %75, align 8, !tbaa !36
  %77 = getelementptr inbounds i64, ptr %76, i64 2
  %78 = load i64, ptr %77, align 8, !tbaa !37
  store i64 %78, ptr %12, align 8, !tbaa !37
  %79 = load ptr, ptr %6, align 8, !tbaa !5
  %80 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %79, i32 0, i32 81
  %81 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %80, i32 0, i32 1
  %82 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %81, i32 0, i32 4
  %83 = load ptr, ptr %82, align 8, !tbaa !36
  %84 = getelementptr inbounds i64, ptr %83, i64 3
  %85 = load i64, ptr %84, align 8, !tbaa !37
  store i64 %85, ptr %13, align 8, !tbaa !37
  %86 = load ptr, ptr %6, align 8, !tbaa !5
  %87 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %86, i32 0, i32 81
  %88 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %87, i32 0, i32 1
  %89 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %88, i32 0, i32 4
  %90 = load ptr, ptr %89, align 8, !tbaa !36
  %91 = getelementptr inbounds i64, ptr %90, i64 4
  %92 = load i64, ptr %91, align 8, !tbaa !37
  store i64 %92, ptr %25, align 8, !tbaa !37
  %93 = load ptr, ptr %6, align 8, !tbaa !5
  %94 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %93, i32 0, i32 81
  %95 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %94, i32 0, i32 1
  %96 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %95, i32 0, i32 4
  %97 = load ptr, ptr %96, align 8, !tbaa !36
  %98 = getelementptr inbounds i64, ptr %97, i64 5
  %99 = load i64, ptr %98, align 8, !tbaa !37
  store i64 %99, ptr %26, align 8, !tbaa !37
  %100 = load ptr, ptr %6, align 8, !tbaa !5
  %101 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %100, i32 0, i32 81
  %102 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %101, i32 0, i32 1
  %103 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %102, i32 0, i32 4
  %104 = load ptr, ptr %103, align 8, !tbaa !36
  %105 = getelementptr inbounds i64, ptr %104, i64 6
  %106 = load i64, ptr %105, align 8, !tbaa !37
  store i64 %106, ptr %27, align 8, !tbaa !37
  %107 = load ptr, ptr %6, align 8, !tbaa !5
  %108 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %107, i32 0, i32 81
  %109 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %108, i32 0, i32 1
  %110 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %109, i32 0, i32 4
  %111 = load ptr, ptr %110, align 8, !tbaa !36
  %112 = getelementptr inbounds i64, ptr %111, i64 7
  %113 = load i64, ptr %112, align 8, !tbaa !37
  store i64 %113, ptr %28, align 8, !tbaa !37
  %114 = load ptr, ptr %6, align 8, !tbaa !5
  %115 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %114, i32 0, i32 81
  %116 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %115, i32 0, i32 1
  %117 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %116, i32 0, i32 4
  %118 = load ptr, ptr %117, align 8, !tbaa !36
  %119 = getelementptr inbounds i64, ptr %118, i64 8
  %120 = load i64, ptr %119, align 8, !tbaa !37
  store i64 %120, ptr %29, align 8, !tbaa !37
  %121 = load ptr, ptr %6, align 8, !tbaa !5
  %122 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %121, i32 0, i32 81
  %123 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %122, i32 0, i32 1
  %124 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %123, i32 0, i32 4
  %125 = load ptr, ptr %124, align 8, !tbaa !36
  %126 = getelementptr inbounds i64, ptr %125, i64 9
  %127 = load i64, ptr %126, align 8, !tbaa !37
  store i64 %127, ptr %33, align 8, !tbaa !37
  %128 = load ptr, ptr %6, align 8, !tbaa !5
  %129 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %128, i32 0, i32 81
  %130 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %129, i32 0, i32 2
  %131 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %130, i32 0, i32 4
  %132 = load ptr, ptr %131, align 8, !tbaa !36
  %133 = getelementptr inbounds i8, ptr %132, i64 0
  %134 = load i8, ptr %133, align 1, !tbaa !9, !range !38, !noundef !39
  %135 = trunc i8 %134 to i1
  %136 = zext i1 %135 to i8
  store i8 %136, ptr %14, align 1, !tbaa !9
  %137 = load ptr, ptr %6, align 8, !tbaa !5
  %138 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %137, i32 0, i32 81
  %139 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %138, i32 0, i32 2
  %140 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %139, i32 0, i32 4
  %141 = load ptr, ptr %140, align 8, !tbaa !36
  %142 = getelementptr inbounds i8, ptr %141, i64 1
  %143 = load i8, ptr %142, align 1, !tbaa !9, !range !38, !noundef !39
  %144 = trunc i8 %143 to i1
  %145 = zext i1 %144 to i8
  store i8 %145, ptr %15, align 1, !tbaa !9
  %146 = load ptr, ptr %6, align 8, !tbaa !5
  %147 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %146, i32 0, i32 81
  %148 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %147, i32 0, i32 2
  %149 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %148, i32 0, i32 4
  %150 = load ptr, ptr %149, align 8, !tbaa !36
  %151 = getelementptr inbounds i8, ptr %150, i64 2
  %152 = load i8, ptr %151, align 1, !tbaa !9, !range !38, !noundef !39
  %153 = trunc i8 %152 to i1
  %154 = zext i1 %153 to i8
  store i8 %154, ptr %16, align 1, !tbaa !9
  %155 = load ptr, ptr %6, align 8, !tbaa !5
  %156 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %155, i32 0, i32 81
  %157 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %156, i32 0, i32 2
  %158 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %157, i32 0, i32 4
  %159 = load ptr, ptr %158, align 8, !tbaa !36
  %160 = getelementptr inbounds i8, ptr %159, i64 3
  %161 = load i8, ptr %160, align 1, !tbaa !9, !range !38, !noundef !39
  %162 = trunc i8 %161 to i1
  %163 = zext i1 %162 to i8
  store i8 %163, ptr %34, align 1, !tbaa !9
  %164 = load ptr, ptr %6, align 8, !tbaa !5
  %165 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %164, i32 0, i32 81
  %166 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %165, i32 0, i32 2
  %167 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %166, i32 0, i32 4
  %168 = load ptr, ptr %167, align 8, !tbaa !36
  %169 = getelementptr inbounds i8, ptr %168, i64 4
  %170 = load i8, ptr %169, align 1, !tbaa !9, !range !38, !noundef !39
  %171 = trunc i8 %170 to i1
  %172 = zext i1 %171 to i8
  store i8 %172, ptr %42, align 1, !tbaa !9
  %173 = load ptr, ptr %6, align 8, !tbaa !5
  %174 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %173, i32 0, i32 81
  %175 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %174, i32 0, i32 3
  %176 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %175, i32 0, i32 4
  %177 = load ptr, ptr %176, align 8, !tbaa !36
  %178 = getelementptr inbounds double, ptr %177, i64 0
  %179 = load double, ptr %178, align 8, !tbaa !40
  store double %179, ptr %17, align 8, !tbaa !40
  %180 = load ptr, ptr %6, align 8, !tbaa !5
  %181 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %180, i32 0, i32 81
  %182 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %181, i32 0, i32 3
  %183 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %182, i32 0, i32 4
  %184 = load ptr, ptr %183, align 8, !tbaa !36
  %185 = getelementptr inbounds double, ptr %184, i64 1
  %186 = load double, ptr %185, align 8, !tbaa !40
  store double %186, ptr %18, align 8, !tbaa !40
  %187 = load ptr, ptr %6, align 8, !tbaa !5
  %188 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %187, i32 0, i32 81
  %189 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %188, i32 0, i32 3
  %190 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %189, i32 0, i32 4
  %191 = load ptr, ptr %190, align 8, !tbaa !36
  %192 = getelementptr inbounds double, ptr %191, i64 2
  %193 = load double, ptr %192, align 8, !tbaa !40
  store double %193, ptr %19, align 8, !tbaa !40
  %194 = load ptr, ptr %6, align 8, !tbaa !5
  %195 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %194, i32 0, i32 81
  %196 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %195, i32 0, i32 3
  %197 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %196, i32 0, i32 4
  %198 = load ptr, ptr %197, align 8, !tbaa !36
  %199 = getelementptr inbounds double, ptr %198, i64 3
  %200 = load double, ptr %199, align 8, !tbaa !40
  store double %200, ptr %20, align 8, !tbaa !40
  %201 = load ptr, ptr %6, align 8, !tbaa !5
  %202 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %201, i32 0, i32 81
  %203 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %202, i32 0, i32 3
  %204 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %203, i32 0, i32 4
  %205 = load ptr, ptr %204, align 8, !tbaa !36
  %206 = getelementptr inbounds double, ptr %205, i64 4
  %207 = load double, ptr %206, align 8, !tbaa !40
  store double %207, ptr %21, align 8, !tbaa !40
  %208 = load ptr, ptr %6, align 8, !tbaa !5
  %209 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %208, i32 0, i32 81
  %210 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %209, i32 0, i32 3
  %211 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %210, i32 0, i32 4
  %212 = load ptr, ptr %211, align 8, !tbaa !36
  %213 = getelementptr inbounds double, ptr %212, i64 5
  %214 = load double, ptr %213, align 8, !tbaa !40
  store double %214, ptr %22, align 8, !tbaa !40
  %215 = load ptr, ptr %6, align 8, !tbaa !5
  %216 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %215, i32 0, i32 81
  %217 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %216, i32 0, i32 3
  %218 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %217, i32 0, i32 4
  %219 = load ptr, ptr %218, align 8, !tbaa !36
  %220 = getelementptr inbounds double, ptr %219, i64 6
  %221 = load double, ptr %220, align 8, !tbaa !40
  store double %221, ptr %23, align 8, !tbaa !40
  %222 = load ptr, ptr %6, align 8, !tbaa !5
  %223 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %222, i32 0, i32 81
  %224 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %223, i32 0, i32 3
  %225 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %224, i32 0, i32 4
  %226 = load ptr, ptr %225, align 8, !tbaa !36
  %227 = getelementptr inbounds double, ptr %226, i64 7
  %228 = load double, ptr %227, align 8, !tbaa !40
  store double %228, ptr %24, align 8, !tbaa !40
  %229 = load ptr, ptr %6, align 8, !tbaa !5
  %230 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %229, i32 0, i32 81
  %231 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %230, i32 0, i32 3
  %232 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %231, i32 0, i32 4
  %233 = load ptr, ptr %232, align 8, !tbaa !36
  %234 = getelementptr inbounds double, ptr %233, i64 8
  %235 = load double, ptr %234, align 8, !tbaa !40
  store double %235, ptr %30, align 8, !tbaa !40
  %236 = load ptr, ptr %6, align 8, !tbaa !5
  %237 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %236, i32 0, i32 81
  %238 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %237, i32 0, i32 3
  %239 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %238, i32 0, i32 4
  %240 = load ptr, ptr %239, align 8, !tbaa !36
  %241 = getelementptr inbounds double, ptr %240, i64 9
  %242 = load double, ptr %241, align 8, !tbaa !40
  store double %242, ptr %31, align 8, !tbaa !40
  %243 = load ptr, ptr %6, align 8, !tbaa !5
  %244 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %243, i32 0, i32 81
  %245 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %244, i32 0, i32 3
  %246 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %245, i32 0, i32 4
  %247 = load ptr, ptr %246, align 8, !tbaa !36
  %248 = getelementptr inbounds double, ptr %247, i64 10
  %249 = load double, ptr %248, align 8, !tbaa !40
  store double %249, ptr %32, align 8, !tbaa !40
  %250 = load ptr, ptr %6, align 8, !tbaa !5
  %251 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %250, i32 0, i32 81
  %252 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %251, i32 0, i32 3
  %253 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %252, i32 0, i32 4
  %254 = load ptr, ptr %253, align 8, !tbaa !36
  %255 = getelementptr inbounds double, ptr %254, i64 11
  %256 = load double, ptr %255, align 8, !tbaa !40
  store double %256, ptr %35, align 8, !tbaa !40
  %257 = load ptr, ptr %6, align 8, !tbaa !5
  %258 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %257, i32 0, i32 81
  %259 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %258, i32 0, i32 3
  %260 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %259, i32 0, i32 4
  %261 = load ptr, ptr %260, align 8, !tbaa !36
  %262 = getelementptr inbounds double, ptr %261, i64 12
  %263 = load double, ptr %262, align 8, !tbaa !40
  store double %263, ptr %36, align 8, !tbaa !40
  %264 = load ptr, ptr %6, align 8, !tbaa !5
  %265 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %264, i32 0, i32 81
  %266 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %265, i32 0, i32 3
  %267 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %266, i32 0, i32 4
  %268 = load ptr, ptr %267, align 8, !tbaa !36
  %269 = getelementptr inbounds double, ptr %268, i64 13
  %270 = load double, ptr %269, align 8, !tbaa !40
  store double %270, ptr %37, align 8, !tbaa !40
  %271 = load ptr, ptr %6, align 8, !tbaa !5
  %272 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %271, i32 0, i32 81
  %273 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %272, i32 0, i32 3
  %274 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %273, i32 0, i32 4
  %275 = load ptr, ptr %274, align 8, !tbaa !36
  %276 = getelementptr inbounds double, ptr %275, i64 14
  %277 = load double, ptr %276, align 8, !tbaa !40
  store double %277, ptr %38, align 8, !tbaa !40
  %278 = load ptr, ptr %6, align 8, !tbaa !5
  %279 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %278, i32 0, i32 81
  %280 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %279, i32 0, i32 3
  %281 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %280, i32 0, i32 4
  %282 = load ptr, ptr %281, align 8, !tbaa !36
  %283 = getelementptr inbounds double, ptr %282, i64 15
  %284 = load double, ptr %283, align 8, !tbaa !40
  store double %284, ptr %39, align 8, !tbaa !40
  %285 = load ptr, ptr %6, align 8, !tbaa !5
  %286 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %285, i32 0, i32 81
  %287 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %286, i32 0, i32 3
  %288 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %287, i32 0, i32 4
  %289 = load ptr, ptr %288, align 8, !tbaa !36
  %290 = getelementptr inbounds double, ptr %289, i64 16
  %291 = load double, ptr %290, align 8, !tbaa !40
  store double %291, ptr %40, align 8, !tbaa !40
  %292 = load ptr, ptr %6, align 8, !tbaa !5
  %293 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %292, i32 0, i32 81
  %294 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %293, i32 0, i32 3
  %295 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %294, i32 0, i32 4
  %296 = load ptr, ptr %295, align 8, !tbaa !36
  %297 = getelementptr inbounds double, ptr %296, i64 17
  %298 = load double, ptr %297, align 8, !tbaa !40
  store double %298, ptr %41, align 8, !tbaa !40
  %299 = load ptr, ptr %6, align 8, !tbaa !5
  %300 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %299, i32 0, i32 81
  %301 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %300, i32 0, i32 3
  %302 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %301, i32 0, i32 4
  %303 = load ptr, ptr %302, align 8, !tbaa !36
  %304 = getelementptr inbounds double, ptr %303, i64 18
  %305 = load double, ptr %304, align 8, !tbaa !40
  store double %305, ptr %43, align 8, !tbaa !40
  %306 = load ptr, ptr %6, align 8, !tbaa !5
  %307 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %306, i32 0, i32 81
  %308 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %307, i32 0, i32 3
  %309 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %308, i32 0, i32 4
  %310 = load ptr, ptr %309, align 8, !tbaa !36
  %311 = getelementptr inbounds double, ptr %310, i64 19
  %312 = load double, ptr %311, align 8, !tbaa !40
  store double %312, ptr %44, align 8, !tbaa !40
  %313 = load ptr, ptr %6, align 8, !tbaa !5
  %314 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %313, i32 0, i32 81
  %315 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %314, i32 0, i32 3
  %316 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %315, i32 0, i32 4
  %317 = load ptr, ptr %316, align 8, !tbaa !36
  %318 = getelementptr inbounds double, ptr %317, i64 20
  %319 = load double, ptr %318, align 8, !tbaa !40
  store double %319, ptr %45, align 8, !tbaa !40
  %320 = load ptr, ptr %6, align 8, !tbaa !5
  %321 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %320, i32 0, i32 81
  %322 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %321, i32 0, i32 3
  %323 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %322, i32 0, i32 4
  %324 = load ptr, ptr %323, align 8, !tbaa !36
  %325 = getelementptr inbounds double, ptr %324, i64 21
  %326 = load double, ptr %325, align 8, !tbaa !40
  store double %326, ptr %46, align 8, !tbaa !40
  %327 = load ptr, ptr %6, align 8, !tbaa !5
  %328 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %327, i32 0, i32 81
  %329 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %328, i32 0, i32 3
  %330 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %329, i32 0, i32 4
  %331 = load ptr, ptr %330, align 8, !tbaa !36
  %332 = getelementptr inbounds double, ptr %331, i64 22
  %333 = load double, ptr %332, align 8, !tbaa !40
  store double %333, ptr %47, align 8, !tbaa !40
  %334 = load ptr, ptr %6, align 8, !tbaa !5
  %335 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %334, i32 0, i32 81
  %336 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %335, i32 0, i32 3
  %337 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %336, i32 0, i32 4
  %338 = load ptr, ptr %337, align 8, !tbaa !36
  %339 = getelementptr inbounds double, ptr %338, i64 23
  %340 = load double, ptr %339, align 8, !tbaa !40
  store double %340, ptr %48, align 8, !tbaa !40
  br label %342

341:                                              ; preds = %4
  store i64 359, ptr %10, align 8, !tbaa !37
  store i64 -58, ptr %11, align 8, !tbaa !37
  store i64 -919, ptr %12, align 8, !tbaa !37
  store i64 -909, ptr %13, align 8, !tbaa !37
  store i64 81, ptr %25, align 8, !tbaa !37
  store i64 255, ptr %26, align 8, !tbaa !37
  store i64 74, ptr %27, align 8, !tbaa !37
  store i64 -788, ptr %28, align 8, !tbaa !37
  store i64 809, ptr %29, align 8, !tbaa !37
  store i64 205, ptr %33, align 8, !tbaa !37
  store i8 0, ptr %14, align 1, !tbaa !9
  store i8 1, ptr %15, align 1, !tbaa !9
  store i8 0, ptr %16, align 1, !tbaa !9
  store i8 1, ptr %34, align 1, !tbaa !9
  store i8 1, ptr %42, align 1, !tbaa !9
  store double -6.980000e+02, ptr %17, align 8, !tbaa !40
  store double -9.000000e+02, ptr %18, align 8, !tbaa !40
  store double -3.180000e+02, ptr %19, align 8, !tbaa !40
  store double -9.400000e+02, ptr %20, align 8, !tbaa !40
  store double 1.016000e+03, ptr %21, align 8, !tbaa !40
  store double -2.290000e+02, ptr %22, align 8, !tbaa !40
  store double -5.360000e+02, ptr %23, align 8, !tbaa !40
  store double 4.870000e+02, ptr %24, align 8, !tbaa !40
  store double -1.150000e+02, ptr %30, align 8, !tbaa !40
  store double 8.860000e+02, ptr %31, align 8, !tbaa !40
  store double 3.460000e+02, ptr %32, align 8, !tbaa !40
  store double -7.220000e+02, ptr %35, align 8, !tbaa !40
  store double -4.130000e+02, ptr %36, align 8, !tbaa !40
  store double -4.610000e+02, ptr %37, align 8, !tbaa !40
  store double 9.270000e+02, ptr %38, align 8, !tbaa !40
  store double 2.010000e+02, ptr %39, align 8, !tbaa !40
  store double 9.220000e+02, ptr %40, align 8, !tbaa !40
  store double -1.540000e+02, ptr %41, align 8, !tbaa !40
  store double 3.060000e+02, ptr %43, align 8, !tbaa !40
  store double -1.011000e+03, ptr %44, align 8, !tbaa !40
  store double 9.510000e+02, ptr %45, align 8, !tbaa !40
  store double -4.630000e+02, ptr %46, align 8, !tbaa !40
  store double 8.800000e+01, ptr %47, align 8, !tbaa !40
  store double -8.610000e+02, ptr %48, align 8, !tbaa !40
  br label %342

342:                                              ; preds = %341, %57
  %343 = load ptr, ptr %6, align 8, !tbaa !5
  %344 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %343, i32 0, i32 81
  %345 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %344, i32 0, i32 0
  %346 = load i32, ptr %345, align 8, !tbaa !11
  %347 = icmp eq i32 %346, 0
  br i1 %347, label %348, label %349

348:                                              ; preds = %342
  br label %807

349:                                              ; preds = %342
  %350 = load ptr, ptr %6, align 8, !tbaa !5
  %351 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %350, i32 0, i32 81
  %352 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %351, i32 0, i32 0
  %353 = load i32, ptr %352, align 8, !tbaa !11
  %354 = icmp eq i32 %353, 1
  br i1 %354, label %355, label %356

355:                                              ; preds = %349
  br label %849

356:                                              ; preds = %349
  %357 = load ptr, ptr %6, align 8, !tbaa !5
  %358 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %357, i32 0, i32 81
  %359 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %358, i32 0, i32 0
  %360 = load i32, ptr %359, align 8, !tbaa !11
  %361 = icmp eq i32 %360, 2
  br i1 %361, label %362, label %363

362:                                              ; preds = %356
  br label %1714

363:                                              ; preds = %356
  %364 = load ptr, ptr %6, align 8, !tbaa !5
  %365 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %364, i32 0, i32 81
  %366 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %365, i32 0, i32 0
  %367 = load i32, ptr %366, align 8, !tbaa !11
  %368 = icmp eq i32 %367, 3
  br i1 %368, label %369, label %370

369:                                              ; preds = %363
  br label %1882

370:                                              ; preds = %363
  %371 = load ptr, ptr %6, align 8, !tbaa !5
  %372 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %371, i32 0, i32 81
  %373 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %372, i32 0, i32 0
  %374 = load i32, ptr %373, align 8, !tbaa !11
  %375 = icmp eq i32 %374, 4
  br i1 %375, label %376, label %377

376:                                              ; preds = %370
  br label %2055

377:                                              ; preds = %370
  %378 = load ptr, ptr %6, align 8, !tbaa !5
  %379 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %378, i32 0, i32 81
  %380 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %379, i32 0, i32 0
  %381 = load i32, ptr %380, align 8, !tbaa !11
  %382 = icmp eq i32 %381, 5
  br i1 %382, label %383, label %384

383:                                              ; preds = %377
  br label %3284

384:                                              ; preds = %377
  %385 = load ptr, ptr %6, align 8, !tbaa !5
  %386 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %385, i32 0, i32 0
  %387 = load i64, ptr %386, align 8, !tbaa !41
  store i64 %387, ptr %10, align 8, !tbaa !37
  %388 = load ptr, ptr %6, align 8, !tbaa !5
  %389 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %388, i32 0, i32 1
  %390 = load i64, ptr %389, align 8, !tbaa !42
  store i64 %390, ptr %11, align 8, !tbaa !37
  %391 = load ptr, ptr %6, align 8, !tbaa !5
  %392 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %391, i32 0, i32 2
  %393 = load i64, ptr %392, align 8, !tbaa !43
  store i64 %393, ptr %12, align 8, !tbaa !37
  %394 = load ptr, ptr %6, align 8, !tbaa !5
  %395 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %394, i32 0, i32 1
  %396 = load i64, ptr %395, align 8, !tbaa !42
  %397 = load ptr, ptr %6, align 8, !tbaa !5
  %398 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %397, i32 0, i32 2
  %399 = load i64, ptr %398, align 8, !tbaa !43
  %400 = add nsw i64 %396, %399
  store i64 %400, ptr %13, align 8, !tbaa !37
  %401 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1247)
  %402 = zext i1 %401 to i8
  store i8 %402, ptr %14, align 1, !tbaa !9
  %403 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %404 = trunc i8 %403 to i1
  br i1 %404, label %405, label %407

405:                                              ; preds = %384
  %406 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1248)
  br label %407

407:                                              ; preds = %405, %384
  %408 = phi i1 [ false, %384 ], [ %406, %405 ]
  %409 = zext i1 %408 to i8
  store i8 %409, ptr %16, align 1, !tbaa !9
  %410 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %411 = trunc i8 %410 to i1
  br i1 %411, label %412, label %414

412:                                              ; preds = %407
  %413 = call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef @.str.1249)
  br label %414

414:                                              ; preds = %412, %407
  %415 = phi i1 [ false, %407 ], [ %413, %412 ]
  %416 = zext i1 %415 to i8
  store i8 %416, ptr %15, align 1, !tbaa !9
  %417 = load ptr, ptr %6, align 8, !tbaa !5
  %418 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %417, i32 0, i32 27
  store i8 0, ptr %418, align 8, !tbaa !44
  %419 = load ptr, ptr %6, align 8, !tbaa !5
  %420 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %419, i32 0, i32 28
  store i8 0, ptr %420, align 1, !tbaa !45
  %421 = load ptr, ptr %6, align 8, !tbaa !5
  %422 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %421, i32 0, i32 29
  store i8 0, ptr %422, align 2, !tbaa !46
  store i64 0, ptr %25, align 8, !tbaa !37
  br label %423

423:                                              ; preds = %440, %414
  %424 = load i64, ptr %25, align 8, !tbaa !37
  %425 = load i64, ptr %12, align 8, !tbaa !37
  %426 = icmp sle i64 %424, %425
  br i1 %426, label %427, label %443

427:                                              ; preds = %423
  %428 = load ptr, ptr %6, align 8, !tbaa !5
  %429 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %428, i32 0, i32 45
  %430 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %429, i32 0, i32 4
  %431 = load ptr, ptr %430, align 8, !tbaa !36
  %432 = load i64, ptr %25, align 8, !tbaa !37
  %433 = getelementptr inbounds double, ptr %431, i64 %432
  store double 1.000000e+00, ptr %433, align 8, !tbaa !40
  %434 = load ptr, ptr %6, align 8, !tbaa !5
  %435 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %434, i32 0, i32 46
  %436 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %435, i32 0, i32 4
  %437 = load ptr, ptr %436, align 8, !tbaa !36
  %438 = load i64, ptr %25, align 8, !tbaa !37
  %439 = getelementptr inbounds double, ptr %437, i64 %438
  store double 0.000000e+00, ptr %439, align 8, !tbaa !40
  br label %440

440:                                              ; preds = %427
  %441 = load i64, ptr %25, align 8, !tbaa !37
  %442 = add nsw i64 %441, 1
  store i64 %442, ptr %25, align 8, !tbaa !37
  br label %423, !llvm.loop !47

443:                                              ; preds = %423
  %444 = load ptr, ptr %6, align 8, !tbaa !5
  %445 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %444, i32 0, i32 71
  store i64 0, ptr %445, align 8, !tbaa !49
  %446 = load ptr, ptr %6, align 8, !tbaa !5
  %447 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %446, i32 0, i32 70
  store i64 0, ptr %447, align 8, !tbaa !50
  %448 = load ptr, ptr %6, align 8, !tbaa !5
  %449 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %448, i32 0, i32 72
  store i64 0, ptr %449, align 8, !tbaa !51
  %450 = load ptr, ptr %6, align 8, !tbaa !5
  %451 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %450, i32 0, i32 54
  store i64 0, ptr %451, align 8, !tbaa !52
  %452 = load ptr, ptr %6, align 8, !tbaa !5
  %453 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %452, i32 0, i32 55
  store i64 0, ptr %453, align 8, !tbaa !53
  %454 = load i64, ptr %10, align 8, !tbaa !37
  %455 = mul nsw i64 2, %454
  %456 = load ptr, ptr %6, align 8, !tbaa !5
  %457 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %456, i32 0, i32 40
  %458 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %455, double noundef 0.000000e+00, ptr noundef %457, ptr noundef %458)
  store i64 0, ptr %25, align 8, !tbaa !37
  br label %459

459:                                              ; preds = %554, %443
  %460 = load i64, ptr %25, align 8, !tbaa !37
  %461 = load i64, ptr %10, align 8, !tbaa !37
  %462 = sub nsw i64 %461, 1
  %463 = icmp sle i64 %460, %462
  br i1 %463, label %464, label %557

464:                                              ; preds = %459
  %465 = load ptr, ptr %6, align 8, !tbaa !5
  %466 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %465, i32 0, i32 4
  %467 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %466, i32 0, i32 4
  %468 = load ptr, ptr %467, align 8, !tbaa !36
  %469 = load i64, ptr %25, align 8, !tbaa !37
  %470 = getelementptr inbounds i8, ptr %468, i64 %469
  %471 = load i8, ptr %470, align 1, !tbaa !9, !range !38, !noundef !39
  %472 = trunc i8 %471 to i1
  br i1 %472, label %473, label %515

473:                                              ; preds = %464
  %474 = load ptr, ptr %6, align 8, !tbaa !5
  %475 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %474, i32 0, i32 5
  %476 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %475, i32 0, i32 4
  %477 = load ptr, ptr %476, align 8, !tbaa !36
  %478 = load i64, ptr %25, align 8, !tbaa !37
  %479 = getelementptr inbounds i8, ptr %477, i64 %478
  %480 = load i8, ptr %479, align 1, !tbaa !9, !range !38, !noundef !39
  %481 = trunc i8 %480 to i1
  br i1 %481, label %482, label %515

482:                                              ; preds = %473
  %483 = load ptr, ptr %6, align 8, !tbaa !5
  %484 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %483, i32 0, i32 6
  %485 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %484, i32 0, i32 4
  %486 = load ptr, ptr %485, align 8, !tbaa !36
  %487 = load i64, ptr %25, align 8, !tbaa !37
  %488 = getelementptr inbounds double, ptr %486, i64 %487
  %489 = load double, ptr %488, align 8, !tbaa !40
  %490 = load ptr, ptr %6, align 8, !tbaa !5
  %491 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %490, i32 0, i32 7
  %492 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %491, i32 0, i32 4
  %493 = load ptr, ptr %492, align 8, !tbaa !36
  %494 = load i64, ptr %25, align 8, !tbaa !37
  %495 = getelementptr inbounds double, ptr %493, i64 %494
  %496 = load double, ptr %495, align 8, !tbaa !40
  %497 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %489, double noundef %496)
  br i1 %497, label %498, label %515

498:                                              ; preds = %482
  %499 = load ptr, ptr %6, align 8, !tbaa !5
  %500 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %499, i32 0, i32 40
  %501 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %500, i32 0, i32 4
  %502 = load ptr, ptr %501, align 8, !tbaa !36
  %503 = load i64, ptr %25, align 8, !tbaa !37
  %504 = mul nsw i64 2, %503
  %505 = add nsw i64 %504, 0
  %506 = getelementptr inbounds double, ptr %502, i64 %505
  store double 0.000000e+00, ptr %506, align 8, !tbaa !40
  %507 = load ptr, ptr %6, align 8, !tbaa !5
  %508 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %507, i32 0, i32 40
  %509 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %508, i32 0, i32 4
  %510 = load ptr, ptr %509, align 8, !tbaa !36
  %511 = load i64, ptr %25, align 8, !tbaa !37
  %512 = mul nsw i64 2, %511
  %513 = add nsw i64 %512, 1
  %514 = getelementptr inbounds double, ptr %510, i64 %513
  store double 0.000000e+00, ptr %514, align 8, !tbaa !40
  br label %554

515:                                              ; preds = %482, %473, %464
  %516 = load ptr, ptr %6, align 8, !tbaa !5
  %517 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %516, i32 0, i32 4
  %518 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %517, i32 0, i32 4
  %519 = load ptr, ptr %518, align 8, !tbaa !36
  %520 = load i64, ptr %25, align 8, !tbaa !37
  %521 = getelementptr inbounds i8, ptr %519, i64 %520
  %522 = load i8, ptr %521, align 1, !tbaa !9, !range !38, !noundef !39
  %523 = trunc i8 %522 to i1
  br i1 %523, label %524, label %534

524:                                              ; preds = %515
  %525 = load double, ptr @_ZN11alglib_implL27nlcaul_defaultinequalitylagE, align 8, !tbaa !40
  %526 = load ptr, ptr %6, align 8, !tbaa !5
  %527 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %526, i32 0, i32 40
  %528 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %527, i32 0, i32 4
  %529 = load ptr, ptr %528, align 8, !tbaa !36
  %530 = load i64, ptr %25, align 8, !tbaa !37
  %531 = mul nsw i64 2, %530
  %532 = add nsw i64 %531, 0
  %533 = getelementptr inbounds double, ptr %529, i64 %532
  store double %525, ptr %533, align 8, !tbaa !40
  br label %534

534:                                              ; preds = %524, %515
  %535 = load ptr, ptr %6, align 8, !tbaa !5
  %536 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %535, i32 0, i32 5
  %537 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %536, i32 0, i32 4
  %538 = load ptr, ptr %537, align 8, !tbaa !36
  %539 = load i64, ptr %25, align 8, !tbaa !37
  %540 = getelementptr inbounds i8, ptr %538, i64 %539
  %541 = load i8, ptr %540, align 1, !tbaa !9, !range !38, !noundef !39
  %542 = trunc i8 %541 to i1
  br i1 %542, label %543, label %553

543:                                              ; preds = %534
  %544 = load double, ptr @_ZN11alglib_implL27nlcaul_defaultinequalitylagE, align 8, !tbaa !40
  %545 = load ptr, ptr %6, align 8, !tbaa !5
  %546 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %545, i32 0, i32 40
  %547 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %546, i32 0, i32 4
  %548 = load ptr, ptr %547, align 8, !tbaa !36
  %549 = load i64, ptr %25, align 8, !tbaa !37
  %550 = mul nsw i64 2, %549
  %551 = add nsw i64 %550, 1
  %552 = getelementptr inbounds double, ptr %548, i64 %551
  store double %544, ptr %552, align 8, !tbaa !40
  br label %553

553:                                              ; preds = %543, %534
  br label %554

554:                                              ; preds = %553, %498
  %555 = load i64, ptr %25, align 8, !tbaa !37
  %556 = add nsw i64 %555, 1
  store i64 %556, ptr %25, align 8, !tbaa !37
  br label %459, !llvm.loop !54

557:                                              ; preds = %459
  %558 = load i64, ptr %11, align 8, !tbaa !37
  %559 = load i64, ptr %12, align 8, !tbaa !37
  %560 = add nsw i64 %558, %559
  %561 = mul nsw i64 2, %560
  %562 = load ptr, ptr %6, align 8, !tbaa !5
  %563 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %562, i32 0, i32 41
  %564 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %561, double noundef 0.000000e+00, ptr noundef %563, ptr noundef %564)
  store i64 0, ptr %25, align 8, !tbaa !37
  br label %565

565:                                              ; preds = %660, %557
  %566 = load i64, ptr %25, align 8, !tbaa !37
  %567 = load i64, ptr %11, align 8, !tbaa !37
  %568 = sub nsw i64 %567, 1
  %569 = icmp sle i64 %566, %568
  br i1 %569, label %570, label %663

570:                                              ; preds = %565
  %571 = load ptr, ptr %6, align 8, !tbaa !5
  %572 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %571, i32 0, i32 13
  %573 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %572, i32 0, i32 4
  %574 = load ptr, ptr %573, align 8, !tbaa !36
  %575 = load i64, ptr %25, align 8, !tbaa !37
  %576 = getelementptr inbounds i8, ptr %574, i64 %575
  %577 = load i8, ptr %576, align 1, !tbaa !9, !range !38, !noundef !39
  %578 = trunc i8 %577 to i1
  br i1 %578, label %579, label %621

579:                                              ; preds = %570
  %580 = load ptr, ptr %6, align 8, !tbaa !5
  %581 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %580, i32 0, i32 14
  %582 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %581, i32 0, i32 4
  %583 = load ptr, ptr %582, align 8, !tbaa !36
  %584 = load i64, ptr %25, align 8, !tbaa !37
  %585 = getelementptr inbounds i8, ptr %583, i64 %584
  %586 = load i8, ptr %585, align 1, !tbaa !9, !range !38, !noundef !39
  %587 = trunc i8 %586 to i1
  br i1 %587, label %588, label %621

588:                                              ; preds = %579
  %589 = load ptr, ptr %6, align 8, !tbaa !5
  %590 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %589, i32 0, i32 11
  %591 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %590, i32 0, i32 4
  %592 = load ptr, ptr %591, align 8, !tbaa !36
  %593 = load i64, ptr %25, align 8, !tbaa !37
  %594 = getelementptr inbounds double, ptr %592, i64 %593
  %595 = load double, ptr %594, align 8, !tbaa !40
  %596 = load ptr, ptr %6, align 8, !tbaa !5
  %597 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %596, i32 0, i32 12
  %598 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %597, i32 0, i32 4
  %599 = load ptr, ptr %598, align 8, !tbaa !36
  %600 = load i64, ptr %25, align 8, !tbaa !37
  %601 = getelementptr inbounds double, ptr %599, i64 %600
  %602 = load double, ptr %601, align 8, !tbaa !40
  %603 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %595, double noundef %602)
  br i1 %603, label %604, label %621

604:                                              ; preds = %588
  %605 = load ptr, ptr %6, align 8, !tbaa !5
  %606 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %605, i32 0, i32 41
  %607 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %606, i32 0, i32 4
  %608 = load ptr, ptr %607, align 8, !tbaa !36
  %609 = load i64, ptr %25, align 8, !tbaa !37
  %610 = mul nsw i64 2, %609
  %611 = add nsw i64 %610, 0
  %612 = getelementptr inbounds double, ptr %608, i64 %611
  store double 0.000000e+00, ptr %612, align 8, !tbaa !40
  %613 = load ptr, ptr %6, align 8, !tbaa !5
  %614 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %613, i32 0, i32 41
  %615 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %614, i32 0, i32 4
  %616 = load ptr, ptr %615, align 8, !tbaa !36
  %617 = load i64, ptr %25, align 8, !tbaa !37
  %618 = mul nsw i64 2, %617
  %619 = add nsw i64 %618, 1
  %620 = getelementptr inbounds double, ptr %616, i64 %619
  store double 0.000000e+00, ptr %620, align 8, !tbaa !40
  br label %660

621:                                              ; preds = %588, %579, %570
  %622 = load ptr, ptr %6, align 8, !tbaa !5
  %623 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %622, i32 0, i32 13
  %624 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %623, i32 0, i32 4
  %625 = load ptr, ptr %624, align 8, !tbaa !36
  %626 = load i64, ptr %25, align 8, !tbaa !37
  %627 = getelementptr inbounds i8, ptr %625, i64 %626
  %628 = load i8, ptr %627, align 1, !tbaa !9, !range !38, !noundef !39
  %629 = trunc i8 %628 to i1
  br i1 %629, label %630, label %640

630:                                              ; preds = %621
  %631 = load double, ptr @_ZN11alglib_implL27nlcaul_defaultinequalitylagE, align 8, !tbaa !40
  %632 = load ptr, ptr %6, align 8, !tbaa !5
  %633 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %632, i32 0, i32 41
  %634 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %633, i32 0, i32 4
  %635 = load ptr, ptr %634, align 8, !tbaa !36
  %636 = load i64, ptr %25, align 8, !tbaa !37
  %637 = mul nsw i64 2, %636
  %638 = add nsw i64 %637, 0
  %639 = getelementptr inbounds double, ptr %635, i64 %638
  store double %631, ptr %639, align 8, !tbaa !40
  br label %640

640:                                              ; preds = %630, %621
  %641 = load ptr, ptr %6, align 8, !tbaa !5
  %642 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %641, i32 0, i32 14
  %643 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %642, i32 0, i32 4
  %644 = load ptr, ptr %643, align 8, !tbaa !36
  %645 = load i64, ptr %25, align 8, !tbaa !37
  %646 = getelementptr inbounds i8, ptr %644, i64 %645
  %647 = load i8, ptr %646, align 1, !tbaa !9, !range !38, !noundef !39
  %648 = trunc i8 %647 to i1
  br i1 %648, label %649, label %659

649:                                              ; preds = %640
  %650 = load double, ptr @_ZN11alglib_implL27nlcaul_defaultinequalitylagE, align 8, !tbaa !40
  %651 = load ptr, ptr %6, align 8, !tbaa !5
  %652 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %651, i32 0, i32 41
  %653 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %652, i32 0, i32 4
  %654 = load ptr, ptr %653, align 8, !tbaa !36
  %655 = load i64, ptr %25, align 8, !tbaa !37
  %656 = mul nsw i64 2, %655
  %657 = add nsw i64 %656, 1
  %658 = getelementptr inbounds double, ptr %654, i64 %657
  store double %650, ptr %658, align 8, !tbaa !40
  br label %659

659:                                              ; preds = %649, %640
  br label %660

660:                                              ; preds = %659, %604
  %661 = load i64, ptr %25, align 8, !tbaa !37
  %662 = add nsw i64 %661, 1
  store i64 %662, ptr %25, align 8, !tbaa !37
  br label %565, !llvm.loop !55

663:                                              ; preds = %565
  store i64 0, ptr %25, align 8, !tbaa !37
  br label %664

664:                                              ; preds = %771, %663
  %665 = load i64, ptr %25, align 8, !tbaa !37
  %666 = load i64, ptr %12, align 8, !tbaa !37
  %667 = sub nsw i64 %666, 1
  %668 = icmp sle i64 %665, %667
  br i1 %668, label %669, label %774

669:                                              ; preds = %664
  %670 = load ptr, ptr %6, align 8, !tbaa !5
  %671 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %670, i32 0, i32 17
  %672 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %671, i32 0, i32 4
  %673 = load ptr, ptr %672, align 8, !tbaa !36
  %674 = load i64, ptr %25, align 8, !tbaa !37
  %675 = getelementptr inbounds i8, ptr %673, i64 %674
  %676 = load i8, ptr %675, align 1, !tbaa !9, !range !38, !noundef !39
  %677 = trunc i8 %676 to i1
  br i1 %677, label %678, label %726

678:                                              ; preds = %669
  %679 = load ptr, ptr %6, align 8, !tbaa !5
  %680 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %679, i32 0, i32 18
  %681 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %680, i32 0, i32 4
  %682 = load ptr, ptr %681, align 8, !tbaa !36
  %683 = load i64, ptr %25, align 8, !tbaa !37
  %684 = getelementptr inbounds i8, ptr %682, i64 %683
  %685 = load i8, ptr %684, align 1, !tbaa !9, !range !38, !noundef !39
  %686 = trunc i8 %685 to i1
  br i1 %686, label %687, label %726

687:                                              ; preds = %678
  %688 = load ptr, ptr %6, align 8, !tbaa !5
  %689 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %688, i32 0, i32 15
  %690 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %689, i32 0, i32 4
  %691 = load ptr, ptr %690, align 8, !tbaa !36
  %692 = load i64, ptr %25, align 8, !tbaa !37
  %693 = getelementptr inbounds double, ptr %691, i64 %692
  %694 = load double, ptr %693, align 8, !tbaa !40
  %695 = load ptr, ptr %6, align 8, !tbaa !5
  %696 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %695, i32 0, i32 16
  %697 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %696, i32 0, i32 4
  %698 = load ptr, ptr %697, align 8, !tbaa !36
  %699 = load i64, ptr %25, align 8, !tbaa !37
  %700 = getelementptr inbounds double, ptr %698, i64 %699
  %701 = load double, ptr %700, align 8, !tbaa !40
  %702 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %694, double noundef %701)
  br i1 %702, label %703, label %726

703:                                              ; preds = %687
  %704 = load ptr, ptr %6, align 8, !tbaa !5
  %705 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %704, i32 0, i32 41
  %706 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %705, i32 0, i32 4
  %707 = load ptr, ptr %706, align 8, !tbaa !36
  %708 = load i64, ptr %11, align 8, !tbaa !37
  %709 = mul nsw i64 2, %708
  %710 = load i64, ptr %25, align 8, !tbaa !37
  %711 = mul nsw i64 2, %710
  %712 = add nsw i64 %709, %711
  %713 = add nsw i64 %712, 0
  %714 = getelementptr inbounds double, ptr %707, i64 %713
  store double 0.000000e+00, ptr %714, align 8, !tbaa !40
  %715 = load ptr, ptr %6, align 8, !tbaa !5
  %716 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %715, i32 0, i32 41
  %717 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %716, i32 0, i32 4
  %718 = load ptr, ptr %717, align 8, !tbaa !36
  %719 = load i64, ptr %11, align 8, !tbaa !37
  %720 = mul nsw i64 2, %719
  %721 = load i64, ptr %25, align 8, !tbaa !37
  %722 = mul nsw i64 2, %721
  %723 = add nsw i64 %720, %722
  %724 = add nsw i64 %723, 1
  %725 = getelementptr inbounds double, ptr %718, i64 %724
  store double 0.000000e+00, ptr %725, align 8, !tbaa !40
  br label %771

726:                                              ; preds = %687, %678, %669
  %727 = load ptr, ptr %6, align 8, !tbaa !5
  %728 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %727, i32 0, i32 17
  %729 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %728, i32 0, i32 4
  %730 = load ptr, ptr %729, align 8, !tbaa !36
  %731 = load i64, ptr %25, align 8, !tbaa !37
  %732 = getelementptr inbounds i8, ptr %730, i64 %731
  %733 = load i8, ptr %732, align 1, !tbaa !9, !range !38, !noundef !39
  %734 = trunc i8 %733 to i1
  br i1 %734, label %735, label %748

735:                                              ; preds = %726
  %736 = load double, ptr @_ZN11alglib_implL27nlcaul_defaultinequalitylagE, align 8, !tbaa !40
  %737 = load ptr, ptr %6, align 8, !tbaa !5
  %738 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %737, i32 0, i32 41
  %739 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %738, i32 0, i32 4
  %740 = load ptr, ptr %739, align 8, !tbaa !36
  %741 = load i64, ptr %11, align 8, !tbaa !37
  %742 = mul nsw i64 2, %741
  %743 = load i64, ptr %25, align 8, !tbaa !37
  %744 = mul nsw i64 2, %743
  %745 = add nsw i64 %742, %744
  %746 = add nsw i64 %745, 0
  %747 = getelementptr inbounds double, ptr %740, i64 %746
  store double %736, ptr %747, align 8, !tbaa !40
  br label %748

748:                                              ; preds = %735, %726
  %749 = load ptr, ptr %6, align 8, !tbaa !5
  %750 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %749, i32 0, i32 18
  %751 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %750, i32 0, i32 4
  %752 = load ptr, ptr %751, align 8, !tbaa !36
  %753 = load i64, ptr %25, align 8, !tbaa !37
  %754 = getelementptr inbounds i8, ptr %752, i64 %753
  %755 = load i8, ptr %754, align 1, !tbaa !9, !range !38, !noundef !39
  %756 = trunc i8 %755 to i1
  br i1 %756, label %757, label %770

757:                                              ; preds = %748
  %758 = load double, ptr @_ZN11alglib_implL27nlcaul_defaultinequalitylagE, align 8, !tbaa !40
  %759 = load ptr, ptr %6, align 8, !tbaa !5
  %760 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %759, i32 0, i32 41
  %761 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %760, i32 0, i32 4
  %762 = load ptr, ptr %761, align 8, !tbaa !36
  %763 = load i64, ptr %11, align 8, !tbaa !37
  %764 = mul nsw i64 2, %763
  %765 = load i64, ptr %25, align 8, !tbaa !37
  %766 = mul nsw i64 2, %765
  %767 = add nsw i64 %764, %766
  %768 = add nsw i64 %767, 1
  %769 = getelementptr inbounds double, ptr %762, i64 %768
  store double %758, ptr %769, align 8, !tbaa !40
  br label %770

770:                                              ; preds = %757, %748
  br label %771

771:                                              ; preds = %770, %703
  %772 = load i64, ptr %25, align 8, !tbaa !37
  %773 = add nsw i64 %772, 1
  store i64 %773, ptr %25, align 8, !tbaa !37
  br label %664, !llvm.loop !56

774:                                              ; preds = %664
  %775 = load i64, ptr %10, align 8, !tbaa !37
  %776 = load i64, ptr %12, align 8, !tbaa !37
  %777 = add nsw i64 1, %776
  %778 = load ptr, ptr %6, align 8, !tbaa !5
  %779 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %778, i32 0, i32 31
  %780 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl14vfjallocsparseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %775, i64 noundef %777, ptr noundef %779, ptr noundef %780)
  %781 = load i64, ptr %10, align 8, !tbaa !37
  %782 = load i64, ptr %12, align 8, !tbaa !37
  %783 = add nsw i64 1, %782
  %784 = load ptr, ptr %6, align 8, !tbaa !5
  %785 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %784, i32 0, i32 34
  %786 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl14vfjallocsparseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %781, i64 noundef %783, ptr noundef %785, ptr noundef %786)
  %787 = load i64, ptr %10, align 8, !tbaa !37
  %788 = load ptr, ptr %6, align 8, !tbaa !5
  %789 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %788, i32 0, i32 42
  %790 = load ptr, ptr %6, align 8, !tbaa !5
  %791 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %790, i32 0, i32 31
  %792 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %791, i32 0, i32 3
  %793 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %787, ptr noundef %789, ptr noundef %792, ptr noundef %793)
  %794 = load ptr, ptr %6, align 8, !tbaa !5
  %795 = load ptr, ptr %6, align 8, !tbaa !5
  %796 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %795, i32 0, i32 31
  %797 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %796, i32 0, i32 3
  %798 = load ptr, ptr %6, align 8, !tbaa !5
  %799 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %798, i32 0, i32 34
  %800 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %799, i32 0, i32 3
  %801 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL26nlcaul_aulsendvirtualpointEPNS_11minaulstateEPKNS_9ae_vectorEPS2_PNS_8ae_stateE(ptr noundef %794, ptr noundef %797, ptr noundef %800, ptr noundef %801)
  %802 = load ptr, ptr %6, align 8, !tbaa !5
  %803 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %802, i32 0, i32 27
  store i8 1, ptr %803, align 8, !tbaa !44
  %804 = load ptr, ptr %6, align 8, !tbaa !5
  %805 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %804, i32 0, i32 81
  %806 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %805, i32 0, i32 0
  store i32 0, ptr %806, align 8, !tbaa !11
  br label %3311

807:                                              ; preds = %348
  %808 = load ptr, ptr %6, align 8, !tbaa !5
  %809 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %808, i32 0, i32 27
  store i8 0, ptr %809, align 8, !tbaa !44
  %810 = load ptr, ptr %6, align 8, !tbaa !5
  %811 = load ptr, ptr %6, align 8, !tbaa !5
  %812 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %811, i32 0, i32 31
  %813 = load ptr, ptr %6, align 8, !tbaa !5
  %814 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %813, i32 0, i32 34
  %815 = load ptr, ptr %9, align 8, !tbaa !5
  %816 = call noundef zeroext i1 @_ZN11alglib_implL20nlcaul_aulretrievesjEPNS_11minaulstateEPNS_11varsfuncjacES3_PNS_8ae_stateE(ptr noundef %810, ptr noundef %812, ptr noundef %814, ptr noundef %815)
  br i1 %816, label %822, label %817

817:                                              ; preds = %807
  %818 = load ptr, ptr %6, align 8, !tbaa !5
  %819 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %818, i32 0, i32 71
  store i64 -8, ptr %819, align 8, !tbaa !49
  store i8 0, ptr %49, align 1, !tbaa !9
  %820 = load i8, ptr %49, align 1, !tbaa !9, !range !38, !noundef !39
  %821 = trunc i8 %820 to i1
  store i1 %821, ptr %5, align 1
  store i32 1, ptr %50, align 4
  br label %3597

822:                                              ; preds = %807
  %823 = load ptr, ptr %6, align 8, !tbaa !5
  %824 = load ptr, ptr %6, align 8, !tbaa !5
  %825 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %824, i32 0, i32 34
  %826 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %825, i32 0, i32 3
  %827 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL23nlcaul_aulsendtruepointEPNS_11minaulstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %823, ptr noundef %826, ptr noundef %827)
  %828 = load ptr, ptr %6, align 8, !tbaa !5
  %829 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %828, i32 0, i32 34
  %830 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %829, i32 0, i32 4
  %831 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %830, i32 0, i32 4
  %832 = load ptr, ptr %831, align 8, !tbaa !36
  %833 = getelementptr inbounds double, ptr %832, i64 0
  %834 = load double, ptr %833, align 8, !tbaa !40
  %835 = load ptr, ptr %6, align 8, !tbaa !5
  %836 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %835, i32 0, i32 45
  %837 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %836, i32 0, i32 4
  %838 = load ptr, ptr %837, align 8, !tbaa !36
  %839 = getelementptr inbounds double, ptr %838, i64 0
  %840 = load double, ptr %839, align 8, !tbaa !40
  %841 = fmul double %834, %840
  %842 = load ptr, ptr %6, align 8, !tbaa !5
  %843 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %842, i32 0, i32 26
  store double %841, ptr %843, align 8, !tbaa !57
  %844 = load ptr, ptr %6, align 8, !tbaa !5
  %845 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %844, i32 0, i32 29
  store i8 1, ptr %845, align 2, !tbaa !46
  %846 = load ptr, ptr %6, align 8, !tbaa !5
  %847 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %846, i32 0, i32 81
  %848 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %847, i32 0, i32 0
  store i32 1, ptr %848, align 8, !tbaa !11
  br label %3311

849:                                              ; preds = %355
  %850 = load ptr, ptr %6, align 8, !tbaa !5
  %851 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %850, i32 0, i32 29
  store i8 0, ptr %851, align 2, !tbaa !46
  %852 = load ptr, ptr %6, align 8, !tbaa !5
  %853 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %852, i32 0, i32 10
  %854 = load ptr, ptr %6, align 8, !tbaa !5
  %855 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %854, i32 0, i32 11
  %856 = load ptr, ptr %6, align 8, !tbaa !5
  %857 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %856, i32 0, i32 12
  %858 = load ptr, ptr %6, align 8, !tbaa !5
  %859 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %858, i32 0, i32 19
  %860 = load i64, ptr %11, align 8, !tbaa !37
  %861 = load ptr, ptr %6, align 8, !tbaa !5
  %862 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %861, i32 0, i32 34
  %863 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %862, i32 0, i32 3
  %864 = load ptr, ptr %6, align 8, !tbaa !5
  %865 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %864, i32 0, i32 75
  %866 = load ptr, ptr %6, align 8, !tbaa !5
  %867 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %866, i32 0, i32 76
  %868 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl17checklc2violationEPKNS_12sparsematrixEPKNS_9ae_vectorES5_S5_lS5_PdPlPNS_8ae_stateE(ptr noundef %853, ptr noundef %855, ptr noundef %857, ptr noundef %859, i64 noundef %860, ptr noundef %863, ptr noundef %865, ptr noundef %867, ptr noundef %868)
  %869 = load ptr, ptr %6, align 8, !tbaa !5
  %870 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %869, i32 0, i32 34
  %871 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %870, i32 0, i32 4
  %872 = load ptr, ptr %6, align 8, !tbaa !5
  %873 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %872, i32 0, i32 45
  %874 = load ptr, ptr %6, align 8, !tbaa !5
  %875 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %874, i32 0, i32 15
  %876 = load ptr, ptr %6, align 8, !tbaa !5
  %877 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %876, i32 0, i32 16
  %878 = load i64, ptr %12, align 8, !tbaa !37
  %879 = load ptr, ptr %6, align 8, !tbaa !5
  %880 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %879, i32 0, i32 77
  %881 = load ptr, ptr %6, align 8, !tbaa !5
  %882 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %881, i32 0, i32 78
  %883 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl28unscaleandchecknlc2violationEPKNS_9ae_vectorES2_S2_S2_lPdPlPNS_8ae_stateE(ptr noundef %871, ptr noundef %873, ptr noundef %875, ptr noundef %877, i64 noundef %878, ptr noundef %880, ptr noundef %882, ptr noundef %883)
  %884 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %885 = trunc i8 %884 to i1
  br i1 %885, label %886, label %897

886:                                              ; preds = %849
  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.1250)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.212)
  %887 = load i64, ptr %10, align 8, !tbaa !37
  %888 = trunc i64 %887 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.708, i32 noundef %888)
  %889 = load ptr, ptr %6, align 8, !tbaa !5
  %890 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %889, i32 0, i32 1
  %891 = load i64, ptr %890, align 8, !tbaa !42
  %892 = trunc i64 %891 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1119, i32 noundef %892)
  %893 = load ptr, ptr %6, align 8, !tbaa !5
  %894 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %893, i32 0, i32 2
  %895 = load i64, ptr %894, align 8, !tbaa !43
  %896 = trunc i64 %895 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1120, i32 noundef %896)
  br label %897

897:                                              ; preds = %886, %849
  store double 1.000000e+50, ptr %46, align 8, !tbaa !40
  store double 1.000000e+50, ptr %47, align 8, !tbaa !40
  store double 1.000000e+50, ptr %48, align 8, !tbaa !40
  %898 = load ptr, ptr %6, align 8, !tbaa !5
  %899 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %898, i32 0, i32 56
  store i64 0, ptr %899, align 8, !tbaa !58
  %900 = load ptr, ptr %6, align 8, !tbaa !5
  %901 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %900, i32 0, i32 57
  store double 0.000000e+00, ptr %901, align 8, !tbaa !59
  %902 = load ptr, ptr %6, align 8, !tbaa !5
  %903 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %902, i32 0, i32 30
  store double 5.000000e+02, ptr %903, align 8, !tbaa !60
  %904 = load ptr, ptr %6, align 8, !tbaa !5
  %905 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %904, i32 0, i32 48
  %906 = load i64, ptr %10, align 8, !tbaa !37
  %907 = load i64, ptr %10, align 8, !tbaa !37
  %908 = load i64, ptr @_ZN11alglib_implL18nlcaul_xbfgsmemlenE, align 8, !tbaa !37
  %909 = load ptr, ptr %9, align 8, !tbaa !5
  %910 = call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %907, i64 noundef %908, ptr noundef %909)
  %911 = load ptr, ptr %6, align 8, !tbaa !5
  %912 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %911, i32 0, i32 20
  %913 = load ptr, ptr %9, align 8, !tbaa !5
  %914 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %912, ptr noundef %913)
  %915 = load ptr, ptr %9, align 8, !tbaa !5
  %916 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %915)
  %917 = load ptr, ptr %9, align 8, !tbaa !5
  %918 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %914, double noundef %916, ptr noundef %917)
  %919 = load double, ptr @_ZN11alglib_implL19nlcaul_xbfgsmaxhessE, align 8, !tbaa !40
  %920 = load ptr, ptr %6, align 8, !tbaa !5
  %921 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %920, i32 0, i32 30
  %922 = load double, ptr %921, align 8, !tbaa !60
  %923 = fadd double 1.000000e+00, %922
  %924 = fmul double %919, %923
  %925 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl18hessianinitlowrankEPNS_12xbfgshessianEllddPNS_8ae_stateE(ptr noundef %905, i64 noundef %906, i64 noundef %910, double noundef %918, double noundef %924, ptr noundef %925)
  %926 = load ptr, ptr %6, align 8, !tbaa !5
  %927 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %926, i32 0, i32 49
  %928 = load i64, ptr %10, align 8, !tbaa !37
  %929 = load ptr, ptr %6, align 8, !tbaa !5
  %930 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %929, i32 0, i32 20
  %931 = load ptr, ptr %9, align 8, !tbaa !5
  %932 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %930, ptr noundef %931)
  %933 = load ptr, ptr %9, align 8, !tbaa !5
  %934 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %933)
  %935 = load ptr, ptr %9, align 8, !tbaa !5
  %936 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %932, double noundef %934, ptr noundef %935)
  %937 = load double, ptr @_ZN11alglib_implL19nlcaul_xbfgsmaxhessE, align 8, !tbaa !40
  %938 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl18hessianinitlowrankEPNS_12xbfgshessianEllddPNS_8ae_stateE(ptr noundef %927, i64 noundef %928, i64 noundef 1, double noundef %936, double noundef %937, ptr noundef %938)
  %939 = load ptr, ptr %6, align 8, !tbaa !5
  %940 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %939, i32 0, i32 31
  %941 = load ptr, ptr %6, align 8, !tbaa !5
  %942 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %941, i32 0, i32 33
  %943 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %940, ptr noundef %942, ptr noundef %943)
  %944 = load ptr, ptr %6, align 8, !tbaa !5
  %945 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %944, i32 0, i32 34
  %946 = load ptr, ptr %6, align 8, !tbaa !5
  %947 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %946, i32 0, i32 36
  %948 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %945, ptr noundef %947, ptr noundef %948)
  %949 = load ptr, ptr %6, align 8, !tbaa !5
  %950 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %949, i32 0, i32 37
  store double 1.000000e+300, ptr %950, align 8, !tbaa !61
  %951 = load ptr, ptr %6, align 8, !tbaa !5
  %952 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %951, i32 0, i32 38
  store i64 -1, ptr %952, align 8, !tbaa !62
  %953 = load ptr, ptr %6, align 8, !tbaa !5
  %954 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %953, i32 0, i32 39
  store i64 0, ptr %954, align 8, !tbaa !63
  %955 = load ptr, ptr %6, align 8, !tbaa !5
  %956 = load ptr, ptr %6, align 8, !tbaa !5
  %957 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %956, i32 0, i32 22
  %958 = load i64, ptr %957, align 8, !tbaa !64
  %959 = load ptr, ptr %6, align 8, !tbaa !5
  %960 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %959, i32 0, i32 47
  %961 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL25nlcaul_preconditionerinitEPKNS_11minaulstateElPNS_20minaulpreconditionerEPNS_8ae_stateE(ptr noundef %955, i64 noundef %958, ptr noundef %960, ptr noundef %961)
  br label %962

962:                                              ; preds = %3254, %897
  %963 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %964 = trunc i8 %963 to i1
  br i1 %964, label %965, label %974

965:                                              ; preds = %962
  %966 = load ptr, ptr %6, align 8, !tbaa !5
  %967 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %966, i32 0, i32 70
  %968 = load i64, ptr %967, align 8, !tbaa !50
  %969 = trunc i64 %968 to i32
  %970 = load ptr, ptr %6, align 8, !tbaa !5
  %971 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %970, i32 0, i32 55
  %972 = load i64, ptr %971, align 8, !tbaa !53
  %973 = trunc i64 %972 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1251, i32 noundef %969, i32 noundef %973)
  br label %974

974:                                              ; preds = %965, %962
  store i64 0, ptr %25, align 8, !tbaa !37
  br label %975

975:                                              ; preds = %1382, %974
  %976 = load i64, ptr %25, align 8, !tbaa !37
  %977 = load i64, ptr %12, align 8, !tbaa !37
  %978 = icmp sle i64 %976, %977
  br i1 %978, label %979, label %1385

979:                                              ; preds = %975
  store double 0.000000e+00, ptr %30, align 8, !tbaa !40
  %980 = load ptr, ptr %6, align 8, !tbaa !5
  %981 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %980, i32 0, i32 31
  %982 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %981, i32 0, i32 6
  %983 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %982, i32 0, i32 2
  %984 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %983, i32 0, i32 4
  %985 = load ptr, ptr %984, align 8, !tbaa !36
  %986 = load i64, ptr %25, align 8, !tbaa !37
  %987 = getelementptr inbounds i64, ptr %985, i64 %986
  %988 = load i64, ptr %987, align 8, !tbaa !37
  store i64 %988, ptr %27, align 8, !tbaa !37
  %989 = load ptr, ptr %6, align 8, !tbaa !5
  %990 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %989, i32 0, i32 31
  %991 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %990, i32 0, i32 6
  %992 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %991, i32 0, i32 2
  %993 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %992, i32 0, i32 4
  %994 = load ptr, ptr %993, align 8, !tbaa !36
  %995 = load i64, ptr %25, align 8, !tbaa !37
  %996 = add nsw i64 %995, 1
  %997 = getelementptr inbounds i64, ptr %994, i64 %996
  %998 = load i64, ptr %997, align 8, !tbaa !37
  %999 = sub nsw i64 %998, 1
  store i64 %999, ptr %28, align 8, !tbaa !37
  %1000 = load i64, ptr %27, align 8, !tbaa !37
  store i64 %1000, ptr %26, align 8, !tbaa !37
  br label %1001

1001:                                             ; preds = %1019, %979
  %1002 = load i64, ptr %26, align 8, !tbaa !37
  %1003 = load i64, ptr %28, align 8, !tbaa !37
  %1004 = icmp sle i64 %1002, %1003
  br i1 %1004, label %1005, label %1022

1005:                                             ; preds = %1001
  %1006 = load double, ptr %30, align 8, !tbaa !40
  %1007 = load ptr, ptr %6, align 8, !tbaa !5
  %1008 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1007, i32 0, i32 31
  %1009 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1008, i32 0, i32 6
  %1010 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1009, i32 0, i32 0
  %1011 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1010, i32 0, i32 4
  %1012 = load ptr, ptr %1011, align 8, !tbaa !36
  %1013 = load i64, ptr %26, align 8, !tbaa !37
  %1014 = getelementptr inbounds double, ptr %1012, i64 %1013
  %1015 = load double, ptr %1014, align 8, !tbaa !40
  %1016 = load ptr, ptr %9, align 8, !tbaa !5
  %1017 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1015, ptr noundef %1016)
  %1018 = fadd double %1006, %1017
  store double %1018, ptr %30, align 8, !tbaa !40
  br label %1019

1019:                                             ; preds = %1005
  %1020 = load i64, ptr %26, align 8, !tbaa !37
  %1021 = add nsw i64 %1020, 1
  store i64 %1021, ptr %26, align 8, !tbaa !37
  br label %1001, !llvm.loop !65

1022:                                             ; preds = %1001
  %1023 = load double, ptr %30, align 8, !tbaa !40
  %1024 = load ptr, ptr %9, align 8, !tbaa !5
  %1025 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1023, ptr noundef %1024)
  store double %1025, ptr %30, align 8, !tbaa !40
  store double 1.000000e+00, ptr %32, align 8, !tbaa !40
  %1026 = load ptr, ptr %6, align 8, !tbaa !5
  %1027 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1026, i32 0, i32 45
  %1028 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1027, i32 0, i32 4
  %1029 = load ptr, ptr %1028, align 8, !tbaa !36
  %1030 = load i64, ptr %25, align 8, !tbaa !37
  %1031 = getelementptr inbounds double, ptr %1029, i64 %1030
  %1032 = load double, ptr %1031, align 8, !tbaa !40
  store double %1032, ptr %31, align 8, !tbaa !40
  %1033 = load double, ptr %30, align 8, !tbaa !40
  %1034 = load double, ptr @_ZN11alglib_implL18nlcaul_aulbigscaleE, align 8, !tbaa !40
  %1035 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %1033, double noundef %1034)
  br i1 %1035, label %1036, label %1048

1036:                                             ; preds = %1022
  %1037 = load double, ptr %30, align 8, !tbaa !40
  %1038 = fdiv double 1.000000e+00, %1037
  store double %1038, ptr %32, align 8, !tbaa !40
  %1039 = load ptr, ptr %6, align 8, !tbaa !5
  %1040 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1039, i32 0, i32 45
  %1041 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1040, i32 0, i32 4
  %1042 = load ptr, ptr %1041, align 8, !tbaa !36
  %1043 = load i64, ptr %25, align 8, !tbaa !37
  %1044 = getelementptr inbounds double, ptr %1042, i64 %1043
  %1045 = load double, ptr %1044, align 8, !tbaa !40
  %1046 = load double, ptr %30, align 8, !tbaa !40
  %1047 = fmul double %1045, %1046
  store double %1047, ptr %31, align 8, !tbaa !40
  br label %1048

1048:                                             ; preds = %1036, %1022
  %1049 = load double, ptr %30, align 8, !tbaa !40
  %1050 = load double, ptr @_ZN11alglib_implL20nlcaul_aulsmallscaleE, align 8, !tbaa !40
  %1051 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %1049, double noundef %1050)
  br i1 %1051, label %1052, label %1093

1052:                                             ; preds = %1048
  %1053 = load ptr, ptr %6, align 8, !tbaa !5
  %1054 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1053, i32 0, i32 45
  %1055 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1054, i32 0, i32 4
  %1056 = load ptr, ptr %1055, align 8, !tbaa !36
  %1057 = load i64, ptr %25, align 8, !tbaa !37
  %1058 = getelementptr inbounds double, ptr %1056, i64 %1057
  %1059 = load double, ptr %1058, align 8, !tbaa !40
  %1060 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1059, double noundef 1.000000e+00)
  br i1 %1060, label %1061, label %1093

1061:                                             ; preds = %1052
  %1062 = load ptr, ptr %6, align 8, !tbaa !5
  %1063 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1062, i32 0, i32 45
  %1064 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1063, i32 0, i32 4
  %1065 = load ptr, ptr %1064, align 8, !tbaa !36
  %1066 = load i64, ptr %25, align 8, !tbaa !37
  %1067 = getelementptr inbounds double, ptr %1065, i64 %1066
  %1068 = load double, ptr %1067, align 8, !tbaa !40
  %1069 = load double, ptr %30, align 8, !tbaa !40
  %1070 = fmul double %1068, %1069
  %1071 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1070, double noundef 1.000000e+00)
  br i1 %1071, label %1072, label %1084

1072:                                             ; preds = %1061
  %1073 = load double, ptr %30, align 8, !tbaa !40
  %1074 = fdiv double 1.000000e+00, %1073
  store double %1074, ptr %32, align 8, !tbaa !40
  %1075 = load ptr, ptr %6, align 8, !tbaa !5
  %1076 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1075, i32 0, i32 45
  %1077 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1076, i32 0, i32 4
  %1078 = load ptr, ptr %1077, align 8, !tbaa !36
  %1079 = load i64, ptr %25, align 8, !tbaa !37
  %1080 = getelementptr inbounds double, ptr %1078, i64 %1079
  %1081 = load double, ptr %1080, align 8, !tbaa !40
  %1082 = load double, ptr %30, align 8, !tbaa !40
  %1083 = fmul double %1081, %1082
  store double %1083, ptr %31, align 8, !tbaa !40
  br label %1092

1084:                                             ; preds = %1061
  %1085 = load ptr, ptr %6, align 8, !tbaa !5
  %1086 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1085, i32 0, i32 45
  %1087 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1086, i32 0, i32 4
  %1088 = load ptr, ptr %1087, align 8, !tbaa !36
  %1089 = load i64, ptr %25, align 8, !tbaa !37
  %1090 = getelementptr inbounds double, ptr %1088, i64 %1089
  %1091 = load double, ptr %1090, align 8, !tbaa !40
  store double %1091, ptr %32, align 8, !tbaa !40
  store double 1.000000e+00, ptr %31, align 8, !tbaa !40
  br label %1092

1092:                                             ; preds = %1084, %1072
  br label %1093

1093:                                             ; preds = %1092, %1052, %1048
  %1094 = load double, ptr %32, align 8, !tbaa !40
  %1095 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1094, double noundef 1.000000e+00)
  br i1 %1095, label %1096, label %1381

1096:                                             ; preds = %1093
  %1097 = load ptr, ptr %6, align 8, !tbaa !5
  %1098 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1097, i32 0, i32 31
  %1099 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1098, i32 0, i32 4
  %1100 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1099, i32 0, i32 4
  %1101 = load ptr, ptr %1100, align 8, !tbaa !36
  %1102 = load i64, ptr %25, align 8, !tbaa !37
  %1103 = getelementptr inbounds double, ptr %1101, i64 %1102
  %1104 = load double, ptr %1103, align 8, !tbaa !40
  %1105 = load double, ptr %32, align 8, !tbaa !40
  %1106 = fmul double %1104, %1105
  %1107 = load ptr, ptr %6, align 8, !tbaa !5
  %1108 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1107, i32 0, i32 31
  %1109 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1108, i32 0, i32 4
  %1110 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1109, i32 0, i32 4
  %1111 = load ptr, ptr %1110, align 8, !tbaa !36
  %1112 = load i64, ptr %25, align 8, !tbaa !37
  %1113 = getelementptr inbounds double, ptr %1111, i64 %1112
  store double %1106, ptr %1113, align 8, !tbaa !40
  %1114 = load ptr, ptr %6, align 8, !tbaa !5
  %1115 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1114, i32 0, i32 34
  %1116 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1115, i32 0, i32 4
  %1117 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1116, i32 0, i32 4
  %1118 = load ptr, ptr %1117, align 8, !tbaa !36
  %1119 = load i64, ptr %25, align 8, !tbaa !37
  %1120 = getelementptr inbounds double, ptr %1118, i64 %1119
  %1121 = load double, ptr %1120, align 8, !tbaa !40
  %1122 = load double, ptr %32, align 8, !tbaa !40
  %1123 = fmul double %1121, %1122
  %1124 = load ptr, ptr %6, align 8, !tbaa !5
  %1125 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1124, i32 0, i32 34
  %1126 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1125, i32 0, i32 4
  %1127 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1126, i32 0, i32 4
  %1128 = load ptr, ptr %1127, align 8, !tbaa !36
  %1129 = load i64, ptr %25, align 8, !tbaa !37
  %1130 = getelementptr inbounds double, ptr %1128, i64 %1129
  store double %1123, ptr %1130, align 8, !tbaa !40
  %1131 = load ptr, ptr %6, align 8, !tbaa !5
  %1132 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1131, i32 0, i32 31
  %1133 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1132, i32 0, i32 6
  %1134 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1133, i32 0, i32 2
  %1135 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1134, i32 0, i32 4
  %1136 = load ptr, ptr %1135, align 8, !tbaa !36
  %1137 = load i64, ptr %25, align 8, !tbaa !37
  %1138 = getelementptr inbounds i64, ptr %1136, i64 %1137
  %1139 = load i64, ptr %1138, align 8, !tbaa !37
  store i64 %1139, ptr %27, align 8, !tbaa !37
  %1140 = load ptr, ptr %6, align 8, !tbaa !5
  %1141 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1140, i32 0, i32 31
  %1142 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1141, i32 0, i32 6
  %1143 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1142, i32 0, i32 2
  %1144 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1143, i32 0, i32 4
  %1145 = load ptr, ptr %1144, align 8, !tbaa !36
  %1146 = load i64, ptr %25, align 8, !tbaa !37
  %1147 = add nsw i64 %1146, 1
  %1148 = getelementptr inbounds i64, ptr %1145, i64 %1147
  %1149 = load i64, ptr %1148, align 8, !tbaa !37
  %1150 = sub nsw i64 %1149, 1
  store i64 %1150, ptr %28, align 8, !tbaa !37
  %1151 = load i64, ptr %27, align 8, !tbaa !37
  store i64 %1151, ptr %26, align 8, !tbaa !37
  br label %1152

1152:                                             ; preds = %1176, %1096
  %1153 = load i64, ptr %26, align 8, !tbaa !37
  %1154 = load i64, ptr %28, align 8, !tbaa !37
  %1155 = icmp sle i64 %1153, %1154
  br i1 %1155, label %1156, label %1179

1156:                                             ; preds = %1152
  %1157 = load ptr, ptr %6, align 8, !tbaa !5
  %1158 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1157, i32 0, i32 31
  %1159 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1158, i32 0, i32 6
  %1160 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1159, i32 0, i32 0
  %1161 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1160, i32 0, i32 4
  %1162 = load ptr, ptr %1161, align 8, !tbaa !36
  %1163 = load i64, ptr %26, align 8, !tbaa !37
  %1164 = getelementptr inbounds double, ptr %1162, i64 %1163
  %1165 = load double, ptr %1164, align 8, !tbaa !40
  %1166 = load double, ptr %32, align 8, !tbaa !40
  %1167 = fmul double %1165, %1166
  %1168 = load ptr, ptr %6, align 8, !tbaa !5
  %1169 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1168, i32 0, i32 31
  %1170 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1169, i32 0, i32 6
  %1171 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1170, i32 0, i32 0
  %1172 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1171, i32 0, i32 4
  %1173 = load ptr, ptr %1172, align 8, !tbaa !36
  %1174 = load i64, ptr %26, align 8, !tbaa !37
  %1175 = getelementptr inbounds double, ptr %1173, i64 %1174
  store double %1167, ptr %1175, align 8, !tbaa !40
  br label %1176

1176:                                             ; preds = %1156
  %1177 = load i64, ptr %26, align 8, !tbaa !37
  %1178 = add nsw i64 %1177, 1
  store i64 %1178, ptr %26, align 8, !tbaa !37
  br label %1152, !llvm.loop !66

1179:                                             ; preds = %1152
  %1180 = load ptr, ptr %6, align 8, !tbaa !5
  %1181 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1180, i32 0, i32 34
  %1182 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1181, i32 0, i32 6
  %1183 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1182, i32 0, i32 2
  %1184 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1183, i32 0, i32 4
  %1185 = load ptr, ptr %1184, align 8, !tbaa !36
  %1186 = load i64, ptr %25, align 8, !tbaa !37
  %1187 = getelementptr inbounds i64, ptr %1185, i64 %1186
  %1188 = load i64, ptr %1187, align 8, !tbaa !37
  store i64 %1188, ptr %27, align 8, !tbaa !37
  %1189 = load ptr, ptr %6, align 8, !tbaa !5
  %1190 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1189, i32 0, i32 34
  %1191 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1190, i32 0, i32 6
  %1192 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1191, i32 0, i32 2
  %1193 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1192, i32 0, i32 4
  %1194 = load ptr, ptr %1193, align 8, !tbaa !36
  %1195 = load i64, ptr %25, align 8, !tbaa !37
  %1196 = add nsw i64 %1195, 1
  %1197 = getelementptr inbounds i64, ptr %1194, i64 %1196
  %1198 = load i64, ptr %1197, align 8, !tbaa !37
  %1199 = sub nsw i64 %1198, 1
  store i64 %1199, ptr %28, align 8, !tbaa !37
  %1200 = load i64, ptr %27, align 8, !tbaa !37
  store i64 %1200, ptr %26, align 8, !tbaa !37
  br label %1201

1201:                                             ; preds = %1225, %1179
  %1202 = load i64, ptr %26, align 8, !tbaa !37
  %1203 = load i64, ptr %28, align 8, !tbaa !37
  %1204 = icmp sle i64 %1202, %1203
  br i1 %1204, label %1205, label %1228

1205:                                             ; preds = %1201
  %1206 = load ptr, ptr %6, align 8, !tbaa !5
  %1207 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1206, i32 0, i32 34
  %1208 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1207, i32 0, i32 6
  %1209 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1208, i32 0, i32 0
  %1210 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1209, i32 0, i32 4
  %1211 = load ptr, ptr %1210, align 8, !tbaa !36
  %1212 = load i64, ptr %26, align 8, !tbaa !37
  %1213 = getelementptr inbounds double, ptr %1211, i64 %1212
  %1214 = load double, ptr %1213, align 8, !tbaa !40
  %1215 = load double, ptr %32, align 8, !tbaa !40
  %1216 = fmul double %1214, %1215
  %1217 = load ptr, ptr %6, align 8, !tbaa !5
  %1218 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1217, i32 0, i32 34
  %1219 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1218, i32 0, i32 6
  %1220 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %1219, i32 0, i32 0
  %1221 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1220, i32 0, i32 4
  %1222 = load ptr, ptr %1221, align 8, !tbaa !36
  %1223 = load i64, ptr %26, align 8, !tbaa !37
  %1224 = getelementptr inbounds double, ptr %1222, i64 %1223
  store double %1216, ptr %1224, align 8, !tbaa !40
  br label %1225

1225:                                             ; preds = %1205
  %1226 = load i64, ptr %26, align 8, !tbaa !37
  %1227 = add nsw i64 %1226, 1
  store i64 %1227, ptr %26, align 8, !tbaa !37
  br label %1201, !llvm.loop !67

1228:                                             ; preds = %1201
  %1229 = load i64, ptr %25, align 8, !tbaa !37
  %1230 = icmp eq i64 %1229, 0
  br i1 %1230, label %1231, label %1251

1231:                                             ; preds = %1228
  %1232 = load i64, ptr %10, align 8, !tbaa !37
  %1233 = mul nsw i64 2, %1232
  %1234 = load double, ptr %32, align 8, !tbaa !40
  %1235 = load ptr, ptr %6, align 8, !tbaa !5
  %1236 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1235, i32 0, i32 40
  %1237 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1233, double noundef %1234, ptr noundef %1236, ptr noundef %1237)
  %1238 = load i64, ptr %11, align 8, !tbaa !37
  %1239 = load i64, ptr %12, align 8, !tbaa !37
  %1240 = add nsw i64 %1238, %1239
  %1241 = mul nsw i64 2, %1240
  %1242 = load double, ptr %32, align 8, !tbaa !40
  %1243 = load ptr, ptr %6, align 8, !tbaa !5
  %1244 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1243, i32 0, i32 41
  %1245 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1241, double noundef %1242, ptr noundef %1244, ptr noundef %1245)
  %1246 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %1247 = trunc i8 %1246 to i1
  br i1 %1247, label %1248, label %1250

1248:                                             ; preds = %1231
  %1249 = load double, ptr %32, align 8, !tbaa !40
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1252, double noundef %1249)
  br label %1250

1250:                                             ; preds = %1248, %1231
  br label %1358

1251:                                             ; preds = %1228
  %1252 = load ptr, ptr %6, align 8, !tbaa !5
  %1253 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1252, i32 0, i32 17
  %1254 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1253, i32 0, i32 4
  %1255 = load ptr, ptr %1254, align 8, !tbaa !36
  %1256 = load i64, ptr %25, align 8, !tbaa !37
  %1257 = sub nsw i64 %1256, 1
  %1258 = getelementptr inbounds i8, ptr %1255, i64 %1257
  %1259 = load i8, ptr %1258, align 1, !tbaa !9, !range !38, !noundef !39
  %1260 = trunc i8 %1259 to i1
  br i1 %1260, label %1261, label %1279

1261:                                             ; preds = %1251
  %1262 = load ptr, ptr %6, align 8, !tbaa !5
  %1263 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1262, i32 0, i32 15
  %1264 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1263, i32 0, i32 4
  %1265 = load ptr, ptr %1264, align 8, !tbaa !36
  %1266 = load i64, ptr %25, align 8, !tbaa !37
  %1267 = sub nsw i64 %1266, 1
  %1268 = getelementptr inbounds double, ptr %1265, i64 %1267
  %1269 = load double, ptr %1268, align 8, !tbaa !40
  %1270 = load double, ptr %32, align 8, !tbaa !40
  %1271 = fmul double %1269, %1270
  %1272 = load ptr, ptr %6, align 8, !tbaa !5
  %1273 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1272, i32 0, i32 15
  %1274 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1273, i32 0, i32 4
  %1275 = load ptr, ptr %1274, align 8, !tbaa !36
  %1276 = load i64, ptr %25, align 8, !tbaa !37
  %1277 = sub nsw i64 %1276, 1
  %1278 = getelementptr inbounds double, ptr %1275, i64 %1277
  store double %1271, ptr %1278, align 8, !tbaa !40
  br label %1279

1279:                                             ; preds = %1261, %1251
  %1280 = load ptr, ptr %6, align 8, !tbaa !5
  %1281 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1280, i32 0, i32 18
  %1282 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1281, i32 0, i32 4
  %1283 = load ptr, ptr %1282, align 8, !tbaa !36
  %1284 = load i64, ptr %25, align 8, !tbaa !37
  %1285 = sub nsw i64 %1284, 1
  %1286 = getelementptr inbounds i8, ptr %1283, i64 %1285
  %1287 = load i8, ptr %1286, align 1, !tbaa !9, !range !38, !noundef !39
  %1288 = trunc i8 %1287 to i1
  br i1 %1288, label %1289, label %1307

1289:                                             ; preds = %1279
  %1290 = load ptr, ptr %6, align 8, !tbaa !5
  %1291 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1290, i32 0, i32 16
  %1292 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1291, i32 0, i32 4
  %1293 = load ptr, ptr %1292, align 8, !tbaa !36
  %1294 = load i64, ptr %25, align 8, !tbaa !37
  %1295 = sub nsw i64 %1294, 1
  %1296 = getelementptr inbounds double, ptr %1293, i64 %1295
  %1297 = load double, ptr %1296, align 8, !tbaa !40
  %1298 = load double, ptr %32, align 8, !tbaa !40
  %1299 = fmul double %1297, %1298
  %1300 = load ptr, ptr %6, align 8, !tbaa !5
  %1301 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1300, i32 0, i32 16
  %1302 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1301, i32 0, i32 4
  %1303 = load ptr, ptr %1302, align 8, !tbaa !36
  %1304 = load i64, ptr %25, align 8, !tbaa !37
  %1305 = sub nsw i64 %1304, 1
  %1306 = getelementptr inbounds double, ptr %1303, i64 %1305
  store double %1299, ptr %1306, align 8, !tbaa !40
  br label %1307

1307:                                             ; preds = %1289, %1279
  %1308 = load ptr, ptr %6, align 8, !tbaa !5
  %1309 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1308, i32 0, i32 41
  %1310 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1309, i32 0, i32 4
  %1311 = load ptr, ptr %1310, align 8, !tbaa !36
  %1312 = load i64, ptr %11, align 8, !tbaa !37
  %1313 = load i64, ptr %25, align 8, !tbaa !37
  %1314 = sub nsw i64 %1313, 1
  %1315 = add nsw i64 %1312, %1314
  %1316 = mul nsw i64 2, %1315
  %1317 = add nsw i64 %1316, 0
  %1318 = getelementptr inbounds double, ptr %1311, i64 %1317
  %1319 = load double, ptr %1318, align 8, !tbaa !40
  %1320 = load double, ptr %32, align 8, !tbaa !40
  %1321 = fdiv double %1319, %1320
  %1322 = load ptr, ptr %6, align 8, !tbaa !5
  %1323 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1322, i32 0, i32 41
  %1324 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1323, i32 0, i32 4
  %1325 = load ptr, ptr %1324, align 8, !tbaa !36
  %1326 = load i64, ptr %11, align 8, !tbaa !37
  %1327 = load i64, ptr %25, align 8, !tbaa !37
  %1328 = sub nsw i64 %1327, 1
  %1329 = add nsw i64 %1326, %1328
  %1330 = mul nsw i64 2, %1329
  %1331 = add nsw i64 %1330, 0
  %1332 = getelementptr inbounds double, ptr %1325, i64 %1331
  store double %1321, ptr %1332, align 8, !tbaa !40
  %1333 = load ptr, ptr %6, align 8, !tbaa !5
  %1334 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1333, i32 0, i32 41
  %1335 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1334, i32 0, i32 4
  %1336 = load ptr, ptr %1335, align 8, !tbaa !36
  %1337 = load i64, ptr %11, align 8, !tbaa !37
  %1338 = load i64, ptr %25, align 8, !tbaa !37
  %1339 = sub nsw i64 %1338, 1
  %1340 = add nsw i64 %1337, %1339
  %1341 = mul nsw i64 2, %1340
  %1342 = add nsw i64 %1341, 1
  %1343 = getelementptr inbounds double, ptr %1336, i64 %1342
  %1344 = load double, ptr %1343, align 8, !tbaa !40
  %1345 = load double, ptr %32, align 8, !tbaa !40
  %1346 = fdiv double %1344, %1345
  %1347 = load ptr, ptr %6, align 8, !tbaa !5
  %1348 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1347, i32 0, i32 41
  %1349 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1348, i32 0, i32 4
  %1350 = load ptr, ptr %1349, align 8, !tbaa !36
  %1351 = load i64, ptr %11, align 8, !tbaa !37
  %1352 = load i64, ptr %25, align 8, !tbaa !37
  %1353 = sub nsw i64 %1352, 1
  %1354 = add nsw i64 %1351, %1353
  %1355 = mul nsw i64 2, %1354
  %1356 = add nsw i64 %1355, 1
  %1357 = getelementptr inbounds double, ptr %1350, i64 %1356
  store double %1346, ptr %1357, align 8, !tbaa !40
  br label %1358

1358:                                             ; preds = %1307, %1250
  %1359 = load double, ptr %31, align 8, !tbaa !40
  %1360 = load ptr, ptr %6, align 8, !tbaa !5
  %1361 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1360, i32 0, i32 45
  %1362 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1361, i32 0, i32 4
  %1363 = load ptr, ptr %1362, align 8, !tbaa !36
  %1364 = load i64, ptr %25, align 8, !tbaa !37
  %1365 = getelementptr inbounds double, ptr %1363, i64 %1364
  store double %1359, ptr %1365, align 8, !tbaa !40
  %1366 = load ptr, ptr %6, align 8, !tbaa !5
  %1367 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1366, i32 0, i32 46
  %1368 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1367, i32 0, i32 4
  %1369 = load ptr, ptr %1368, align 8, !tbaa !36
  %1370 = load i64, ptr %25, align 8, !tbaa !37
  %1371 = getelementptr inbounds double, ptr %1369, i64 %1370
  %1372 = load double, ptr %1371, align 8, !tbaa !40
  %1373 = load double, ptr %32, align 8, !tbaa !40
  %1374 = fmul double %1372, %1373
  %1375 = load ptr, ptr %6, align 8, !tbaa !5
  %1376 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1375, i32 0, i32 46
  %1377 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1376, i32 0, i32 4
  %1378 = load ptr, ptr %1377, align 8, !tbaa !36
  %1379 = load i64, ptr %25, align 8, !tbaa !37
  %1380 = getelementptr inbounds double, ptr %1378, i64 %1379
  store double %1374, ptr %1380, align 8, !tbaa !40
  br label %1381

1381:                                             ; preds = %1358, %1093
  br label %1382

1382:                                             ; preds = %1381
  %1383 = load i64, ptr %25, align 8, !tbaa !37
  %1384 = add nsw i64 %1383, 1
  store i64 %1384, ptr %25, align 8, !tbaa !37
  br label %975, !llvm.loop !68

1385:                                             ; preds = %975
  %1386 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %1387 = trunc i8 %1386 to i1
  br i1 %1387, label %1388, label %1534

1388:                                             ; preds = %1385
  %1389 = load i8, ptr %16, align 1, !tbaa !9, !range !38, !noundef !39
  %1390 = trunc i8 %1389 to i1
  br i1 %1390, label %1391, label %1442

1391:                                             ; preds = %1388
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1129)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1130)
  %1392 = load ptr, ptr %6, align 8, !tbaa !5
  %1393 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1392, i32 0, i32 31
  %1394 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1393, i32 0, i32 3
  %1395 = load i64, ptr %10, align 8, !tbaa !37
  %1396 = load ptr, ptr %6, align 8, !tbaa !5
  %1397 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1396, i32 0, i32 3
  %1398 = load ptr, ptr %6, align 8, !tbaa !5
  %1399 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1398, i32 0, i32 3
  %1400 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl36tracevectorunscaledunshiftedautoprecEPKNS_9ae_vectorElS2_bS2_bPNS_8ae_stateE(ptr noundef %1394, i64 noundef %1395, ptr noundef %1397, i1 noundef zeroext true, ptr noundef %1399, i1 noundef zeroext false, ptr noundef %1400)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1131)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.733)
  %1401 = load ptr, ptr %6, align 8, !tbaa !5
  %1402 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1401, i32 0, i32 31
  %1403 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1402, i32 0, i32 3
  %1404 = load i64, ptr %10, align 8, !tbaa !37
  %1405 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1403, i64 noundef 0, i64 noundef %1404, ptr noundef %1405)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1132)
  %1406 = load ptr, ptr %6, align 8, !tbaa !5
  %1407 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1406, i32 0, i32 45
  %1408 = load i64, ptr %12, align 8, !tbaa !37
  %1409 = add nsw i64 1, %1408
  %1410 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1407, i64 noundef 0, i64 noundef %1409, ptr noundef %1410)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1253)
  %1411 = load ptr, ptr %6, align 8, !tbaa !5
  %1412 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1411, i32 0, i32 46
  %1413 = load i64, ptr %12, align 8, !tbaa !37
  %1414 = add nsw i64 1, %1413
  %1415 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1412, i64 noundef 0, i64 noundef %1414, ptr noundef %1415)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1133)
  %1416 = load ptr, ptr %6, align 8, !tbaa !5
  %1417 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1416, i32 0, i32 31
  %1418 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1417, i32 0, i32 4
  %1419 = load i64, ptr %12, align 8, !tbaa !37
  %1420 = add nsw i64 1, %1419
  %1421 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1418, i64 noundef 0, i64 noundef %1420, ptr noundef %1421)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1254)
  %1422 = load ptr, ptr %6, align 8, !tbaa !5
  %1423 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1422, i32 0, i32 40
  %1424 = load i64, ptr %10, align 8, !tbaa !37
  %1425 = mul nsw i64 2, %1424
  %1426 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1423, i64 noundef 0, i64 noundef %1425, ptr noundef %1426)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1255)
  %1427 = load ptr, ptr %6, align 8, !tbaa !5
  %1428 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1427, i32 0, i32 41
  %1429 = load i64, ptr %11, align 8, !tbaa !37
  %1430 = mul nsw i64 2, %1429
  %1431 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1428, i64 noundef 0, i64 noundef %1430, ptr noundef %1431)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1256)
  %1432 = load ptr, ptr %6, align 8, !tbaa !5
  %1433 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1432, i32 0, i32 41
  %1434 = load i64, ptr %11, align 8, !tbaa !37
  %1435 = mul nsw i64 2, %1434
  %1436 = load i64, ptr %11, align 8, !tbaa !37
  %1437 = mul nsw i64 2, %1436
  %1438 = load i64, ptr %12, align 8, !tbaa !37
  %1439 = mul nsw i64 2, %1438
  %1440 = add nsw i64 %1437, %1439
  %1441 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1433, i64 noundef %1435, i64 noundef %1440, ptr noundef %1441)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %1442

1442:                                             ; preds = %1391, %1388
  store double 0.000000e+00, ptr %30, align 8, !tbaa !40
  store i64 1, ptr %25, align 8, !tbaa !37
  br label %1443

1443:                                             ; preds = %1461, %1442
  %1444 = load i64, ptr %25, align 8, !tbaa !37
  %1445 = load i64, ptr %12, align 8, !tbaa !37
  %1446 = icmp sle i64 %1444, %1445
  br i1 %1446, label %1447, label %1464

1447:                                             ; preds = %1443
  %1448 = load double, ptr %30, align 8, !tbaa !40
  %1449 = load ptr, ptr %6, align 8, !tbaa !5
  %1450 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1449, i32 0, i32 31
  %1451 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1450, i32 0, i32 4
  %1452 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1451, i32 0, i32 4
  %1453 = load ptr, ptr %1452, align 8, !tbaa !36
  %1454 = load i64, ptr %25, align 8, !tbaa !37
  %1455 = getelementptr inbounds double, ptr %1453, i64 %1454
  %1456 = load double, ptr %1455, align 8, !tbaa !40
  %1457 = load ptr, ptr %9, align 8, !tbaa !5
  %1458 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1456, ptr noundef %1457)
  %1459 = load ptr, ptr %9, align 8, !tbaa !5
  %1460 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1448, double noundef %1458, ptr noundef %1459)
  store double %1460, ptr %30, align 8, !tbaa !40
  br label %1461

1461:                                             ; preds = %1447
  %1462 = load i64, ptr %25, align 8, !tbaa !37
  %1463 = add nsw i64 %1462, 1
  store i64 %1463, ptr %25, align 8, !tbaa !37
  br label %1443, !llvm.loop !69

1464:                                             ; preds = %1443
  %1465 = load ptr, ptr %6, align 8, !tbaa !5
  %1466 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1465, i32 0, i32 30
  %1467 = load double, ptr %1466, align 8, !tbaa !60
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1257, double noundef %1467)
  %1468 = load ptr, ptr %6, align 8, !tbaa !5
  %1469 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1468, i32 0, i32 75
  %1470 = load double, ptr %1469, align 8, !tbaa !70
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1135, double noundef %1470)
  %1471 = load double, ptr %30, align 8, !tbaa !40
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1136, double noundef %1471)
  %1472 = load ptr, ptr %6, align 8, !tbaa !5
  %1473 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1472, i32 0, i32 46
  %1474 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1473, i32 0, i32 4
  %1475 = load ptr, ptr %1474, align 8, !tbaa !36
  %1476 = getelementptr inbounds double, ptr %1475, i64 0
  %1477 = load double, ptr %1476, align 8, !tbaa !40
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1258, double noundef %1477)
  store i64 0, ptr %26, align 8, !tbaa !37
  store i64 0, ptr %25, align 8, !tbaa !37
  br label %1478

1478:                                             ; preds = %1501, %1464
  %1479 = load i64, ptr %25, align 8, !tbaa !37
  %1480 = load i64, ptr %12, align 8, !tbaa !37
  %1481 = icmp sle i64 %1479, %1480
  br i1 %1481, label %1482, label %1504

1482:                                             ; preds = %1478
  %1483 = load ptr, ptr %6, align 8, !tbaa !5
  %1484 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1483, i32 0, i32 46
  %1485 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1484, i32 0, i32 4
  %1486 = load ptr, ptr %1485, align 8, !tbaa !36
  %1487 = load i64, ptr %25, align 8, !tbaa !37
  %1488 = getelementptr inbounds double, ptr %1486, i64 %1487
  %1489 = load double, ptr %1488, align 8, !tbaa !40
  %1490 = load ptr, ptr %6, align 8, !tbaa !5
  %1491 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1490, i32 0, i32 46
  %1492 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1491, i32 0, i32 4
  %1493 = load ptr, ptr %1492, align 8, !tbaa !36
  %1494 = load i64, ptr %26, align 8, !tbaa !37
  %1495 = getelementptr inbounds double, ptr %1493, i64 %1494
  %1496 = load double, ptr %1495, align 8, !tbaa !40
  %1497 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1489, double noundef %1496)
  br i1 %1497, label %1498, label %1500

1498:                                             ; preds = %1482
  %1499 = load i64, ptr %25, align 8, !tbaa !37
  store i64 %1499, ptr %26, align 8, !tbaa !37
  br label %1500

1500:                                             ; preds = %1498, %1482
  br label %1501

1501:                                             ; preds = %1500
  %1502 = load i64, ptr %25, align 8, !tbaa !37
  %1503 = add nsw i64 %1502, 1
  store i64 %1503, ptr %25, align 8, !tbaa !37
  br label %1478, !llvm.loop !71

1504:                                             ; preds = %1478
  %1505 = load ptr, ptr %6, align 8, !tbaa !5
  %1506 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1505, i32 0, i32 46
  %1507 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1506, i32 0, i32 4
  %1508 = load ptr, ptr %1507, align 8, !tbaa !36
  %1509 = load i64, ptr %26, align 8, !tbaa !37
  %1510 = getelementptr inbounds double, ptr %1508, i64 %1509
  %1511 = load double, ptr %1510, align 8, !tbaa !40
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1259, double noundef %1511)
  %1512 = load i64, ptr %26, align 8, !tbaa !37
  %1513 = trunc i64 %1512 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1260, i32 noundef %1513)
  %1514 = load i64, ptr %10, align 8, !tbaa !37
  %1515 = load ptr, ptr %6, align 8, !tbaa !5
  %1516 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1515, i32 0, i32 31
  %1517 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1516, i32 0, i32 3
  %1518 = load ptr, ptr %9, align 8, !tbaa !5
  %1519 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1514, ptr noundef %1517, ptr noundef %1518)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1137, double noundef %1519)
  %1520 = load i64, ptr %10, align 8, !tbaa !37
  %1521 = mul nsw i64 2, %1520
  %1522 = load ptr, ptr %6, align 8, !tbaa !5
  %1523 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1522, i32 0, i32 40
  %1524 = load ptr, ptr %9, align 8, !tbaa !5
  %1525 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1521, ptr noundef %1523, ptr noundef %1524)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1261, double noundef %1525)
  %1526 = load i64, ptr %11, align 8, !tbaa !37
  %1527 = load i64, ptr %12, align 8, !tbaa !37
  %1528 = add nsw i64 %1526, %1527
  %1529 = mul nsw i64 2, %1528
  %1530 = load ptr, ptr %6, align 8, !tbaa !5
  %1531 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1530, i32 0, i32 41
  %1532 = load ptr, ptr %9, align 8, !tbaa !5
  %1533 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1529, ptr noundef %1531, ptr noundef %1532)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1262, double noundef %1533)
  br label %1534

1534:                                             ; preds = %1504, %1385
  %1535 = load ptr, ptr %6, align 8, !tbaa !5
  %1536 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1535, i32 0, i32 31
  %1537 = load ptr, ptr %6, align 8, !tbaa !5
  %1538 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1537, i32 0, i32 32
  %1539 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %1536, ptr noundef %1538, ptr noundef %1539)
  %1540 = load ptr, ptr %6, align 8, !tbaa !5
  %1541 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1540, i32 0, i32 34
  %1542 = load ptr, ptr %6, align 8, !tbaa !5
  %1543 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1542, i32 0, i32 35
  %1544 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %1541, ptr noundef %1543, ptr noundef %1544)
  %1545 = load ptr, ptr %6, align 8, !tbaa !5
  %1546 = load ptr, ptr %6, align 8, !tbaa !5
  %1547 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1546, i32 0, i32 47
  %1548 = load ptr, ptr %6, align 8, !tbaa !5
  %1549 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1548, i32 0, i32 31
  %1550 = load ptr, ptr %6, align 8, !tbaa !5
  %1551 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1550, i32 0, i32 30
  %1552 = load double, ptr %1551, align 8, !tbaa !60
  %1553 = load ptr, ptr %6, align 8, !tbaa !5
  %1554 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1553, i32 0, i32 40
  %1555 = load ptr, ptr %6, align 8, !tbaa !5
  %1556 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1555, i32 0, i32 41
  %1557 = load ptr, ptr %6, align 8, !tbaa !5
  %1558 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1557, i32 0, i32 49
  %1559 = load ptr, ptr %6, align 8, !tbaa !5
  %1560 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1559, i32 0, i32 48
  %1561 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL32nlcaul_preconditionersendupdatesEPNS_11minaulstateEPNS_20minaulpreconditionerEPKNS_11varsfuncjacEdPKNS_9ae_vectorES9_PNS_12xbfgshessianESB_PNS_8ae_stateE(ptr noundef %1545, ptr noundef %1547, ptr noundef %1549, double noundef %1552, ptr noundef %1554, ptr noundef %1556, ptr noundef %1558, ptr noundef %1560, ptr noundef %1561)
  %1562 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %1563 = trunc i8 %1562 to i1
  br i1 %1563, label %1564, label %1565

1564:                                             ; preds = %1534
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1263)
  br label %1565

1565:                                             ; preds = %1564, %1534
  %1566 = load ptr, ptr %6, align 8, !tbaa !5
  %1567 = load ptr, ptr %6, align 8, !tbaa !5
  %1568 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1567, i32 0, i32 31
  %1569 = load ptr, ptr %6, align 8, !tbaa !5
  %1570 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1569, i32 0, i32 30
  %1571 = load double, ptr %1570, align 8, !tbaa !60
  %1572 = load ptr, ptr %6, align 8, !tbaa !5
  %1573 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1572, i32 0, i32 40
  %1574 = load ptr, ptr %6, align 8, !tbaa !5
  %1575 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1574, i32 0, i32 41
  %1576 = load ptr, ptr %6, align 8, !tbaa !5
  %1577 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1576, i32 0, i32 51
  %1578 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL15nlcaul_auglagfgEPNS_11minaulstateEPKNS_11varsfuncjacEdPKNS_9ae_vectorES7_PdPS5_PNS_8ae_stateE(ptr noundef %1566, ptr noundef %1568, double noundef %1571, ptr noundef %1573, ptr noundef %1575, ptr noundef %17, ptr noundef %1577, ptr noundef %1578)
  %1579 = load ptr, ptr %6, align 8, !tbaa !5
  %1580 = load ptr, ptr %6, align 8, !tbaa !5
  %1581 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1580, i32 0, i32 31
  %1582 = load ptr, ptr %6, align 8, !tbaa !5
  %1583 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1582, i32 0, i32 30
  %1584 = load double, ptr %1583, align 8, !tbaa !60
  %1585 = load ptr, ptr %6, align 8, !tbaa !5
  %1586 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1585, i32 0, i32 30
  %1587 = load double, ptr %1586, align 8, !tbaa !60
  %1588 = load ptr, ptr %6, align 8, !tbaa !5
  %1589 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1588, i32 0, i32 52
  %1590 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL18nlcaul_modtargetfgEPNS_11minaulstateEPKNS_11varsfuncjacEddPdPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1579, ptr noundef %1581, double noundef %1584, double noundef %1587, ptr noundef %23, ptr noundef %1589, ptr noundef %1590)
  %1591 = load double, ptr %17, align 8, !tbaa !40
  store double %1591, ptr %18, align 8, !tbaa !40
  %1592 = load ptr, ptr %6, align 8, !tbaa !5
  %1593 = load ptr, ptr %6, align 8, !tbaa !5
  %1594 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1593, i32 0, i32 47
  %1595 = load ptr, ptr %6, align 8, !tbaa !5
  %1596 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1595, i32 0, i32 51
  %1597 = load ptr, ptr %6, align 8, !tbaa !5
  %1598 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1597, i32 0, i32 43
  %1599 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL26nlcaul_preconditionersolveEPNS_11minaulstateEPNS_20minaulpreconditionerEPKNS_9ae_vectorEPS4_PNS_8ae_stateE(ptr noundef %1592, ptr noundef %1594, ptr noundef %1596, ptr noundef %1598, ptr noundef %1599)
  %1600 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %1601 = trunc i8 %1600 to i1
  br i1 %1601, label %1602, label %1622

1602:                                             ; preds = %1565
  %1603 = load i8, ptr %16, align 1, !tbaa !9, !range !38, !noundef !39
  %1604 = trunc i8 %1603 to i1
  br i1 %1604, label %1605, label %1614

1605:                                             ; preds = %1602
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1264)
  %1606 = load ptr, ptr %6, align 8, !tbaa !5
  %1607 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1606, i32 0, i32 51
  %1608 = load i64, ptr %10, align 8, !tbaa !37
  %1609 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1607, i64 noundef 0, i64 noundef %1608, ptr noundef %1609)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1265)
  %1610 = load ptr, ptr %6, align 8, !tbaa !5
  %1611 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1610, i32 0, i32 43
  %1612 = load i64, ptr %10, align 8, !tbaa !37
  %1613 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef %1611, i64 noundef 0, i64 noundef %1612, ptr noundef %1613)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.208)
  br label %1614

1614:                                             ; preds = %1605, %1602
  %1615 = load i64, ptr %10, align 8, !tbaa !37
  %1616 = load ptr, ptr %6, align 8, !tbaa !5
  %1617 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1616, i32 0, i32 51
  %1618 = load ptr, ptr %6, align 8, !tbaa !5
  %1619 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1618, i32 0, i32 43
  %1620 = load ptr, ptr %9, align 8, !tbaa !5
  %1621 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %1615, ptr noundef %1617, ptr noundef %1619, ptr noundef %1620)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1266, double noundef %1621)
  br label %1622

1622:                                             ; preds = %1614, %1565
  %1623 = load i64, ptr %10, align 8, !tbaa !37
  %1624 = load ptr, ptr %6, align 8, !tbaa !5
  %1625 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1624, i32 0, i32 80
  %1626 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1623, ptr noundef %1625, ptr noundef %1626)
  %1627 = load ptr, ptr %6, align 8, !tbaa !5
  %1628 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1627, i32 0, i32 58
  store i64 0, ptr %1628, align 8, !tbaa !72
  %1629 = load ptr, ptr %6, align 8, !tbaa !5
  %1630 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1629, i32 0, i32 60
  store double 1.000000e+00, ptr %1630, align 8, !tbaa !73
  %1631 = load i64, ptr %10, align 8, !tbaa !37
  %1632 = load ptr, ptr %6, align 8, !tbaa !5
  %1633 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1632, i32 0, i32 43
  %1634 = load ptr, ptr %6, align 8, !tbaa !5
  %1635 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1634, i32 0, i32 44
  %1636 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1631, ptr noundef %1633, ptr noundef %1635, ptr noundef %1636)
  %1637 = load ptr, ptr %6, align 8, !tbaa !5
  %1638 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1637, i32 0, i32 43
  %1639 = load ptr, ptr %6, align 8, !tbaa !5
  %1640 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1639, i32 0, i32 60
  %1641 = load i64, ptr %10, align 8, !tbaa !37
  %1642 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl16linminnormalizedEPNS_9ae_vectorEPdlPNS_8ae_stateE(ptr noundef %1638, ptr noundef %1640, i64 noundef %1641, ptr noundef %1642)
  %1643 = load ptr, ptr %6, align 8, !tbaa !5
  %1644 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1643, i32 0, i32 60
  %1645 = load double, ptr %1644, align 8, !tbaa !73
  store double %1645, ptr %35, align 8, !tbaa !40
  %1646 = load ptr, ptr %6, align 8, !tbaa !5
  %1647 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1646, i32 0, i32 57
  %1648 = load double, ptr %1647, align 8, !tbaa !59
  %1649 = load ptr, ptr %6, align 8, !tbaa !5
  %1650 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1649, i32 0, i32 60
  %1651 = load double, ptr %1650, align 8, !tbaa !73
  %1652 = load ptr, ptr %9, align 8, !tbaa !5
  %1653 = call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %1648, double noundef %1651, ptr noundef %1652)
  %1654 = load ptr, ptr %6, align 8, !tbaa !5
  %1655 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1654, i32 0, i32 57
  store double %1653, ptr %1655, align 8, !tbaa !59
  %1656 = load ptr, ptr %6, align 8, !tbaa !5
  %1657 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1656, i32 0, i32 57
  %1658 = load double, ptr %1657, align 8, !tbaa !59
  %1659 = fmul double 1.000000e+01, %1658
  %1660 = load ptr, ptr %6, align 8, !tbaa !5
  %1661 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1660, i32 0, i32 61
  store double %1659, ptr %1661, align 8, !tbaa !74
  %1662 = load i64, ptr %10, align 8, !tbaa !37
  %1663 = load ptr, ptr %6, align 8, !tbaa !5
  %1664 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1663, i32 0, i32 51
  %1665 = load ptr, ptr %6, align 8, !tbaa !5
  %1666 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1665, i32 0, i32 50
  %1667 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1662, ptr noundef %1664, ptr noundef %1666, ptr noundef %1667)
  %1668 = load double, ptr %17, align 8, !tbaa !40
  store double %1668, ptr %18, align 8, !tbaa !40
  %1669 = load i64, ptr %10, align 8, !tbaa !37
  %1670 = load ptr, ptr %6, align 8, !tbaa !5
  %1671 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1670, i32 0, i32 31
  %1672 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1671, i32 0, i32 3
  %1673 = load ptr, ptr %6, align 8, !tbaa !5
  %1674 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1673, i32 0, i32 51
  %1675 = load ptr, ptr %6, align 8, !tbaa !5
  %1676 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1675, i32 0, i32 43
  %1677 = load ptr, ptr %6, align 8, !tbaa !5
  %1678 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1677, i32 0, i32 60
  %1679 = load ptr, ptr %6, align 8, !tbaa !5
  %1680 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1679, i32 0, i32 61
  %1681 = load double, ptr %1680, align 8, !tbaa !74
  %1682 = load double, ptr @_ZN11alglib_implL11nlcaul_gtolE, align 8, !tbaa !40
  %1683 = load ptr, ptr %6, align 8, !tbaa !5
  %1684 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1683, i32 0, i32 79
  %1685 = load ptr, ptr %6, align 8, !tbaa !5
  %1686 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1685, i32 0, i32 80
  %1687 = load ptr, ptr %6, align 8, !tbaa !5
  %1688 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1687, i32 0, i32 59
  %1689 = load ptr, ptr %6, align 8, !tbaa !5
  %1690 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1689, i32 0, i32 58
  %1691 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_PKS0_S2_ddPlS5_S1_PNS_11linminstateES5_PNS_8ae_stateE(i64 noundef %1669, ptr noundef %1672, ptr noundef %17, ptr noundef %1674, ptr noundef %1676, ptr noundef %1678, double noundef %1681, double noundef %1682, ptr noundef %33, ptr noundef %1684, ptr noundef %1686, ptr noundef %1688, ptr noundef %1690, ptr noundef %1691)
  br label %1692

1692:                                             ; preds = %1729, %1622
  %1693 = load ptr, ptr %6, align 8, !tbaa !5
  %1694 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1693, i32 0, i32 58
  %1695 = load i64, ptr %1694, align 8, !tbaa !72
  %1696 = icmp eq i64 %1695, 0
  br i1 %1696, label %1697, label %1698

1697:                                             ; preds = %1692
  br label %1766

1698:                                             ; preds = %1692
  %1699 = load ptr, ptr %6, align 8, !tbaa !5
  %1700 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL25nlcaul_clearrequestfieldsEPNS_11minaulstateEPNS_8ae_stateE(ptr noundef %1699, ptr noundef %1700)
  %1701 = load ptr, ptr %6, align 8, !tbaa !5
  %1702 = load ptr, ptr %6, align 8, !tbaa !5
  %1703 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1702, i32 0, i32 31
  %1704 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1703, i32 0, i32 3
  %1705 = load ptr, ptr %6, align 8, !tbaa !5
  %1706 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1705, i32 0, i32 34
  %1707 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1706, i32 0, i32 3
  %1708 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL26nlcaul_aulsendvirtualpointEPNS_11minaulstateEPKNS_9ae_vectorEPS2_PNS_8ae_stateE(ptr noundef %1701, ptr noundef %1704, ptr noundef %1707, ptr noundef %1708)
  %1709 = load ptr, ptr %6, align 8, !tbaa !5
  %1710 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1709, i32 0, i32 27
  store i8 1, ptr %1710, align 8, !tbaa !44
  %1711 = load ptr, ptr %6, align 8, !tbaa !5
  %1712 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1711, i32 0, i32 81
  %1713 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1712, i32 0, i32 0
  store i32 2, ptr %1713, align 8, !tbaa !11
  br label %3311

1714:                                             ; preds = %362
  %1715 = load ptr, ptr %6, align 8, !tbaa !5
  %1716 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1715, i32 0, i32 27
  store i8 0, ptr %1716, align 8, !tbaa !44
  %1717 = load ptr, ptr %6, align 8, !tbaa !5
  %1718 = load ptr, ptr %6, align 8, !tbaa !5
  %1719 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1718, i32 0, i32 31
  %1720 = load ptr, ptr %6, align 8, !tbaa !5
  %1721 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1720, i32 0, i32 34
  %1722 = load ptr, ptr %9, align 8, !tbaa !5
  %1723 = call noundef zeroext i1 @_ZN11alglib_implL20nlcaul_aulretrievesjEPNS_11minaulstateEPNS_11varsfuncjacES3_PNS_8ae_stateE(ptr noundef %1717, ptr noundef %1719, ptr noundef %1721, ptr noundef %1722)
  br i1 %1723, label %1729, label %1724

1724:                                             ; preds = %1714
  %1725 = load ptr, ptr %6, align 8, !tbaa !5
  %1726 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1725, i32 0, i32 71
  store i64 -8, ptr %1726, align 8, !tbaa !49
  store i8 0, ptr %49, align 1, !tbaa !9
  %1727 = load i8, ptr %49, align 1, !tbaa !9, !range !38, !noundef !39
  %1728 = trunc i8 %1727 to i1
  store i1 %1728, ptr %5, align 1
  store i32 1, ptr %50, align 4
  br label %3597

1729:                                             ; preds = %1714
  %1730 = load ptr, ptr %6, align 8, !tbaa !5
  %1731 = load ptr, ptr %6, align 8, !tbaa !5
  %1732 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1731, i32 0, i32 31
  %1733 = load ptr, ptr %6, align 8, !tbaa !5
  %1734 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1733, i32 0, i32 30
  %1735 = load double, ptr %1734, align 8, !tbaa !60
  %1736 = load ptr, ptr %6, align 8, !tbaa !5
  %1737 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1736, i32 0, i32 40
  %1738 = load ptr, ptr %6, align 8, !tbaa !5
  %1739 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1738, i32 0, i32 41
  %1740 = load ptr, ptr %6, align 8, !tbaa !5
  %1741 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1740, i32 0, i32 51
  %1742 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL15nlcaul_auglagfgEPNS_11minaulstateEPKNS_11varsfuncjacEdPKNS_9ae_vectorES7_PdPS5_PNS_8ae_stateE(ptr noundef %1730, ptr noundef %1732, double noundef %1735, ptr noundef %1737, ptr noundef %1739, ptr noundef %17, ptr noundef %1741, ptr noundef %1742)
  %1743 = load i64, ptr %10, align 8, !tbaa !37
  %1744 = load ptr, ptr %6, align 8, !tbaa !5
  %1745 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1744, i32 0, i32 31
  %1746 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1745, i32 0, i32 3
  %1747 = load ptr, ptr %6, align 8, !tbaa !5
  %1748 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1747, i32 0, i32 51
  %1749 = load ptr, ptr %6, align 8, !tbaa !5
  %1750 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1749, i32 0, i32 43
  %1751 = load ptr, ptr %6, align 8, !tbaa !5
  %1752 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1751, i32 0, i32 60
  %1753 = load ptr, ptr %6, align 8, !tbaa !5
  %1754 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1753, i32 0, i32 61
  %1755 = load double, ptr %1754, align 8, !tbaa !74
  %1756 = load double, ptr @_ZN11alglib_implL11nlcaul_gtolE, align 8, !tbaa !40
  %1757 = load ptr, ptr %6, align 8, !tbaa !5
  %1758 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1757, i32 0, i32 79
  %1759 = load ptr, ptr %6, align 8, !tbaa !5
  %1760 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1759, i32 0, i32 80
  %1761 = load ptr, ptr %6, align 8, !tbaa !5
  %1762 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1761, i32 0, i32 59
  %1763 = load ptr, ptr %6, align 8, !tbaa !5
  %1764 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1763, i32 0, i32 58
  %1765 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_PKS0_S2_ddPlS5_S1_PNS_11linminstateES5_PNS_8ae_stateE(i64 noundef %1743, ptr noundef %1746, ptr noundef %17, ptr noundef %1748, ptr noundef %1750, ptr noundef %1752, double noundef %1755, double noundef %1756, ptr noundef %33, ptr noundef %1758, ptr noundef %1760, ptr noundef %1762, ptr noundef %1764, ptr noundef %1765)
  br label %1692

1766:                                             ; preds = %1697
  %1767 = load double, ptr %17, align 8, !tbaa !40
  store double %1767, ptr %19, align 8, !tbaa !40
  %1768 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %1769 = trunc i8 %1768 to i1
  br i1 %1769, label %1770, label %1853

1770:                                             ; preds = %1766
  %1771 = load ptr, ptr %6, align 8, !tbaa !5
  %1772 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1771, i32 0, i32 60
  %1773 = load double, ptr %1772, align 8, !tbaa !73
  %1774 = load double, ptr %35, align 8, !tbaa !40
  %1775 = fdiv double %1773, %1774
  %1776 = load ptr, ptr %6, align 8, !tbaa !5
  %1777 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1776, i32 0, i32 60
  %1778 = load double, ptr %1777, align 8, !tbaa !73
  %1779 = load i64, ptr %10, align 8, !tbaa !37
  %1780 = load ptr, ptr %6, align 8, !tbaa !5
  %1781 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1780, i32 0, i32 43
  %1782 = load ptr, ptr %9, align 8, !tbaa !5
  %1783 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1779, ptr noundef %1781, ptr noundef %1782)
  %1784 = fmul double %1778, %1783
  %1785 = load ptr, ptr %6, align 8, !tbaa !5
  %1786 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1785, i32 0, i32 79
  %1787 = load i64, ptr %1786, align 8, !tbaa !75
  %1788 = trunc i64 %1787 to i32
  %1789 = load i64, ptr %33, align 8, !tbaa !37
  %1790 = trunc i64 %1789 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1267, double noundef %1775, double noundef %1784, i32 noundef %1788, i32 noundef %1790)
  %1791 = load ptr, ptr %6, align 8, !tbaa !5
  %1792 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1791, i32 0, i32 32
  %1793 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1792, i32 0, i32 4
  %1794 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1793, i32 0, i32 4
  %1795 = load ptr, ptr %1794, align 8, !tbaa !36
  %1796 = getelementptr inbounds double, ptr %1795, i64 0
  %1797 = load double, ptr %1796, align 8, !tbaa !40
  %1798 = load ptr, ptr %6, align 8, !tbaa !5
  %1799 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1798, i32 0, i32 45
  %1800 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1799, i32 0, i32 4
  %1801 = load ptr, ptr %1800, align 8, !tbaa !36
  %1802 = getelementptr inbounds double, ptr %1801, i64 0
  %1803 = load double, ptr %1802, align 8, !tbaa !40
  %1804 = fmul double %1797, %1803
  %1805 = load ptr, ptr %6, align 8, !tbaa !5
  %1806 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1805, i32 0, i32 31
  %1807 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1806, i32 0, i32 4
  %1808 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1807, i32 0, i32 4
  %1809 = load ptr, ptr %1808, align 8, !tbaa !36
  %1810 = getelementptr inbounds double, ptr %1809, i64 0
  %1811 = load double, ptr %1810, align 8, !tbaa !40
  %1812 = load ptr, ptr %6, align 8, !tbaa !5
  %1813 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1812, i32 0, i32 45
  %1814 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1813, i32 0, i32 4
  %1815 = load ptr, ptr %1814, align 8, !tbaa !36
  %1816 = getelementptr inbounds double, ptr %1815, i64 0
  %1817 = load double, ptr %1816, align 8, !tbaa !40
  %1818 = fmul double %1811, %1817
  %1819 = load ptr, ptr %6, align 8, !tbaa !5
  %1820 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1819, i32 0, i32 31
  %1821 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1820, i32 0, i32 4
  %1822 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1821, i32 0, i32 4
  %1823 = load ptr, ptr %1822, align 8, !tbaa !36
  %1824 = getelementptr inbounds double, ptr %1823, i64 0
  %1825 = load double, ptr %1824, align 8, !tbaa !40
  %1826 = load ptr, ptr %6, align 8, !tbaa !5
  %1827 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1826, i32 0, i32 45
  %1828 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1827, i32 0, i32 4
  %1829 = load ptr, ptr %1828, align 8, !tbaa !36
  %1830 = getelementptr inbounds double, ptr %1829, i64 0
  %1831 = load double, ptr %1830, align 8, !tbaa !40
  %1832 = load ptr, ptr %6, align 8, !tbaa !5
  %1833 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1832, i32 0, i32 32
  %1834 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1833, i32 0, i32 4
  %1835 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1834, i32 0, i32 4
  %1836 = load ptr, ptr %1835, align 8, !tbaa !36
  %1837 = getelementptr inbounds double, ptr %1836, i64 0
  %1838 = load double, ptr %1837, align 8, !tbaa !40
  %1839 = load ptr, ptr %6, align 8, !tbaa !5
  %1840 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1839, i32 0, i32 45
  %1841 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1840, i32 0, i32 4
  %1842 = load ptr, ptr %1841, align 8, !tbaa !36
  %1843 = getelementptr inbounds double, ptr %1842, i64 0
  %1844 = load double, ptr %1843, align 8, !tbaa !40
  %1845 = fmul double %1838, %1844
  %1846 = fneg double %1845
  %1847 = call double @llvm.fmuladd.f64(double %1825, double %1831, double %1846)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1268, double noundef %1804, double noundef %1818, double noundef %1847)
  %1848 = load double, ptr %18, align 8, !tbaa !40
  %1849 = load double, ptr %19, align 8, !tbaa !40
  %1850 = load double, ptr %19, align 8, !tbaa !40
  %1851 = load double, ptr %18, align 8, !tbaa !40
  %1852 = fsub double %1850, %1851
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1269, double noundef %1848, double noundef %1849, double noundef %1852)
  br label %1853

1853:                                             ; preds = %1770, %1766
  %1854 = load ptr, ptr %6, align 8, !tbaa !5
  %1855 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL25nlcaul_clearrequestfieldsEPNS_11minaulstateEPNS_8ae_stateE(ptr noundef %1854, ptr noundef %1855)
  %1856 = load ptr, ptr %6, align 8, !tbaa !5
  %1857 = load ptr, ptr %6, align 8, !tbaa !5
  %1858 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1857, i32 0, i32 34
  %1859 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1858, i32 0, i32 3
  %1860 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL23nlcaul_aulsendtruepointEPNS_11minaulstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1856, ptr noundef %1859, ptr noundef %1860)
  %1861 = load ptr, ptr %6, align 8, !tbaa !5
  %1862 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1861, i32 0, i32 34
  %1863 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1862, i32 0, i32 4
  %1864 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1863, i32 0, i32 4
  %1865 = load ptr, ptr %1864, align 8, !tbaa !36
  %1866 = getelementptr inbounds double, ptr %1865, i64 0
  %1867 = load double, ptr %1866, align 8, !tbaa !40
  %1868 = load ptr, ptr %6, align 8, !tbaa !5
  %1869 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1868, i32 0, i32 45
  %1870 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1869, i32 0, i32 4
  %1871 = load ptr, ptr %1870, align 8, !tbaa !36
  %1872 = getelementptr inbounds double, ptr %1871, i64 0
  %1873 = load double, ptr %1872, align 8, !tbaa !40
  %1874 = fmul double %1867, %1873
  %1875 = load ptr, ptr %6, align 8, !tbaa !5
  %1876 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1875, i32 0, i32 26
  store double %1874, ptr %1876, align 8, !tbaa !57
  %1877 = load ptr, ptr %6, align 8, !tbaa !5
  %1878 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1877, i32 0, i32 29
  store i8 1, ptr %1878, align 2, !tbaa !46
  %1879 = load ptr, ptr %6, align 8, !tbaa !5
  %1880 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1879, i32 0, i32 81
  %1881 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %1880, i32 0, i32 0
  store i32 3, ptr %1881, align 8, !tbaa !11
  br label %3311

1882:                                             ; preds = %369
  %1883 = load ptr, ptr %6, align 8, !tbaa !5
  %1884 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1883, i32 0, i32 29
  store i8 0, ptr %1884, align 2, !tbaa !46
  %1885 = load ptr, ptr %6, align 8, !tbaa !5
  %1886 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1885, i32 0, i32 72
  %1887 = load i64, ptr %1886, align 8, !tbaa !51
  %1888 = load ptr, ptr %6, align 8, !tbaa !5
  %1889 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1888, i32 0, i32 79
  %1890 = load i64, ptr %1889, align 8, !tbaa !75
  %1891 = add nsw i64 %1887, %1890
  %1892 = load ptr, ptr %6, align 8, !tbaa !5
  %1893 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1892, i32 0, i32 72
  store i64 %1891, ptr %1893, align 8, !tbaa !51
  %1894 = load ptr, ptr %6, align 8, !tbaa !5
  %1895 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1894, i32 0, i32 57
  %1896 = load double, ptr %1895, align 8, !tbaa !59
  %1897 = load ptr, ptr %6, align 8, !tbaa !5
  %1898 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1897, i32 0, i32 60
  %1899 = load double, ptr %1898, align 8, !tbaa !73
  %1900 = load ptr, ptr %9, align 8, !tbaa !5
  %1901 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1896, double noundef %1899, ptr noundef %1900)
  %1902 = load ptr, ptr %6, align 8, !tbaa !5
  %1903 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1902, i32 0, i32 57
  store double %1901, ptr %1903, align 8, !tbaa !59
  %1904 = load i64, ptr %33, align 8, !tbaa !37
  %1905 = icmp eq i64 %1904, 1
  br i1 %1905, label %1906, label %1922

1906:                                             ; preds = %1882
  %1907 = load ptr, ptr %6, align 8, !tbaa !5
  %1908 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1907, i32 0, i32 48
  %1909 = load ptr, ptr %6, align 8, !tbaa !5
  %1910 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1909, i32 0, i32 32
  %1911 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1910, i32 0, i32 3
  %1912 = load ptr, ptr %6, align 8, !tbaa !5
  %1913 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1912, i32 0, i32 50
  %1914 = load ptr, ptr %6, align 8, !tbaa !5
  %1915 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1914, i32 0, i32 31
  %1916 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1915, i32 0, i32 3
  %1917 = load ptr, ptr %6, align 8, !tbaa !5
  %1918 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1917, i32 0, i32 51
  %1919 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %1920 = trunc i8 %1919 to i1
  %1921 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl13hessianupdateEPNS_12xbfgshessianEPKNS_9ae_vectorES4_S4_S4_bPNS_8ae_stateE(ptr noundef %1908, ptr noundef %1911, ptr noundef %1913, ptr noundef %1916, ptr noundef %1918, i1 noundef zeroext %1920, ptr noundef %1921)
  br label %1927

1922:                                             ; preds = %1882
  %1923 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %1924 = trunc i8 %1923 to i1
  br i1 %1924, label %1925, label %1926

1925:                                             ; preds = %1922
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1270)
  br label %1926

1926:                                             ; preds = %1925, %1922
  br label %1927

1927:                                             ; preds = %1926, %1906
  %1928 = load ptr, ptr %6, align 8, !tbaa !5
  %1929 = load ptr, ptr %6, align 8, !tbaa !5
  %1930 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1929, i32 0, i32 31
  %1931 = load ptr, ptr %6, align 8, !tbaa !5
  %1932 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1931, i32 0, i32 30
  %1933 = load double, ptr %1932, align 8, !tbaa !60
  %1934 = load ptr, ptr %6, align 8, !tbaa !5
  %1935 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1934, i32 0, i32 30
  %1936 = load double, ptr %1935, align 8, !tbaa !60
  %1937 = load ptr, ptr %6, align 8, !tbaa !5
  %1938 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1937, i32 0, i32 53
  %1939 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL18nlcaul_modtargetfgEPNS_11minaulstateEPKNS_11varsfuncjacEddPdPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %1928, ptr noundef %1930, double noundef %1933, double noundef %1936, ptr noundef %24, ptr noundef %1938, ptr noundef %1939)
  %1940 = load ptr, ptr %6, align 8, !tbaa !5
  %1941 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1940, i32 0, i32 49
  %1942 = load ptr, ptr %6, align 8, !tbaa !5
  %1943 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1942, i32 0, i32 32
  %1944 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1943, i32 0, i32 3
  %1945 = load ptr, ptr %6, align 8, !tbaa !5
  %1946 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1945, i32 0, i32 52
  %1947 = load ptr, ptr %6, align 8, !tbaa !5
  %1948 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1947, i32 0, i32 31
  %1949 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1948, i32 0, i32 3
  %1950 = load ptr, ptr %6, align 8, !tbaa !5
  %1951 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1950, i32 0, i32 53
  %1952 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %1953 = trunc i8 %1952 to i1
  %1954 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl13hessianupdateEPNS_12xbfgshessianEPKNS_9ae_vectorES4_S4_S4_bPNS_8ae_stateE(ptr noundef %1941, ptr noundef %1944, ptr noundef %1946, ptr noundef %1949, ptr noundef %1951, i1 noundef zeroext %1953, ptr noundef %1954)
  %1955 = load ptr, ptr %6, align 8, !tbaa !5
  %1956 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1955, i32 0, i32 10
  %1957 = load ptr, ptr %6, align 8, !tbaa !5
  %1958 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1957, i32 0, i32 11
  %1959 = load ptr, ptr %6, align 8, !tbaa !5
  %1960 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1959, i32 0, i32 12
  %1961 = load ptr, ptr %6, align 8, !tbaa !5
  %1962 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1961, i32 0, i32 19
  %1963 = load i64, ptr %11, align 8, !tbaa !37
  %1964 = load ptr, ptr %6, align 8, !tbaa !5
  %1965 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1964, i32 0, i32 34
  %1966 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1965, i32 0, i32 3
  %1967 = load ptr, ptr %6, align 8, !tbaa !5
  %1968 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1967, i32 0, i32 75
  %1969 = load ptr, ptr %6, align 8, !tbaa !5
  %1970 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1969, i32 0, i32 76
  %1971 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl17checklc2violationEPKNS_12sparsematrixEPKNS_9ae_vectorES5_S5_lS5_PdPlPNS_8ae_stateE(ptr noundef %1956, ptr noundef %1958, ptr noundef %1960, ptr noundef %1962, i64 noundef %1963, ptr noundef %1966, ptr noundef %1968, ptr noundef %1970, ptr noundef %1971)
  %1972 = load ptr, ptr %6, align 8, !tbaa !5
  %1973 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1972, i32 0, i32 34
  %1974 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %1973, i32 0, i32 4
  %1975 = load ptr, ptr %6, align 8, !tbaa !5
  %1976 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1975, i32 0, i32 45
  %1977 = load ptr, ptr %6, align 8, !tbaa !5
  %1978 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1977, i32 0, i32 15
  %1979 = load ptr, ptr %6, align 8, !tbaa !5
  %1980 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1979, i32 0, i32 16
  %1981 = load i64, ptr %12, align 8, !tbaa !37
  %1982 = load ptr, ptr %6, align 8, !tbaa !5
  %1983 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1982, i32 0, i32 77
  %1984 = load ptr, ptr %6, align 8, !tbaa !5
  %1985 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1984, i32 0, i32 78
  %1986 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl28unscaleandchecknlc2violationEPKNS_9ae_vectorES2_S2_S2_lPdPlPNS_8ae_stateE(ptr noundef %1974, ptr noundef %1976, ptr noundef %1978, ptr noundef %1980, i64 noundef %1981, ptr noundef %1983, ptr noundef %1985, ptr noundef %1986)
  %1987 = load ptr, ptr %6, align 8, !tbaa !5
  %1988 = load ptr, ptr %6, align 8, !tbaa !5
  %1989 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1988, i32 0, i32 31
  %1990 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL20nlcaul_computeerrorsEPNS_11minaulstateEPKNS_11varsfuncjacEPdS5_S5_PNS_8ae_stateE(ptr noundef %1987, ptr noundef %1989, ptr noundef %43, ptr noundef %44, ptr noundef %45, ptr noundef %1990)
  %1991 = load i8, ptr %15, align 1, !tbaa !9, !range !38, !noundef !39
  %1992 = trunc i8 %1991 to i1
  br i1 %1992, label %1994, label %1993

1993:                                             ; preds = %1927
  br label %2172

1994:                                             ; preds = %1927
  %1995 = load ptr, ptr %6, align 8, !tbaa !5
  %1996 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1995, i32 0, i32 32
  %1997 = load ptr, ptr %6, align 8, !tbaa !5
  %1998 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %1997, i32 0, i32 68
  %1999 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %1996, ptr noundef %1998, ptr noundef %1999)
  %2000 = load ptr, ptr %6, align 8, !tbaa !5
  %2001 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2000, i32 0, i32 35
  %2002 = load ptr, ptr %6, align 8, !tbaa !5
  %2003 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2002, i32 0, i32 69
  %2004 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %2001, ptr noundef %2003, ptr noundef %2004)
  %2005 = load ptr, ptr %6, align 8, !tbaa !5
  %2006 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2005, i32 0, i32 60
  %2007 = load double, ptr %2006, align 8, !tbaa !73
  %2008 = load double, ptr %35, align 8, !tbaa !40
  %2009 = fdiv double %2007, %2008
  %2010 = fmul double 5.000000e+00, %2009
  %2011 = load ptr, ptr %9, align 8, !tbaa !5
  %2012 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2010, double noundef 1.000000e-02, ptr noundef %2011)
  store double %2012, ptr %39, align 8, !tbaa !40
  %2013 = load ptr, ptr %7, align 8, !tbaa !5
  %2014 = load ptr, ptr %6, align 8, !tbaa !5
  %2015 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2014, i32 0, i32 68
  %2016 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2015, i32 0, i32 3
  %2017 = load ptr, ptr %6, align 8, !tbaa !5
  %2018 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2017, i32 0, i32 44
  %2019 = load double, ptr %39, align 8, !tbaa !40
  %2020 = load ptr, ptr %6, align 8, !tbaa !5
  %2021 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2020, i32 0, i32 70
  %2022 = load i64, ptr %2021, align 8, !tbaa !50
  %2023 = load ptr, ptr %6, align 8, !tbaa !5
  %2024 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2023, i32 0, i32 55
  %2025 = load i64, ptr %2024, align 8, !tbaa !53
  %2026 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl39smoothnessmonitorstartlagrangianprobingEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_dllPNS_8ae_stateE(ptr noundef %2013, ptr noundef %2016, ptr noundef %2018, double noundef %2019, i64 noundef %2022, i64 noundef %2025, ptr noundef %2026)
  br label %2027

2027:                                             ; preds = %2149, %1994
  %2028 = load ptr, ptr %7, align 8, !tbaa !5
  %2029 = load ptr, ptr %9, align 8, !tbaa !5
  %2030 = call noundef zeroext i1 @_ZN11alglib_impl32smoothnessmonitorprobelagrangianEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %2028, ptr noundef %2029)
  br i1 %2030, label %2032, label %2031

2031:                                             ; preds = %2027
  br label %2169

2032:                                             ; preds = %2027
  %2033 = load i64, ptr %10, align 8, !tbaa !37
  %2034 = load ptr, ptr %7, align 8, !tbaa !5
  %2035 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %2034, i32 0, i32 20
  %2036 = load ptr, ptr %6, align 8, !tbaa !5
  %2037 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2036, i32 0, i32 68
  %2038 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2037, i32 0, i32 3
  %2039 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2033, ptr noundef %2035, ptr noundef %2038, ptr noundef %2039)
  %2040 = load ptr, ptr %6, align 8, !tbaa !5
  %2041 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL25nlcaul_clearrequestfieldsEPNS_11minaulstateEPNS_8ae_stateE(ptr noundef %2040, ptr noundef %2041)
  %2042 = load ptr, ptr %6, align 8, !tbaa !5
  %2043 = load ptr, ptr %6, align 8, !tbaa !5
  %2044 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2043, i32 0, i32 68
  %2045 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2044, i32 0, i32 3
  %2046 = load ptr, ptr %6, align 8, !tbaa !5
  %2047 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2046, i32 0, i32 69
  %2048 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2047, i32 0, i32 3
  %2049 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL26nlcaul_aulsendvirtualpointEPNS_11minaulstateEPKNS_9ae_vectorEPS2_PNS_8ae_stateE(ptr noundef %2042, ptr noundef %2045, ptr noundef %2048, ptr noundef %2049)
  %2050 = load ptr, ptr %6, align 8, !tbaa !5
  %2051 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2050, i32 0, i32 27
  store i8 1, ptr %2051, align 8, !tbaa !44
  %2052 = load ptr, ptr %6, align 8, !tbaa !5
  %2053 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2052, i32 0, i32 81
  %2054 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %2053, i32 0, i32 0
  store i32 4, ptr %2054, align 8, !tbaa !11
  br label %3311

2055:                                             ; preds = %376
  %2056 = load ptr, ptr %6, align 8, !tbaa !5
  %2057 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2056, i32 0, i32 27
  store i8 0, ptr %2057, align 8, !tbaa !44
  %2058 = load ptr, ptr %6, align 8, !tbaa !5
  %2059 = load ptr, ptr %6, align 8, !tbaa !5
  %2060 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2059, i32 0, i32 68
  %2061 = load ptr, ptr %6, align 8, !tbaa !5
  %2062 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2061, i32 0, i32 69
  %2063 = load ptr, ptr %9, align 8, !tbaa !5
  %2064 = call noundef zeroext i1 @_ZN11alglib_implL20nlcaul_aulretrievesjEPNS_11minaulstateEPNS_11varsfuncjacES3_PNS_8ae_stateE(ptr noundef %2058, ptr noundef %2060, ptr noundef %2062, ptr noundef %2063)
  br i1 %2064, label %2070, label %2065

2065:                                             ; preds = %2055
  %2066 = load ptr, ptr %6, align 8, !tbaa !5
  %2067 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2066, i32 0, i32 71
  store i64 -8, ptr %2067, align 8, !tbaa !49
  store i8 0, ptr %49, align 1, !tbaa !9
  %2068 = load i8, ptr %49, align 1, !tbaa !9, !range !38, !noundef !39
  %2069 = trunc i8 %2068 to i1
  store i1 %2069, ptr %5, align 1
  store i32 1, ptr %50, align 4
  br label %3597

2070:                                             ; preds = %2055
  %2071 = load i64, ptr %12, align 8, !tbaa !37
  %2072 = add nsw i64 1, %2071
  %2073 = load ptr, ptr %6, align 8, !tbaa !5
  %2074 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2073, i32 0, i32 68
  %2075 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2074, i32 0, i32 4
  %2076 = load ptr, ptr %7, align 8, !tbaa !5
  %2077 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %2076, i32 0, i32 21
  %2078 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %2072, ptr noundef %2075, ptr noundef %2077, ptr noundef %2078)
  %2079 = load i64, ptr %12, align 8, !tbaa !37
  %2080 = add nsw i64 1, %2079
  %2081 = load i64, ptr %10, align 8, !tbaa !37
  %2082 = load ptr, ptr %7, align 8, !tbaa !5
  %2083 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %2082, i32 0, i32 23
  %2084 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %2080, i64 noundef %2081, double noundef 0.000000e+00, ptr noundef %2083, ptr noundef %2084)
  store i64 0, ptr %25, align 8, !tbaa !37
  br label %2085

2085:                                             ; preds = %2146, %2070
  %2086 = load i64, ptr %25, align 8, !tbaa !37
  %2087 = load i64, ptr %12, align 8, !tbaa !37
  %2088 = icmp sle i64 %2086, %2087
  br i1 %2088, label %2089, label %2149

2089:                                             ; preds = %2085
  %2090 = load ptr, ptr %6, align 8, !tbaa !5
  %2091 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2090, i32 0, i32 68
  %2092 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2091, i32 0, i32 6
  %2093 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2092, i32 0, i32 2
  %2094 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2093, i32 0, i32 4
  %2095 = load ptr, ptr %2094, align 8, !tbaa !36
  %2096 = load i64, ptr %25, align 8, !tbaa !37
  %2097 = getelementptr inbounds i64, ptr %2095, i64 %2096
  %2098 = load i64, ptr %2097, align 8, !tbaa !37
  store i64 %2098, ptr %27, align 8, !tbaa !37
  %2099 = load ptr, ptr %6, align 8, !tbaa !5
  %2100 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2099, i32 0, i32 68
  %2101 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2100, i32 0, i32 6
  %2102 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2101, i32 0, i32 2
  %2103 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2102, i32 0, i32 4
  %2104 = load ptr, ptr %2103, align 8, !tbaa !36
  %2105 = load i64, ptr %25, align 8, !tbaa !37
  %2106 = add nsw i64 %2105, 1
  %2107 = getelementptr inbounds i64, ptr %2104, i64 %2106
  %2108 = load i64, ptr %2107, align 8, !tbaa !37
  %2109 = sub nsw i64 %2108, 1
  store i64 %2109, ptr %28, align 8, !tbaa !37
  %2110 = load i64, ptr %27, align 8, !tbaa !37
  store i64 %2110, ptr %29, align 8, !tbaa !37
  br label %2111

2111:                                             ; preds = %2142, %2089
  %2112 = load i64, ptr %29, align 8, !tbaa !37
  %2113 = load i64, ptr %28, align 8, !tbaa !37
  %2114 = icmp sle i64 %2112, %2113
  br i1 %2114, label %2115, label %2145

2115:                                             ; preds = %2111
  %2116 = load ptr, ptr %6, align 8, !tbaa !5
  %2117 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2116, i32 0, i32 68
  %2118 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2117, i32 0, i32 6
  %2119 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2118, i32 0, i32 0
  %2120 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2119, i32 0, i32 4
  %2121 = load ptr, ptr %2120, align 8, !tbaa !36
  %2122 = load i64, ptr %29, align 8, !tbaa !37
  %2123 = getelementptr inbounds double, ptr %2121, i64 %2122
  %2124 = load double, ptr %2123, align 8, !tbaa !40
  %2125 = load ptr, ptr %7, align 8, !tbaa !5
  %2126 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %2125, i32 0, i32 23
  %2127 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2126, i32 0, i32 6
  %2128 = load ptr, ptr %2127, align 8, !tbaa !36
  %2129 = load i64, ptr %25, align 8, !tbaa !37
  %2130 = getelementptr inbounds ptr, ptr %2128, i64 %2129
  %2131 = load ptr, ptr %2130, align 8, !tbaa !5
  %2132 = load ptr, ptr %6, align 8, !tbaa !5
  %2133 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2132, i32 0, i32 68
  %2134 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2133, i32 0, i32 6
  %2135 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2134, i32 0, i32 1
  %2136 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2135, i32 0, i32 4
  %2137 = load ptr, ptr %2136, align 8, !tbaa !36
  %2138 = load i64, ptr %29, align 8, !tbaa !37
  %2139 = getelementptr inbounds i64, ptr %2137, i64 %2138
  %2140 = load i64, ptr %2139, align 8, !tbaa !37
  %2141 = getelementptr inbounds double, ptr %2131, i64 %2140
  store double %2124, ptr %2141, align 8, !tbaa !40
  br label %2142

2142:                                             ; preds = %2115
  %2143 = load i64, ptr %29, align 8, !tbaa !37
  %2144 = add nsw i64 %2143, 1
  store i64 %2144, ptr %29, align 8, !tbaa !37
  br label %2111, !llvm.loop !76

2145:                                             ; preds = %2111
  br label %2146

2146:                                             ; preds = %2145
  %2147 = load i64, ptr %25, align 8, !tbaa !37
  %2148 = add nsw i64 %2147, 1
  store i64 %2148, ptr %25, align 8, !tbaa !37
  br label %2085, !llvm.loop !77

2149:                                             ; preds = %2085
  %2150 = load i64, ptr %10, align 8, !tbaa !37
  %2151 = load ptr, ptr %6, align 8, !tbaa !5
  %2152 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2151, i32 0, i32 67
  %2153 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2150, ptr noundef %2152, ptr noundef %2153)
  %2154 = load ptr, ptr %6, align 8, !tbaa !5
  %2155 = load ptr, ptr %6, align 8, !tbaa !5
  %2156 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2155, i32 0, i32 68
  %2157 = load ptr, ptr %6, align 8, !tbaa !5
  %2158 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2157, i32 0, i32 30
  %2159 = load double, ptr %2158, align 8, !tbaa !60
  %2160 = load ptr, ptr %6, align 8, !tbaa !5
  %2161 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2160, i32 0, i32 40
  %2162 = load ptr, ptr %6, align 8, !tbaa !5
  %2163 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2162, i32 0, i32 41
  %2164 = load ptr, ptr %7, align 8, !tbaa !5
  %2165 = getelementptr inbounds %"struct.alglib_impl::smoothnessmonitor", ptr %2164, i32 0, i32 22
  %2166 = load ptr, ptr %6, align 8, !tbaa !5
  %2167 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2166, i32 0, i32 67
  %2168 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL15nlcaul_auglagfgEPNS_11minaulstateEPKNS_11varsfuncjacEdPKNS_9ae_vectorES7_PdPS5_PNS_8ae_stateE(ptr noundef %2154, ptr noundef %2156, double noundef %2159, ptr noundef %2161, ptr noundef %2163, ptr noundef %2165, ptr noundef %2167, ptr noundef %2168)
  br label %2027

2169:                                             ; preds = %2031
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.205)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1161)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.205)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1271)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1170)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1171)
  %2170 = load ptr, ptr %7, align 8, !tbaa !5
  %2171 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl46smoothnessmonitortracelagrangianprobingresultsEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %2170, ptr noundef %2171)
  br label %2172

2172:                                             ; preds = %2169, %1993
  %2173 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %2174 = trunc i8 %2173 to i1
  br i1 %2174, label %2175, label %2176

2175:                                             ; preds = %2172
  br label %2176

2176:                                             ; preds = %2175, %2172
  %2177 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %2178 = trunc i8 %2177 to i1
  br i1 %2178, label %2179, label %2183

2179:                                             ; preds = %2176
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1272)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1273)
  %2180 = load double, ptr %43, align 8, !tbaa !40
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1274, double noundef %2180)
  %2181 = load double, ptr %44, align 8, !tbaa !40
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1275, double noundef %2181)
  %2182 = load double, ptr %45, align 8, !tbaa !40
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1276, double noundef %2182)
  br label %2183

2183:                                             ; preds = %2179, %2176
  %2184 = load ptr, ptr %6, align 8, !tbaa !5
  %2185 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2184, i32 0, i32 70
  %2186 = load i64, ptr %2185, align 8, !tbaa !50
  %2187 = add nsw i64 %2186, 1
  %2188 = load ptr, ptr %6, align 8, !tbaa !5
  %2189 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2188, i32 0, i32 70
  store i64 %2187, ptr %2189, align 8, !tbaa !50
  %2190 = load ptr, ptr %6, align 8, !tbaa !5
  %2191 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2190, i32 0, i32 54
  %2192 = load i64, ptr %2191, align 8, !tbaa !52
  %2193 = add nsw i64 %2192, 1
  %2194 = load ptr, ptr %6, align 8, !tbaa !5
  %2195 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2194, i32 0, i32 54
  store i64 %2193, ptr %2195, align 8, !tbaa !52
  store i8 0, ptr %34, align 1, !tbaa !9
  %2196 = load double, ptr %19, align 8, !tbaa !40
  %2197 = load double, ptr %18, align 8, !tbaa !40
  %2198 = fsub double %2196, %2197
  %2199 = load ptr, ptr %9, align 8, !tbaa !5
  %2200 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2198, ptr noundef %2199)
  %2201 = load double, ptr @_ZN11alglib_implL21nlcaul_stagnationepsfE, align 8, !tbaa !40
  %2202 = load double, ptr %19, align 8, !tbaa !40
  %2203 = load ptr, ptr %9, align 8, !tbaa !5
  %2204 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2202, ptr noundef %2203)
  %2205 = load double, ptr %18, align 8, !tbaa !40
  %2206 = load ptr, ptr %9, align 8, !tbaa !5
  %2207 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2205, ptr noundef %2206)
  %2208 = load ptr, ptr %9, align 8, !tbaa !5
  %2209 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %2204, double noundef %2207, double noundef 1.000000e+00, ptr noundef %2208)
  %2210 = fmul double %2201, %2209
  %2211 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2200, double noundef %2210)
  %2212 = load ptr, ptr %6, align 8, !tbaa !5
  %2213 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2212, i32 0, i32 56
  %2214 = load i64, ptr %2213, align 8, !tbaa !58
  %2215 = add nsw i64 %2214, 1
  %2216 = load ptr, ptr %9, align 8, !tbaa !5
  %2217 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %2211, i64 noundef %2215, i64 noundef 0, ptr noundef %2216)
  %2218 = load ptr, ptr %6, align 8, !tbaa !5
  %2219 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2218, i32 0, i32 56
  store i64 %2217, ptr %2219, align 8, !tbaa !58
  %2220 = load double, ptr %19, align 8, !tbaa !40
  %2221 = load double, ptr %18, align 8, !tbaa !40
  %2222 = fsub double %2220, %2221
  %2223 = load ptr, ptr %9, align 8, !tbaa !5
  %2224 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2222, ptr noundef %2223)
  %2225 = load double, ptr %19, align 8, !tbaa !40
  %2226 = load double, ptr %18, align 8, !tbaa !40
  %2227 = load ptr, ptr %9, align 8, !tbaa !5
  %2228 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %2225, double noundef %2226, double noundef 1.000000e+00, ptr noundef %2227)
  %2229 = fdiv double %2224, %2228
  store double %2229, ptr %40, align 8, !tbaa !40
  %2230 = load double, ptr %24, align 8, !tbaa !40
  %2231 = load double, ptr %23, align 8, !tbaa !40
  %2232 = fsub double %2230, %2231
  %2233 = load ptr, ptr %9, align 8, !tbaa !5
  %2234 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2232, ptr noundef %2233)
  %2235 = load double, ptr %24, align 8, !tbaa !40
  %2236 = load double, ptr %23, align 8, !tbaa !40
  %2237 = load ptr, ptr %9, align 8, !tbaa !5
  %2238 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %2235, double noundef %2236, double noundef 1.000000e+00, ptr noundef %2237)
  %2239 = fdiv double %2234, %2238
  store double %2239, ptr %41, align 8, !tbaa !40
  %2240 = load double, ptr %40, align 8, !tbaa !40
  %2241 = load double, ptr %41, align 8, !tbaa !40
  %2242 = load ptr, ptr %9, align 8, !tbaa !5
  %2243 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2240, double noundef %2241, ptr noundef %2242)
  %2244 = load ptr, ptr %6, align 8, !tbaa !5
  %2245 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2244, i32 0, i32 20
  %2246 = load ptr, ptr %9, align 8, !tbaa !5
  %2247 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %2245, ptr noundef %2246)
  %2248 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2243, double noundef %2247)
  br i1 %2248, label %2249, label %2258

2249:                                             ; preds = %2183
  store i8 1, ptr %34, align 1, !tbaa !9
  %2250 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %2251 = trunc i8 %2250 to i1
  br i1 %2251, label %2252, label %2257

2252:                                             ; preds = %2249
  %2253 = load ptr, ptr %6, align 8, !tbaa !5
  %2254 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2253, i32 0, i32 20
  %2255 = load ptr, ptr %9, align 8, !tbaa !5
  %2256 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %2254, ptr noundef %2255)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1277, double noundef %2256)
  br label %2257

2257:                                             ; preds = %2252, %2249
  br label %2258

2258:                                             ; preds = %2257, %2183
  %2259 = load i64, ptr %10, align 8, !tbaa !37
  %2260 = load ptr, ptr %6, align 8, !tbaa !5
  %2261 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2260, i32 0, i32 43
  %2262 = load ptr, ptr %9, align 8, !tbaa !5
  %2263 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2259, ptr noundef %2261, ptr noundef %2262)
  %2264 = load ptr, ptr %6, align 8, !tbaa !5
  %2265 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2264, i32 0, i32 60
  %2266 = load double, ptr %2265, align 8, !tbaa !73
  %2267 = fmul double %2263, %2266
  %2268 = load ptr, ptr %6, align 8, !tbaa !5
  %2269 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2268, i32 0, i32 20
  %2270 = load ptr, ptr %9, align 8, !tbaa !5
  %2271 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %2269, ptr noundef %2270)
  %2272 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2267, double noundef %2271)
  br i1 %2272, label %2273, label %2282

2273:                                             ; preds = %2258
  store i8 1, ptr %34, align 1, !tbaa !9
  %2274 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %2275 = trunc i8 %2274 to i1
  br i1 %2275, label %2276, label %2281

2276:                                             ; preds = %2273
  %2277 = load ptr, ptr %6, align 8, !tbaa !5
  %2278 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2277, i32 0, i32 20
  %2279 = load ptr, ptr %9, align 8, !tbaa !5
  %2280 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %2278, ptr noundef %2279)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1278, double noundef %2280)
  br label %2281

2281:                                             ; preds = %2276, %2273
  br label %2282

2282:                                             ; preds = %2281, %2258
  %2283 = load i64, ptr %10, align 8, !tbaa !37
  %2284 = load ptr, ptr %6, align 8, !tbaa !5
  %2285 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2284, i32 0, i32 43
  %2286 = load ptr, ptr %9, align 8, !tbaa !5
  %2287 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %2283, ptr noundef %2285, ptr noundef %2286)
  %2288 = load ptr, ptr %6, align 8, !tbaa !5
  %2289 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2288, i32 0, i32 60
  %2290 = load double, ptr %2289, align 8, !tbaa !73
  %2291 = fmul double %2287, %2290
  %2292 = load ptr, ptr %9, align 8, !tbaa !5
  %2293 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %2292)
  %2294 = fmul double 1.000000e-03, %2293
  %2295 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2291, double noundef %2294)
  br i1 %2295, label %2296, label %2301

2296:                                             ; preds = %2282
  store i8 1, ptr %34, align 1, !tbaa !9
  %2297 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %2298 = trunc i8 %2297 to i1
  br i1 %2298, label %2299, label %2300

2299:                                             ; preds = %2296
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1279)
  br label %2300

2300:                                             ; preds = %2299, %2296
  br label %2301

2301:                                             ; preds = %2300, %2282
  %2302 = load ptr, ptr %6, align 8, !tbaa !5
  %2303 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2302, i32 0, i32 20
  %2304 = load ptr, ptr %9, align 8, !tbaa !5
  %2305 = call noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %2303, ptr noundef %2304)
  %2306 = icmp sgt i64 %2305, 0
  br i1 %2306, label %2307, label %2325

2307:                                             ; preds = %2301
  %2308 = load ptr, ptr %6, align 8, !tbaa !5
  %2309 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2308, i32 0, i32 54
  %2310 = load i64, ptr %2309, align 8, !tbaa !52
  %2311 = load ptr, ptr %6, align 8, !tbaa !5
  %2312 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2311, i32 0, i32 20
  %2313 = load ptr, ptr %9, align 8, !tbaa !5
  %2314 = call noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef %2312, ptr noundef %2313)
  %2315 = icmp sge i64 %2310, %2314
  br i1 %2315, label %2316, label %2325

2316:                                             ; preds = %2307
  store i8 1, ptr %34, align 1, !tbaa !9
  %2317 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %2318 = trunc i8 %2317 to i1
  br i1 %2318, label %2319, label %2324

2319:                                             ; preds = %2316
  %2320 = load ptr, ptr %6, align 8, !tbaa !5
  %2321 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2320, i32 0, i32 54
  %2322 = load i64, ptr %2321, align 8, !tbaa !52
  %2323 = trunc i64 %2322 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1280, i32 noundef %2323)
  br label %2324

2324:                                             ; preds = %2319, %2316
  br label %2325

2325:                                             ; preds = %2324, %2307, %2301
  %2326 = load ptr, ptr %6, align 8, !tbaa !5
  %2327 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2326, i32 0, i32 56
  %2328 = load i64, ptr %2327, align 8, !tbaa !58
  %2329 = load i64, ptr @_ZN11alglib_implL23nlcaul_fstagnationlimitE, align 8, !tbaa !37
  %2330 = icmp sge i64 %2328, %2329
  br i1 %2330, label %2331, label %2340

2331:                                             ; preds = %2325
  %2332 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %2333 = trunc i8 %2332 to i1
  br i1 %2333, label %2334, label %2339

2334:                                             ; preds = %2331
  %2335 = load ptr, ptr %6, align 8, !tbaa !5
  %2336 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2335, i32 0, i32 56
  %2337 = load i64, ptr %2336, align 8, !tbaa !58
  %2338 = trunc i64 %2337 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1127, i32 noundef %2338)
  br label %2339

2339:                                             ; preds = %2334, %2331
  store i8 1, ptr %34, align 1, !tbaa !9
  br label %2340

2340:                                             ; preds = %2339, %2325
  %2341 = load i8, ptr %34, align 1, !tbaa !9, !range !38, !noundef !39
  %2342 = trunc i8 %2341 to i1
  br i1 %2342, label %2346, label %2343

2343:                                             ; preds = %2340
  %2344 = load i8, ptr %8, align 1, !tbaa !9, !range !38, !noundef !39
  %2345 = trunc i8 %2344 to i1
  br i1 %2345, label %2346, label %3254

2346:                                             ; preds = %2343, %2340
  %2347 = load double, ptr %43, align 8, !tbaa !40
  %2348 = load double, ptr %44, align 8, !tbaa !40
  %2349 = load double, ptr %45, align 8, !tbaa !40
  %2350 = load ptr, ptr %9, align 8, !tbaa !5
  %2351 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %2347, double noundef %2348, double noundef %2349, ptr noundef %2350)
  %2352 = load ptr, ptr %6, align 8, !tbaa !5
  %2353 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2352, i32 0, i32 37
  %2354 = load double, ptr %2353, align 8, !tbaa !61
  %2355 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2351, double noundef %2354)
  br i1 %2355, label %2356, label %2398

2356:                                             ; preds = %2346
  %2357 = load double, ptr %43, align 8, !tbaa !40
  %2358 = load double, ptr %44, align 8, !tbaa !40
  %2359 = load double, ptr %45, align 8, !tbaa !40
  %2360 = load ptr, ptr %9, align 8, !tbaa !5
  %2361 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %2357, double noundef %2358, double noundef %2359, ptr noundef %2360)
  %2362 = load double, ptr @_ZN11alglib_implL29nlcaul_besterrstagnationcoeffE, align 8, !tbaa !40
  %2363 = load ptr, ptr %6, align 8, !tbaa !5
  %2364 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2363, i32 0, i32 37
  %2365 = load double, ptr %2364, align 8, !tbaa !61
  %2366 = fmul double %2362, %2365
  %2367 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2361, double noundef %2366)
  br i1 %2367, label %2368, label %2375

2368:                                             ; preds = %2356
  %2369 = load ptr, ptr %6, align 8, !tbaa !5
  %2370 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2369, i32 0, i32 39
  %2371 = load i64, ptr %2370, align 8, !tbaa !63
  %2372 = add nsw i64 %2371, 1
  %2373 = load ptr, ptr %6, align 8, !tbaa !5
  %2374 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2373, i32 0, i32 39
  store i64 %2372, ptr %2374, align 8, !tbaa !63
  br label %2375

2375:                                             ; preds = %2368, %2356
  %2376 = load ptr, ptr %6, align 8, !tbaa !5
  %2377 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2376, i32 0, i32 31
  %2378 = load ptr, ptr %6, align 8, !tbaa !5
  %2379 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2378, i32 0, i32 33
  %2380 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %2377, ptr noundef %2379, ptr noundef %2380)
  %2381 = load ptr, ptr %6, align 8, !tbaa !5
  %2382 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2381, i32 0, i32 34
  %2383 = load ptr, ptr %6, align 8, !tbaa !5
  %2384 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2383, i32 0, i32 36
  %2385 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef %2382, ptr noundef %2384, ptr noundef %2385)
  %2386 = load double, ptr %43, align 8, !tbaa !40
  %2387 = load double, ptr %44, align 8, !tbaa !40
  %2388 = load double, ptr %45, align 8, !tbaa !40
  %2389 = load ptr, ptr %9, align 8, !tbaa !5
  %2390 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %2386, double noundef %2387, double noundef %2388, ptr noundef %2389)
  %2391 = load ptr, ptr %6, align 8, !tbaa !5
  %2392 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2391, i32 0, i32 37
  store double %2390, ptr %2392, align 8, !tbaa !61
  %2393 = load ptr, ptr %6, align 8, !tbaa !5
  %2394 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2393, i32 0, i32 55
  %2395 = load i64, ptr %2394, align 8, !tbaa !53
  %2396 = load ptr, ptr %6, align 8, !tbaa !5
  %2397 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2396, i32 0, i32 38
  store i64 %2395, ptr %2397, align 8, !tbaa !62
  br label %2398

2398:                                             ; preds = %2375, %2346
  %2399 = load ptr, ptr %6, align 8, !tbaa !5
  %2400 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2399, i32 0, i32 55
  %2401 = load i64, ptr %2400, align 8, !tbaa !53
  %2402 = add nsw i64 %2401, 1
  %2403 = load ptr, ptr %6, align 8, !tbaa !5
  %2404 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2403, i32 0, i32 55
  store i64 %2402, ptr %2404, align 8, !tbaa !53
  %2405 = load ptr, ptr %6, align 8, !tbaa !5
  %2406 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2405, i32 0, i32 54
  store i64 0, ptr %2406, align 8, !tbaa !52
  %2407 = load ptr, ptr %6, align 8, !tbaa !5
  %2408 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2407, i32 0, i32 56
  store i64 0, ptr %2408, align 8, !tbaa !58
  %2409 = load double, ptr %43, align 8, !tbaa !40
  %2410 = load ptr, ptr %9, align 8, !tbaa !5
  %2411 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %2410)
  %2412 = fmul double 1.000000e+01, %2411
  %2413 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2409, double noundef %2412)
  br i1 %2413, label %2414, label %2433

2414:                                             ; preds = %2398
  %2415 = load double, ptr %44, align 8, !tbaa !40
  %2416 = load ptr, ptr %9, align 8, !tbaa !5
  %2417 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %2416)
  %2418 = fmul double 1.000000e+01, %2417
  %2419 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2415, double noundef %2418)
  br i1 %2419, label %2420, label %2433

2420:                                             ; preds = %2414
  %2421 = load double, ptr %45, align 8, !tbaa !40
  %2422 = load ptr, ptr %9, align 8, !tbaa !5
  %2423 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %2422)
  %2424 = fmul double 1.000000e+01, %2423
  %2425 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %2421, double noundef %2424)
  br i1 %2425, label %2426, label %2433

2426:                                             ; preds = %2420
  %2427 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %2428 = trunc i8 %2427 to i1
  br i1 %2428, label %2429, label %2430

2429:                                             ; preds = %2426
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1281)
  br label %2430

2430:                                             ; preds = %2429, %2426
  %2431 = load ptr, ptr %6, align 8, !tbaa !5
  %2432 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2431, i32 0, i32 71
  store i64 1, ptr %2432, align 8, !tbaa !49
  br label %3255

2433:                                             ; preds = %2420, %2414, %2398
  %2434 = load ptr, ptr %6, align 8, !tbaa !5
  %2435 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2434, i32 0, i32 39
  %2436 = load i64, ptr %2435, align 8, !tbaa !63
  %2437 = load i64, ptr @_ZN11alglib_implL29nlcaul_besterrstagnationlimitE, align 8, !tbaa !37
  %2438 = icmp sge i64 %2436, %2437
  br i1 %2438, label %2439, label %2446

2439:                                             ; preds = %2433
  %2440 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %2441 = trunc i8 %2440 to i1
  br i1 %2441, label %2442, label %2443

2442:                                             ; preds = %2439
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1282)
  br label %2443

2443:                                             ; preds = %2442, %2439
  %2444 = load ptr, ptr %6, align 8, !tbaa !5
  %2445 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2444, i32 0, i32 71
  store i64 7, ptr %2445, align 8, !tbaa !49
  br label %3255

2446:                                             ; preds = %2433
  %2447 = load ptr, ptr %6, align 8, !tbaa !5
  %2448 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2447, i32 0, i32 38
  %2449 = load i64, ptr %2448, align 8, !tbaa !62
  %2450 = load ptr, ptr %6, align 8, !tbaa !5
  %2451 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2450, i32 0, i32 55
  %2452 = load i64, ptr %2451, align 8, !tbaa !53
  %2453 = load i64, ptr @_ZN11alglib_implL29nlcaul_besterrstagnationlimitE, align 8, !tbaa !37
  %2454 = sub nsw i64 %2452, %2453
  %2455 = icmp slt i64 %2449, %2454
  br i1 %2455, label %2456, label %2463

2456:                                             ; preds = %2446
  %2457 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %2458 = trunc i8 %2457 to i1
  br i1 %2458, label %2459, label %2460

2459:                                             ; preds = %2456
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1283)
  br label %2460

2460:                                             ; preds = %2459, %2456
  %2461 = load ptr, ptr %6, align 8, !tbaa !5
  %2462 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2461, i32 0, i32 71
  store i64 7, ptr %2462, align 8, !tbaa !49
  br label %3255

2463:                                             ; preds = %2446
  %2464 = load i8, ptr %8, align 1, !tbaa !9, !range !38, !noundef !39
  %2465 = trunc i8 %2464 to i1
  br i1 %2465, label %2466, label %2473

2466:                                             ; preds = %2463
  %2467 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %2468 = trunc i8 %2467 to i1
  br i1 %2468, label %2469, label %2470

2469:                                             ; preds = %2466
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.1284)
  br label %2470

2470:                                             ; preds = %2469, %2466
  %2471 = load ptr, ptr %6, align 8, !tbaa !5
  %2472 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2471, i32 0, i32 71
  store i64 8, ptr %2472, align 8, !tbaa !49
  br label %3255

2473:                                             ; preds = %2463
  %2474 = load ptr, ptr %6, align 8, !tbaa !5
  %2475 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2474, i32 0, i32 55
  %2476 = load i64, ptr %2475, align 8, !tbaa !53
  %2477 = load ptr, ptr %6, align 8, !tbaa !5
  %2478 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2477, i32 0, i32 21
  %2479 = load i64, ptr %2478, align 8, !tbaa !78
  %2480 = icmp sge i64 %2476, %2479
  br i1 %2480, label %2481, label %2484

2481:                                             ; preds = %2473
  %2482 = load ptr, ptr %6, align 8, !tbaa !5
  %2483 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2482, i32 0, i32 71
  store i64 5, ptr %2483, align 8, !tbaa !49
  br label %3255

2484:                                             ; preds = %2473
  %2485 = load double, ptr %43, align 8, !tbaa !40
  store double %2485, ptr %46, align 8, !tbaa !40
  %2486 = load double, ptr %44, align 8, !tbaa !40
  store double %2486, ptr %47, align 8, !tbaa !40
  %2487 = load double, ptr %45, align 8, !tbaa !40
  store double %2487, ptr %48, align 8, !tbaa !40
  store i64 0, ptr %25, align 8, !tbaa !37
  br label %2488

2488:                                             ; preds = %2742, %2484
  %2489 = load i64, ptr %25, align 8, !tbaa !37
  %2490 = load i64, ptr %10, align 8, !tbaa !37
  %2491 = sub nsw i64 %2490, 1
  %2492 = icmp sle i64 %2489, %2491
  br i1 %2492, label %2493, label %2745

2493:                                             ; preds = %2488
  %2494 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %2495 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2494, double noundef 1.000000e+00)
  %2496 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2495, ptr noundef @.str.1285, ptr noundef %2496)
  %2497 = load ptr, ptr %6, align 8, !tbaa !5
  %2498 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2497, i32 0, i32 4
  %2499 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2498, i32 0, i32 4
  %2500 = load ptr, ptr %2499, align 8, !tbaa !36
  %2501 = load i64, ptr %25, align 8, !tbaa !37
  %2502 = getelementptr inbounds i8, ptr %2500, i64 %2501
  %2503 = load i8, ptr %2502, align 1, !tbaa !9, !range !38, !noundef !39
  %2504 = trunc i8 %2503 to i1
  br i1 %2504, label %2515, label %2505

2505:                                             ; preds = %2493
  %2506 = load ptr, ptr %6, align 8, !tbaa !5
  %2507 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2506, i32 0, i32 5
  %2508 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2507, i32 0, i32 4
  %2509 = load ptr, ptr %2508, align 8, !tbaa !36
  %2510 = load i64, ptr %25, align 8, !tbaa !37
  %2511 = getelementptr inbounds i8, ptr %2509, i64 %2510
  %2512 = load i8, ptr %2511, align 1, !tbaa !9, !range !38, !noundef !39
  %2513 = trunc i8 %2512 to i1
  br i1 %2513, label %2515, label %2514

2514:                                             ; preds = %2505
  br label %2742

2515:                                             ; preds = %2505, %2493
  %2516 = load ptr, ptr %6, align 8, !tbaa !5
  %2517 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2516, i32 0, i32 4
  %2518 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2517, i32 0, i32 4
  %2519 = load ptr, ptr %2518, align 8, !tbaa !36
  %2520 = load i64, ptr %25, align 8, !tbaa !37
  %2521 = getelementptr inbounds i8, ptr %2519, i64 %2520
  %2522 = load i8, ptr %2521, align 1, !tbaa !9, !range !38, !noundef !39
  %2523 = trunc i8 %2522 to i1
  br i1 %2523, label %2524, label %2609

2524:                                             ; preds = %2515
  %2525 = load ptr, ptr %6, align 8, !tbaa !5
  %2526 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2525, i32 0, i32 5
  %2527 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2526, i32 0, i32 4
  %2528 = load ptr, ptr %2527, align 8, !tbaa !36
  %2529 = load i64, ptr %25, align 8, !tbaa !37
  %2530 = getelementptr inbounds i8, ptr %2528, i64 %2529
  %2531 = load i8, ptr %2530, align 1, !tbaa !9, !range !38, !noundef !39
  %2532 = trunc i8 %2531 to i1
  br i1 %2532, label %2533, label %2609

2533:                                             ; preds = %2524
  %2534 = load ptr, ptr %6, align 8, !tbaa !5
  %2535 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2534, i32 0, i32 6
  %2536 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2535, i32 0, i32 4
  %2537 = load ptr, ptr %2536, align 8, !tbaa !36
  %2538 = load i64, ptr %25, align 8, !tbaa !37
  %2539 = getelementptr inbounds double, ptr %2537, i64 %2538
  %2540 = load double, ptr %2539, align 8, !tbaa !40
  %2541 = load ptr, ptr %6, align 8, !tbaa !5
  %2542 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2541, i32 0, i32 7
  %2543 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2542, i32 0, i32 4
  %2544 = load ptr, ptr %2543, align 8, !tbaa !36
  %2545 = load i64, ptr %25, align 8, !tbaa !37
  %2546 = getelementptr inbounds double, ptr %2544, i64 %2545
  %2547 = load double, ptr %2546, align 8, !tbaa !40
  %2548 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %2540, double noundef %2547)
  br i1 %2548, label %2549, label %2609

2549:                                             ; preds = %2533
  %2550 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !40
  %2551 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %2552 = load ptr, ptr %6, align 8, !tbaa !5
  %2553 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2552, i32 0, i32 40
  %2554 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2553, i32 0, i32 4
  %2555 = load ptr, ptr %2554, align 8, !tbaa !36
  %2556 = load i64, ptr %25, align 8, !tbaa !37
  %2557 = mul nsw i64 2, %2556
  %2558 = add nsw i64 %2557, 0
  %2559 = getelementptr inbounds double, ptr %2555, i64 %2558
  %2560 = load double, ptr %2559, align 8, !tbaa !40
  %2561 = load ptr, ptr %9, align 8, !tbaa !5
  %2562 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2560, ptr noundef %2561)
  %2563 = fadd double %2562, 1.000000e+00
  %2564 = fmul double %2551, %2563
  %2565 = load ptr, ptr %9, align 8, !tbaa !5
  %2566 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2550, double noundef %2564, ptr noundef %2565)
  store double %2566, ptr %40, align 8, !tbaa !40
  %2567 = load ptr, ptr %6, align 8, !tbaa !5
  %2568 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2567, i32 0, i32 40
  %2569 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2568, i32 0, i32 4
  %2570 = load ptr, ptr %2569, align 8, !tbaa !36
  %2571 = load i64, ptr %25, align 8, !tbaa !37
  %2572 = mul nsw i64 2, %2571
  %2573 = add nsw i64 %2572, 0
  %2574 = getelementptr inbounds double, ptr %2570, i64 %2573
  %2575 = load double, ptr %2574, align 8, !tbaa !40
  %2576 = load ptr, ptr %6, align 8, !tbaa !5
  %2577 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2576, i32 0, i32 30
  %2578 = load double, ptr %2577, align 8, !tbaa !60
  %2579 = load ptr, ptr %6, align 8, !tbaa !5
  %2580 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2579, i32 0, i32 31
  %2581 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2580, i32 0, i32 3
  %2582 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2581, i32 0, i32 4
  %2583 = load ptr, ptr %2582, align 8, !tbaa !36
  %2584 = load i64, ptr %25, align 8, !tbaa !37
  %2585 = getelementptr inbounds double, ptr %2583, i64 %2584
  %2586 = load double, ptr %2585, align 8, !tbaa !40
  %2587 = load ptr, ptr %6, align 8, !tbaa !5
  %2588 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2587, i32 0, i32 6
  %2589 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2588, i32 0, i32 4
  %2590 = load ptr, ptr %2589, align 8, !tbaa !36
  %2591 = load i64, ptr %25, align 8, !tbaa !37
  %2592 = getelementptr inbounds double, ptr %2590, i64 %2591
  %2593 = load double, ptr %2592, align 8, !tbaa !40
  %2594 = fsub double %2586, %2593
  %2595 = call double @llvm.fmuladd.f64(double %2578, double %2594, double %2575)
  %2596 = load double, ptr %40, align 8, !tbaa !40
  %2597 = fneg double %2596
  %2598 = load double, ptr %40, align 8, !tbaa !40
  %2599 = load ptr, ptr %9, align 8, !tbaa !5
  %2600 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %2595, double noundef %2597, double noundef %2598, ptr noundef %2599)
  %2601 = load ptr, ptr %6, align 8, !tbaa !5
  %2602 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2601, i32 0, i32 40
  %2603 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2602, i32 0, i32 4
  %2604 = load ptr, ptr %2603, align 8, !tbaa !36
  %2605 = load i64, ptr %25, align 8, !tbaa !37
  %2606 = mul nsw i64 2, %2605
  %2607 = add nsw i64 %2606, 0
  %2608 = getelementptr inbounds double, ptr %2604, i64 %2607
  store double %2600, ptr %2608, align 8, !tbaa !40
  br label %2742

2609:                                             ; preds = %2533, %2524, %2515
  %2610 = load ptr, ptr %6, align 8, !tbaa !5
  %2611 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2610, i32 0, i32 4
  %2612 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2611, i32 0, i32 4
  %2613 = load ptr, ptr %2612, align 8, !tbaa !36
  %2614 = load i64, ptr %25, align 8, !tbaa !37
  %2615 = getelementptr inbounds i8, ptr %2613, i64 %2614
  %2616 = load i8, ptr %2615, align 1, !tbaa !9, !range !38, !noundef !39
  %2617 = trunc i8 %2616 to i1
  br i1 %2617, label %2618, label %2675

2618:                                             ; preds = %2609
  %2619 = load ptr, ptr %6, align 8, !tbaa !5
  %2620 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2619, i32 0, i32 31
  %2621 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2620, i32 0, i32 3
  %2622 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2621, i32 0, i32 4
  %2623 = load ptr, ptr %2622, align 8, !tbaa !36
  %2624 = load i64, ptr %25, align 8, !tbaa !37
  %2625 = getelementptr inbounds double, ptr %2623, i64 %2624
  %2626 = load double, ptr %2625, align 8, !tbaa !40
  %2627 = load ptr, ptr %6, align 8, !tbaa !5
  %2628 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2627, i32 0, i32 6
  %2629 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2628, i32 0, i32 4
  %2630 = load ptr, ptr %2629, align 8, !tbaa !36
  %2631 = load i64, ptr %25, align 8, !tbaa !37
  %2632 = getelementptr inbounds double, ptr %2630, i64 %2631
  %2633 = load double, ptr %2632, align 8, !tbaa !40
  %2634 = fsub double %2626, %2633
  %2635 = load ptr, ptr %6, align 8, !tbaa !5
  %2636 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2635, i32 0, i32 30
  %2637 = load double, ptr %2636, align 8, !tbaa !60
  %2638 = call double @llvm.fmuladd.f64(double %2634, double %2637, double 1.000000e+00)
  %2639 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef %2638, ptr noundef %36, ptr noundef %37, ptr noundef %38, ptr noundef %2639)
  %2640 = load double, ptr %37, align 8, !tbaa !40
  %2641 = load ptr, ptr %9, align 8, !tbaa !5
  %2642 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2640, ptr noundef %2641)
  store double %2642, ptr %37, align 8, !tbaa !40
  %2643 = load double, ptr %37, align 8, !tbaa !40
  %2644 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %2645 = load ptr, ptr %9, align 8, !tbaa !5
  %2646 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2643, double noundef %2644, ptr noundef %2645)
  store double %2646, ptr %37, align 8, !tbaa !40
  %2647 = load double, ptr %37, align 8, !tbaa !40
  %2648 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %2649 = fdiv double 1.000000e+00, %2648
  %2650 = load ptr, ptr %9, align 8, !tbaa !5
  %2651 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2647, double noundef %2649, ptr noundef %2650)
  store double %2651, ptr %37, align 8, !tbaa !40
  %2652 = load ptr, ptr %6, align 8, !tbaa !5
  %2653 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2652, i32 0, i32 40
  %2654 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2653, i32 0, i32 4
  %2655 = load ptr, ptr %2654, align 8, !tbaa !36
  %2656 = load i64, ptr %25, align 8, !tbaa !37
  %2657 = mul nsw i64 2, %2656
  %2658 = add nsw i64 %2657, 0
  %2659 = getelementptr inbounds double, ptr %2655, i64 %2658
  %2660 = load double, ptr %2659, align 8, !tbaa !40
  %2661 = load double, ptr %37, align 8, !tbaa !40
  %2662 = fmul double %2660, %2661
  %2663 = load double, ptr @_ZN11alglib_implL17nlcaul_minlagmultE, align 8, !tbaa !40
  %2664 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !40
  %2665 = load ptr, ptr %9, align 8, !tbaa !5
  %2666 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %2662, double noundef %2663, double noundef %2664, ptr noundef %2665)
  %2667 = load ptr, ptr %6, align 8, !tbaa !5
  %2668 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2667, i32 0, i32 40
  %2669 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2668, i32 0, i32 4
  %2670 = load ptr, ptr %2669, align 8, !tbaa !36
  %2671 = load i64, ptr %25, align 8, !tbaa !37
  %2672 = mul nsw i64 2, %2671
  %2673 = add nsw i64 %2672, 0
  %2674 = getelementptr inbounds double, ptr %2670, i64 %2673
  store double %2666, ptr %2674, align 8, !tbaa !40
  br label %2675

2675:                                             ; preds = %2618, %2609
  %2676 = load ptr, ptr %6, align 8, !tbaa !5
  %2677 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2676, i32 0, i32 5
  %2678 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2677, i32 0, i32 4
  %2679 = load ptr, ptr %2678, align 8, !tbaa !36
  %2680 = load i64, ptr %25, align 8, !tbaa !37
  %2681 = getelementptr inbounds i8, ptr %2679, i64 %2680
  %2682 = load i8, ptr %2681, align 1, !tbaa !9, !range !38, !noundef !39
  %2683 = trunc i8 %2682 to i1
  br i1 %2683, label %2684, label %2741

2684:                                             ; preds = %2675
  %2685 = load ptr, ptr %6, align 8, !tbaa !5
  %2686 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2685, i32 0, i32 7
  %2687 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2686, i32 0, i32 4
  %2688 = load ptr, ptr %2687, align 8, !tbaa !36
  %2689 = load i64, ptr %25, align 8, !tbaa !37
  %2690 = getelementptr inbounds double, ptr %2688, i64 %2689
  %2691 = load double, ptr %2690, align 8, !tbaa !40
  %2692 = load ptr, ptr %6, align 8, !tbaa !5
  %2693 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2692, i32 0, i32 31
  %2694 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2693, i32 0, i32 3
  %2695 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2694, i32 0, i32 4
  %2696 = load ptr, ptr %2695, align 8, !tbaa !36
  %2697 = load i64, ptr %25, align 8, !tbaa !37
  %2698 = getelementptr inbounds double, ptr %2696, i64 %2697
  %2699 = load double, ptr %2698, align 8, !tbaa !40
  %2700 = fsub double %2691, %2699
  %2701 = load ptr, ptr %6, align 8, !tbaa !5
  %2702 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2701, i32 0, i32 30
  %2703 = load double, ptr %2702, align 8, !tbaa !60
  %2704 = call double @llvm.fmuladd.f64(double %2700, double %2703, double 1.000000e+00)
  %2705 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef %2704, ptr noundef %36, ptr noundef %37, ptr noundef %38, ptr noundef %2705)
  %2706 = load double, ptr %37, align 8, !tbaa !40
  %2707 = load ptr, ptr %9, align 8, !tbaa !5
  %2708 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2706, ptr noundef %2707)
  store double %2708, ptr %37, align 8, !tbaa !40
  %2709 = load double, ptr %37, align 8, !tbaa !40
  %2710 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %2711 = load ptr, ptr %9, align 8, !tbaa !5
  %2712 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2709, double noundef %2710, ptr noundef %2711)
  store double %2712, ptr %37, align 8, !tbaa !40
  %2713 = load double, ptr %37, align 8, !tbaa !40
  %2714 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %2715 = fdiv double 1.000000e+00, %2714
  %2716 = load ptr, ptr %9, align 8, !tbaa !5
  %2717 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2713, double noundef %2715, ptr noundef %2716)
  store double %2717, ptr %37, align 8, !tbaa !40
  %2718 = load ptr, ptr %6, align 8, !tbaa !5
  %2719 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2718, i32 0, i32 40
  %2720 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2719, i32 0, i32 4
  %2721 = load ptr, ptr %2720, align 8, !tbaa !36
  %2722 = load i64, ptr %25, align 8, !tbaa !37
  %2723 = mul nsw i64 2, %2722
  %2724 = add nsw i64 %2723, 1
  %2725 = getelementptr inbounds double, ptr %2721, i64 %2724
  %2726 = load double, ptr %2725, align 8, !tbaa !40
  %2727 = load double, ptr %37, align 8, !tbaa !40
  %2728 = fmul double %2726, %2727
  %2729 = load double, ptr @_ZN11alglib_implL17nlcaul_minlagmultE, align 8, !tbaa !40
  %2730 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !40
  %2731 = load ptr, ptr %9, align 8, !tbaa !5
  %2732 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %2728, double noundef %2729, double noundef %2730, ptr noundef %2731)
  %2733 = load ptr, ptr %6, align 8, !tbaa !5
  %2734 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2733, i32 0, i32 40
  %2735 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2734, i32 0, i32 4
  %2736 = load ptr, ptr %2735, align 8, !tbaa !36
  %2737 = load i64, ptr %25, align 8, !tbaa !37
  %2738 = mul nsw i64 2, %2737
  %2739 = add nsw i64 %2738, 1
  %2740 = getelementptr inbounds double, ptr %2736, i64 %2739
  store double %2732, ptr %2740, align 8, !tbaa !40
  br label %2741

2741:                                             ; preds = %2684, %2675
  br label %2742

2742:                                             ; preds = %2741, %2549, %2514
  %2743 = load i64, ptr %25, align 8, !tbaa !37
  %2744 = add nsw i64 %2743, 1
  store i64 %2744, ptr %25, align 8, !tbaa !37
  br label %2488, !llvm.loop !79

2745:                                             ; preds = %2488
  store i64 0, ptr %25, align 8, !tbaa !37
  br label %2746

2746:                                             ; preds = %2989, %2745
  %2747 = load i64, ptr %25, align 8, !tbaa !37
  %2748 = load i64, ptr %11, align 8, !tbaa !37
  %2749 = sub nsw i64 %2748, 1
  %2750 = icmp sle i64 %2747, %2749
  br i1 %2750, label %2751, label %2992

2751:                                             ; preds = %2746
  %2752 = load ptr, ptr %6, align 8, !tbaa !5
  %2753 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2752, i32 0, i32 10
  %2754 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2753, i32 0, i32 2
  %2755 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2754, i32 0, i32 4
  %2756 = load ptr, ptr %2755, align 8, !tbaa !36
  %2757 = load i64, ptr %25, align 8, !tbaa !37
  %2758 = getelementptr inbounds i64, ptr %2756, i64 %2757
  %2759 = load i64, ptr %2758, align 8, !tbaa !37
  store i64 %2759, ptr %27, align 8, !tbaa !37
  %2760 = load ptr, ptr %6, align 8, !tbaa !5
  %2761 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2760, i32 0, i32 10
  %2762 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2761, i32 0, i32 2
  %2763 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2762, i32 0, i32 4
  %2764 = load ptr, ptr %2763, align 8, !tbaa !36
  %2765 = load i64, ptr %25, align 8, !tbaa !37
  %2766 = add nsw i64 %2765, 1
  %2767 = getelementptr inbounds i64, ptr %2764, i64 %2766
  %2768 = load i64, ptr %2767, align 8, !tbaa !37
  %2769 = sub nsw i64 %2768, 1
  store i64 %2769, ptr %28, align 8, !tbaa !37
  store double 0.000000e+00, ptr %22, align 8, !tbaa !40
  %2770 = load i64, ptr %27, align 8, !tbaa !37
  store i64 %2770, ptr %29, align 8, !tbaa !37
  br label %2771

2771:                                             ; preds = %2801, %2751
  %2772 = load i64, ptr %29, align 8, !tbaa !37
  %2773 = load i64, ptr %28, align 8, !tbaa !37
  %2774 = icmp sle i64 %2772, %2773
  br i1 %2774, label %2775, label %2804

2775:                                             ; preds = %2771
  %2776 = load double, ptr %22, align 8, !tbaa !40
  %2777 = load ptr, ptr %6, align 8, !tbaa !5
  %2778 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2777, i32 0, i32 31
  %2779 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %2778, i32 0, i32 3
  %2780 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2779, i32 0, i32 4
  %2781 = load ptr, ptr %2780, align 8, !tbaa !36
  %2782 = load ptr, ptr %6, align 8, !tbaa !5
  %2783 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2782, i32 0, i32 10
  %2784 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2783, i32 0, i32 1
  %2785 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2784, i32 0, i32 4
  %2786 = load ptr, ptr %2785, align 8, !tbaa !36
  %2787 = load i64, ptr %29, align 8, !tbaa !37
  %2788 = getelementptr inbounds i64, ptr %2786, i64 %2787
  %2789 = load i64, ptr %2788, align 8, !tbaa !37
  %2790 = getelementptr inbounds double, ptr %2781, i64 %2789
  %2791 = load double, ptr %2790, align 8, !tbaa !40
  %2792 = load ptr, ptr %6, align 8, !tbaa !5
  %2793 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2792, i32 0, i32 10
  %2794 = getelementptr inbounds %"struct.alglib_impl::sparsematrix", ptr %2793, i32 0, i32 0
  %2795 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2794, i32 0, i32 4
  %2796 = load ptr, ptr %2795, align 8, !tbaa !36
  %2797 = load i64, ptr %29, align 8, !tbaa !37
  %2798 = getelementptr inbounds double, ptr %2796, i64 %2797
  %2799 = load double, ptr %2798, align 8, !tbaa !40
  %2800 = call double @llvm.fmuladd.f64(double %2791, double %2799, double %2776)
  store double %2800, ptr %22, align 8, !tbaa !40
  br label %2801

2801:                                             ; preds = %2775
  %2802 = load i64, ptr %29, align 8, !tbaa !37
  %2803 = add nsw i64 %2802, 1
  store i64 %2803, ptr %29, align 8, !tbaa !37
  br label %2771, !llvm.loop !80

2804:                                             ; preds = %2771
  %2805 = load ptr, ptr %6, align 8, !tbaa !5
  %2806 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2805, i32 0, i32 13
  %2807 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2806, i32 0, i32 4
  %2808 = load ptr, ptr %2807, align 8, !tbaa !36
  %2809 = load i64, ptr %25, align 8, !tbaa !37
  %2810 = getelementptr inbounds i8, ptr %2808, i64 %2809
  %2811 = load i8, ptr %2810, align 1, !tbaa !9, !range !38, !noundef !39
  %2812 = trunc i8 %2811 to i1
  br i1 %2812, label %2813, label %2869

2813:                                             ; preds = %2804
  %2814 = load ptr, ptr %6, align 8, !tbaa !5
  %2815 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2814, i32 0, i32 14
  %2816 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2815, i32 0, i32 4
  %2817 = load ptr, ptr %2816, align 8, !tbaa !36
  %2818 = load i64, ptr %25, align 8, !tbaa !37
  %2819 = getelementptr inbounds i8, ptr %2817, i64 %2818
  %2820 = load i8, ptr %2819, align 1, !tbaa !9, !range !38, !noundef !39
  %2821 = trunc i8 %2820 to i1
  br i1 %2821, label %2822, label %2869

2822:                                             ; preds = %2813
  %2823 = load ptr, ptr %6, align 8, !tbaa !5
  %2824 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2823, i32 0, i32 11
  %2825 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2824, i32 0, i32 4
  %2826 = load ptr, ptr %2825, align 8, !tbaa !36
  %2827 = load i64, ptr %25, align 8, !tbaa !37
  %2828 = getelementptr inbounds double, ptr %2826, i64 %2827
  %2829 = load double, ptr %2828, align 8, !tbaa !40
  %2830 = load ptr, ptr %6, align 8, !tbaa !5
  %2831 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2830, i32 0, i32 12
  %2832 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2831, i32 0, i32 4
  %2833 = load ptr, ptr %2832, align 8, !tbaa !36
  %2834 = load i64, ptr %25, align 8, !tbaa !37
  %2835 = getelementptr inbounds double, ptr %2833, i64 %2834
  %2836 = load double, ptr %2835, align 8, !tbaa !40
  %2837 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %2829, double noundef %2836)
  br i1 %2837, label %2838, label %2869

2838:                                             ; preds = %2822
  %2839 = load ptr, ptr %6, align 8, !tbaa !5
  %2840 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2839, i32 0, i32 41
  %2841 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2840, i32 0, i32 4
  %2842 = load ptr, ptr %2841, align 8, !tbaa !36
  %2843 = load i64, ptr %25, align 8, !tbaa !37
  %2844 = mul nsw i64 2, %2843
  %2845 = add nsw i64 %2844, 0
  %2846 = getelementptr inbounds double, ptr %2842, i64 %2845
  %2847 = load double, ptr %2846, align 8, !tbaa !40
  %2848 = load ptr, ptr %6, align 8, !tbaa !5
  %2849 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2848, i32 0, i32 30
  %2850 = load double, ptr %2849, align 8, !tbaa !60
  %2851 = load double, ptr %22, align 8, !tbaa !40
  %2852 = load ptr, ptr %6, align 8, !tbaa !5
  %2853 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2852, i32 0, i32 11
  %2854 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2853, i32 0, i32 4
  %2855 = load ptr, ptr %2854, align 8, !tbaa !36
  %2856 = load i64, ptr %25, align 8, !tbaa !37
  %2857 = getelementptr inbounds double, ptr %2855, i64 %2856
  %2858 = load double, ptr %2857, align 8, !tbaa !40
  %2859 = fsub double %2851, %2858
  %2860 = call double @llvm.fmuladd.f64(double %2850, double %2859, double %2847)
  %2861 = load ptr, ptr %6, align 8, !tbaa !5
  %2862 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2861, i32 0, i32 41
  %2863 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2862, i32 0, i32 4
  %2864 = load ptr, ptr %2863, align 8, !tbaa !36
  %2865 = load i64, ptr %25, align 8, !tbaa !37
  %2866 = mul nsw i64 2, %2865
  %2867 = add nsw i64 %2866, 0
  %2868 = getelementptr inbounds double, ptr %2864, i64 %2867
  store double %2860, ptr %2868, align 8, !tbaa !40
  br label %2988

2869:                                             ; preds = %2822, %2813, %2804
  %2870 = load ptr, ptr %6, align 8, !tbaa !5
  %2871 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2870, i32 0, i32 13
  %2872 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2871, i32 0, i32 4
  %2873 = load ptr, ptr %2872, align 8, !tbaa !36
  %2874 = load i64, ptr %25, align 8, !tbaa !37
  %2875 = getelementptr inbounds i8, ptr %2873, i64 %2874
  %2876 = load i8, ptr %2875, align 1, !tbaa !9, !range !38, !noundef !39
  %2877 = trunc i8 %2876 to i1
  br i1 %2877, label %2878, label %2928

2878:                                             ; preds = %2869
  %2879 = load double, ptr %22, align 8, !tbaa !40
  %2880 = load ptr, ptr %6, align 8, !tbaa !5
  %2881 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2880, i32 0, i32 11
  %2882 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2881, i32 0, i32 4
  %2883 = load ptr, ptr %2882, align 8, !tbaa !36
  %2884 = load i64, ptr %25, align 8, !tbaa !37
  %2885 = getelementptr inbounds double, ptr %2883, i64 %2884
  %2886 = load double, ptr %2885, align 8, !tbaa !40
  %2887 = fsub double %2879, %2886
  %2888 = load ptr, ptr %6, align 8, !tbaa !5
  %2889 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2888, i32 0, i32 30
  %2890 = load double, ptr %2889, align 8, !tbaa !60
  %2891 = call double @llvm.fmuladd.f64(double %2887, double %2890, double 1.000000e+00)
  %2892 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef %2891, ptr noundef %36, ptr noundef %37, ptr noundef %38, ptr noundef %2892)
  %2893 = load double, ptr %37, align 8, !tbaa !40
  %2894 = load ptr, ptr %9, align 8, !tbaa !5
  %2895 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2893, ptr noundef %2894)
  store double %2895, ptr %37, align 8, !tbaa !40
  %2896 = load double, ptr %37, align 8, !tbaa !40
  %2897 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %2898 = load ptr, ptr %9, align 8, !tbaa !5
  %2899 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2896, double noundef %2897, ptr noundef %2898)
  store double %2899, ptr %37, align 8, !tbaa !40
  %2900 = load double, ptr %37, align 8, !tbaa !40
  %2901 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %2902 = fdiv double 1.000000e+00, %2901
  %2903 = load ptr, ptr %9, align 8, !tbaa !5
  %2904 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2900, double noundef %2902, ptr noundef %2903)
  store double %2904, ptr %37, align 8, !tbaa !40
  %2905 = load ptr, ptr %6, align 8, !tbaa !5
  %2906 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2905, i32 0, i32 41
  %2907 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2906, i32 0, i32 4
  %2908 = load ptr, ptr %2907, align 8, !tbaa !36
  %2909 = load i64, ptr %25, align 8, !tbaa !37
  %2910 = mul nsw i64 2, %2909
  %2911 = add nsw i64 %2910, 0
  %2912 = getelementptr inbounds double, ptr %2908, i64 %2911
  %2913 = load double, ptr %2912, align 8, !tbaa !40
  %2914 = load double, ptr %37, align 8, !tbaa !40
  %2915 = fmul double %2913, %2914
  %2916 = load double, ptr @_ZN11alglib_implL17nlcaul_minlagmultE, align 8, !tbaa !40
  %2917 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !40
  %2918 = load ptr, ptr %9, align 8, !tbaa !5
  %2919 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %2915, double noundef %2916, double noundef %2917, ptr noundef %2918)
  %2920 = load ptr, ptr %6, align 8, !tbaa !5
  %2921 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2920, i32 0, i32 41
  %2922 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2921, i32 0, i32 4
  %2923 = load ptr, ptr %2922, align 8, !tbaa !36
  %2924 = load i64, ptr %25, align 8, !tbaa !37
  %2925 = mul nsw i64 2, %2924
  %2926 = add nsw i64 %2925, 0
  %2927 = getelementptr inbounds double, ptr %2923, i64 %2926
  store double %2919, ptr %2927, align 8, !tbaa !40
  br label %2928

2928:                                             ; preds = %2878, %2869
  %2929 = load ptr, ptr %6, align 8, !tbaa !5
  %2930 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2929, i32 0, i32 14
  %2931 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2930, i32 0, i32 4
  %2932 = load ptr, ptr %2931, align 8, !tbaa !36
  %2933 = load i64, ptr %25, align 8, !tbaa !37
  %2934 = getelementptr inbounds i8, ptr %2932, i64 %2933
  %2935 = load i8, ptr %2934, align 1, !tbaa !9, !range !38, !noundef !39
  %2936 = trunc i8 %2935 to i1
  br i1 %2936, label %2937, label %2987

2937:                                             ; preds = %2928
  %2938 = load ptr, ptr %6, align 8, !tbaa !5
  %2939 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2938, i32 0, i32 12
  %2940 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2939, i32 0, i32 4
  %2941 = load ptr, ptr %2940, align 8, !tbaa !36
  %2942 = load i64, ptr %25, align 8, !tbaa !37
  %2943 = getelementptr inbounds double, ptr %2941, i64 %2942
  %2944 = load double, ptr %2943, align 8, !tbaa !40
  %2945 = load double, ptr %22, align 8, !tbaa !40
  %2946 = fsub double %2944, %2945
  %2947 = load ptr, ptr %6, align 8, !tbaa !5
  %2948 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2947, i32 0, i32 30
  %2949 = load double, ptr %2948, align 8, !tbaa !60
  %2950 = call double @llvm.fmuladd.f64(double %2946, double %2949, double 1.000000e+00)
  %2951 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef %2950, ptr noundef %36, ptr noundef %37, ptr noundef %38, ptr noundef %2951)
  %2952 = load double, ptr %37, align 8, !tbaa !40
  %2953 = load ptr, ptr %9, align 8, !tbaa !5
  %2954 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2952, ptr noundef %2953)
  store double %2954, ptr %37, align 8, !tbaa !40
  %2955 = load double, ptr %37, align 8, !tbaa !40
  %2956 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %2957 = load ptr, ptr %9, align 8, !tbaa !5
  %2958 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %2955, double noundef %2956, ptr noundef %2957)
  store double %2958, ptr %37, align 8, !tbaa !40
  %2959 = load double, ptr %37, align 8, !tbaa !40
  %2960 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %2961 = fdiv double 1.000000e+00, %2960
  %2962 = load ptr, ptr %9, align 8, !tbaa !5
  %2963 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %2959, double noundef %2961, ptr noundef %2962)
  store double %2963, ptr %37, align 8, !tbaa !40
  %2964 = load ptr, ptr %6, align 8, !tbaa !5
  %2965 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2964, i32 0, i32 41
  %2966 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2965, i32 0, i32 4
  %2967 = load ptr, ptr %2966, align 8, !tbaa !36
  %2968 = load i64, ptr %25, align 8, !tbaa !37
  %2969 = mul nsw i64 2, %2968
  %2970 = add nsw i64 %2969, 1
  %2971 = getelementptr inbounds double, ptr %2967, i64 %2970
  %2972 = load double, ptr %2971, align 8, !tbaa !40
  %2973 = load double, ptr %37, align 8, !tbaa !40
  %2974 = fmul double %2972, %2973
  %2975 = load double, ptr @_ZN11alglib_implL17nlcaul_minlagmultE, align 8, !tbaa !40
  %2976 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !40
  %2977 = load ptr, ptr %9, align 8, !tbaa !5
  %2978 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %2974, double noundef %2975, double noundef %2976, ptr noundef %2977)
  %2979 = load ptr, ptr %6, align 8, !tbaa !5
  %2980 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2979, i32 0, i32 41
  %2981 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2980, i32 0, i32 4
  %2982 = load ptr, ptr %2981, align 8, !tbaa !36
  %2983 = load i64, ptr %25, align 8, !tbaa !37
  %2984 = mul nsw i64 2, %2983
  %2985 = add nsw i64 %2984, 1
  %2986 = getelementptr inbounds double, ptr %2982, i64 %2985
  store double %2978, ptr %2986, align 8, !tbaa !40
  br label %2987

2987:                                             ; preds = %2937, %2928
  br label %2988

2988:                                             ; preds = %2987, %2838
  br label %2989

2989:                                             ; preds = %2988
  %2990 = load i64, ptr %25, align 8, !tbaa !37
  %2991 = add nsw i64 %2990, 1
  store i64 %2991, ptr %25, align 8, !tbaa !37
  br label %2746, !llvm.loop !81

2992:                                             ; preds = %2746
  store i64 0, ptr %25, align 8, !tbaa !37
  br label %2993

2993:                                             ; preds = %3210, %2992
  %2994 = load i64, ptr %25, align 8, !tbaa !37
  %2995 = load i64, ptr %12, align 8, !tbaa !37
  %2996 = sub nsw i64 %2995, 1
  %2997 = icmp sle i64 %2994, %2996
  br i1 %2997, label %2998, label %3213

2998:                                             ; preds = %2993
  %2999 = load ptr, ptr %6, align 8, !tbaa !5
  %3000 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %2999, i32 0, i32 31
  %3001 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %3000, i32 0, i32 4
  %3002 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3001, i32 0, i32 4
  %3003 = load ptr, ptr %3002, align 8, !tbaa !36
  %3004 = load i64, ptr %25, align 8, !tbaa !37
  %3005 = add nsw i64 1, %3004
  %3006 = getelementptr inbounds double, ptr %3003, i64 %3005
  %3007 = load double, ptr %3006, align 8, !tbaa !40
  store double %3007, ptr %22, align 8, !tbaa !40
  %3008 = load ptr, ptr %6, align 8, !tbaa !5
  %3009 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3008, i32 0, i32 17
  %3010 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3009, i32 0, i32 4
  %3011 = load ptr, ptr %3010, align 8, !tbaa !36
  %3012 = load i64, ptr %25, align 8, !tbaa !37
  %3013 = getelementptr inbounds i8, ptr %3011, i64 %3012
  %3014 = load i8, ptr %3013, align 1, !tbaa !9, !range !38, !noundef !39
  %3015 = trunc i8 %3014 to i1
  br i1 %3015, label %3016, label %3078

3016:                                             ; preds = %2998
  %3017 = load ptr, ptr %6, align 8, !tbaa !5
  %3018 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3017, i32 0, i32 18
  %3019 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3018, i32 0, i32 4
  %3020 = load ptr, ptr %3019, align 8, !tbaa !36
  %3021 = load i64, ptr %25, align 8, !tbaa !37
  %3022 = getelementptr inbounds i8, ptr %3020, i64 %3021
  %3023 = load i8, ptr %3022, align 1, !tbaa !9, !range !38, !noundef !39
  %3024 = trunc i8 %3023 to i1
  br i1 %3024, label %3025, label %3078

3025:                                             ; preds = %3016
  %3026 = load ptr, ptr %6, align 8, !tbaa !5
  %3027 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3026, i32 0, i32 15
  %3028 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3027, i32 0, i32 4
  %3029 = load ptr, ptr %3028, align 8, !tbaa !36
  %3030 = load i64, ptr %25, align 8, !tbaa !37
  %3031 = getelementptr inbounds double, ptr %3029, i64 %3030
  %3032 = load double, ptr %3031, align 8, !tbaa !40
  %3033 = load ptr, ptr %6, align 8, !tbaa !5
  %3034 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3033, i32 0, i32 16
  %3035 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3034, i32 0, i32 4
  %3036 = load ptr, ptr %3035, align 8, !tbaa !36
  %3037 = load i64, ptr %25, align 8, !tbaa !37
  %3038 = getelementptr inbounds double, ptr %3036, i64 %3037
  %3039 = load double, ptr %3038, align 8, !tbaa !40
  %3040 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %3032, double noundef %3039)
  br i1 %3040, label %3041, label %3078

3041:                                             ; preds = %3025
  %3042 = load ptr, ptr %6, align 8, !tbaa !5
  %3043 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3042, i32 0, i32 41
  %3044 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3043, i32 0, i32 4
  %3045 = load ptr, ptr %3044, align 8, !tbaa !36
  %3046 = load i64, ptr %11, align 8, !tbaa !37
  %3047 = mul nsw i64 2, %3046
  %3048 = load i64, ptr %25, align 8, !tbaa !37
  %3049 = mul nsw i64 2, %3048
  %3050 = add nsw i64 %3047, %3049
  %3051 = add nsw i64 %3050, 0
  %3052 = getelementptr inbounds double, ptr %3045, i64 %3051
  %3053 = load double, ptr %3052, align 8, !tbaa !40
  %3054 = load ptr, ptr %6, align 8, !tbaa !5
  %3055 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3054, i32 0, i32 30
  %3056 = load double, ptr %3055, align 8, !tbaa !60
  %3057 = load double, ptr %22, align 8, !tbaa !40
  %3058 = load ptr, ptr %6, align 8, !tbaa !5
  %3059 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3058, i32 0, i32 15
  %3060 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3059, i32 0, i32 4
  %3061 = load ptr, ptr %3060, align 8, !tbaa !36
  %3062 = load i64, ptr %25, align 8, !tbaa !37
  %3063 = getelementptr inbounds double, ptr %3061, i64 %3062
  %3064 = load double, ptr %3063, align 8, !tbaa !40
  %3065 = fsub double %3057, %3064
  %3066 = call double @llvm.fmuladd.f64(double %3056, double %3065, double %3053)
  %3067 = load ptr, ptr %6, align 8, !tbaa !5
  %3068 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3067, i32 0, i32 41
  %3069 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3068, i32 0, i32 4
  %3070 = load ptr, ptr %3069, align 8, !tbaa !36
  %3071 = load i64, ptr %11, align 8, !tbaa !37
  %3072 = mul nsw i64 2, %3071
  %3073 = load i64, ptr %25, align 8, !tbaa !37
  %3074 = mul nsw i64 2, %3073
  %3075 = add nsw i64 %3072, %3074
  %3076 = add nsw i64 %3075, 0
  %3077 = getelementptr inbounds double, ptr %3070, i64 %3076
  store double %3066, ptr %3077, align 8, !tbaa !40
  br label %3209

3078:                                             ; preds = %3025, %3016, %2998
  %3079 = load ptr, ptr %6, align 8, !tbaa !5
  %3080 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3079, i32 0, i32 17
  %3081 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3080, i32 0, i32 4
  %3082 = load ptr, ptr %3081, align 8, !tbaa !36
  %3083 = load i64, ptr %25, align 8, !tbaa !37
  %3084 = getelementptr inbounds i8, ptr %3082, i64 %3083
  %3085 = load i8, ptr %3084, align 1, !tbaa !9, !range !38, !noundef !39
  %3086 = trunc i8 %3085 to i1
  br i1 %3086, label %3087, label %3143

3087:                                             ; preds = %3078
  %3088 = load double, ptr %22, align 8, !tbaa !40
  %3089 = load ptr, ptr %6, align 8, !tbaa !5
  %3090 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3089, i32 0, i32 15
  %3091 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3090, i32 0, i32 4
  %3092 = load ptr, ptr %3091, align 8, !tbaa !36
  %3093 = load i64, ptr %25, align 8, !tbaa !37
  %3094 = getelementptr inbounds double, ptr %3092, i64 %3093
  %3095 = load double, ptr %3094, align 8, !tbaa !40
  %3096 = fsub double %3088, %3095
  %3097 = load ptr, ptr %6, align 8, !tbaa !5
  %3098 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3097, i32 0, i32 30
  %3099 = load double, ptr %3098, align 8, !tbaa !60
  %3100 = call double @llvm.fmuladd.f64(double %3096, double %3099, double 1.000000e+00)
  %3101 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef %3100, ptr noundef %36, ptr noundef %37, ptr noundef %38, ptr noundef %3101)
  %3102 = load double, ptr %37, align 8, !tbaa !40
  %3103 = load ptr, ptr %9, align 8, !tbaa !5
  %3104 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3102, ptr noundef %3103)
  store double %3104, ptr %37, align 8, !tbaa !40
  %3105 = load double, ptr %37, align 8, !tbaa !40
  %3106 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %3107 = load ptr, ptr %9, align 8, !tbaa !5
  %3108 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %3105, double noundef %3106, ptr noundef %3107)
  store double %3108, ptr %37, align 8, !tbaa !40
  %3109 = load double, ptr %37, align 8, !tbaa !40
  %3110 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %3111 = fdiv double 1.000000e+00, %3110
  %3112 = load ptr, ptr %9, align 8, !tbaa !5
  %3113 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %3109, double noundef %3111, ptr noundef %3112)
  store double %3113, ptr %37, align 8, !tbaa !40
  %3114 = load ptr, ptr %6, align 8, !tbaa !5
  %3115 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3114, i32 0, i32 41
  %3116 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3115, i32 0, i32 4
  %3117 = load ptr, ptr %3116, align 8, !tbaa !36
  %3118 = load i64, ptr %11, align 8, !tbaa !37
  %3119 = mul nsw i64 2, %3118
  %3120 = load i64, ptr %25, align 8, !tbaa !37
  %3121 = mul nsw i64 2, %3120
  %3122 = add nsw i64 %3119, %3121
  %3123 = add nsw i64 %3122, 0
  %3124 = getelementptr inbounds double, ptr %3117, i64 %3123
  %3125 = load double, ptr %3124, align 8, !tbaa !40
  %3126 = load double, ptr %37, align 8, !tbaa !40
  %3127 = fmul double %3125, %3126
  %3128 = load double, ptr @_ZN11alglib_implL17nlcaul_minlagmultE, align 8, !tbaa !40
  %3129 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !40
  %3130 = load ptr, ptr %9, align 8, !tbaa !5
  %3131 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %3127, double noundef %3128, double noundef %3129, ptr noundef %3130)
  %3132 = load ptr, ptr %6, align 8, !tbaa !5
  %3133 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3132, i32 0, i32 41
  %3134 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3133, i32 0, i32 4
  %3135 = load ptr, ptr %3134, align 8, !tbaa !36
  %3136 = load i64, ptr %11, align 8, !tbaa !37
  %3137 = mul nsw i64 2, %3136
  %3138 = load i64, ptr %25, align 8, !tbaa !37
  %3139 = mul nsw i64 2, %3138
  %3140 = add nsw i64 %3137, %3139
  %3141 = add nsw i64 %3140, 0
  %3142 = getelementptr inbounds double, ptr %3135, i64 %3141
  store double %3131, ptr %3142, align 8, !tbaa !40
  br label %3143

3143:                                             ; preds = %3087, %3078
  %3144 = load ptr, ptr %6, align 8, !tbaa !5
  %3145 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3144, i32 0, i32 18
  %3146 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3145, i32 0, i32 4
  %3147 = load ptr, ptr %3146, align 8, !tbaa !36
  %3148 = load i64, ptr %25, align 8, !tbaa !37
  %3149 = getelementptr inbounds i8, ptr %3147, i64 %3148
  %3150 = load i8, ptr %3149, align 1, !tbaa !9, !range !38, !noundef !39
  %3151 = trunc i8 %3150 to i1
  br i1 %3151, label %3152, label %3208

3152:                                             ; preds = %3143
  %3153 = load ptr, ptr %6, align 8, !tbaa !5
  %3154 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3153, i32 0, i32 16
  %3155 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3154, i32 0, i32 4
  %3156 = load ptr, ptr %3155, align 8, !tbaa !36
  %3157 = load i64, ptr %25, align 8, !tbaa !37
  %3158 = getelementptr inbounds double, ptr %3156, i64 %3157
  %3159 = load double, ptr %3158, align 8, !tbaa !40
  %3160 = load double, ptr %22, align 8, !tbaa !40
  %3161 = fsub double %3159, %3160
  %3162 = load ptr, ptr %6, align 8, !tbaa !5
  %3163 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3162, i32 0, i32 30
  %3164 = load double, ptr %3163, align 8, !tbaa !60
  %3165 = call double @llvm.fmuladd.f64(double %3161, double %3164, double 1.000000e+00)
  %3166 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef %3165, ptr noundef %36, ptr noundef %37, ptr noundef %38, ptr noundef %3166)
  %3167 = load double, ptr %37, align 8, !tbaa !40
  %3168 = load ptr, ptr %9, align 8, !tbaa !5
  %3169 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3167, ptr noundef %3168)
  store double %3169, ptr %37, align 8, !tbaa !40
  %3170 = load double, ptr %37, align 8, !tbaa !40
  %3171 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %3172 = load ptr, ptr %9, align 8, !tbaa !5
  %3173 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %3170, double noundef %3171, ptr noundef %3172)
  store double %3173, ptr %37, align 8, !tbaa !40
  %3174 = load double, ptr %37, align 8, !tbaa !40
  %3175 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !40
  %3176 = fdiv double 1.000000e+00, %3175
  %3177 = load ptr, ptr %9, align 8, !tbaa !5
  %3178 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %3174, double noundef %3176, ptr noundef %3177)
  store double %3178, ptr %37, align 8, !tbaa !40
  %3179 = load ptr, ptr %6, align 8, !tbaa !5
  %3180 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3179, i32 0, i32 41
  %3181 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3180, i32 0, i32 4
  %3182 = load ptr, ptr %3181, align 8, !tbaa !36
  %3183 = load i64, ptr %11, align 8, !tbaa !37
  %3184 = mul nsw i64 2, %3183
  %3185 = load i64, ptr %25, align 8, !tbaa !37
  %3186 = mul nsw i64 2, %3185
  %3187 = add nsw i64 %3184, %3186
  %3188 = add nsw i64 %3187, 1
  %3189 = getelementptr inbounds double, ptr %3182, i64 %3188
  %3190 = load double, ptr %3189, align 8, !tbaa !40
  %3191 = load double, ptr %37, align 8, !tbaa !40
  %3192 = fmul double %3190, %3191
  %3193 = load double, ptr @_ZN11alglib_implL17nlcaul_minlagmultE, align 8, !tbaa !40
  %3194 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !40
  %3195 = load ptr, ptr %9, align 8, !tbaa !5
  %3196 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %3192, double noundef %3193, double noundef %3194, ptr noundef %3195)
  %3197 = load ptr, ptr %6, align 8, !tbaa !5
  %3198 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3197, i32 0, i32 41
  %3199 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3198, i32 0, i32 4
  %3200 = load ptr, ptr %3199, align 8, !tbaa !36
  %3201 = load i64, ptr %11, align 8, !tbaa !37
  %3202 = mul nsw i64 2, %3201
  %3203 = load i64, ptr %25, align 8, !tbaa !37
  %3204 = mul nsw i64 2, %3203
  %3205 = add nsw i64 %3202, %3204
  %3206 = add nsw i64 %3205, 1
  %3207 = getelementptr inbounds double, ptr %3200, i64 %3206
  store double %3196, ptr %3207, align 8, !tbaa !40
  br label %3208

3208:                                             ; preds = %3152, %3143
  br label %3209

3209:                                             ; preds = %3208, %3041
  br label %3210

3210:                                             ; preds = %3209
  %3211 = load i64, ptr %25, align 8, !tbaa !37
  %3212 = add nsw i64 %3211, 1
  store i64 %3212, ptr %25, align 8, !tbaa !37
  br label %2993, !llvm.loop !82

3213:                                             ; preds = %2993
  %3214 = load ptr, ptr %6, align 8, !tbaa !5
  %3215 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3214, i32 0, i32 48
  %3216 = load double, ptr @_ZN11alglib_implL19nlcaul_xbfgsmaxhessE, align 8, !tbaa !40
  %3217 = load ptr, ptr %6, align 8, !tbaa !5
  %3218 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3217, i32 0, i32 30
  %3219 = load double, ptr %3218, align 8, !tbaa !60
  %3220 = fadd double 1.000000e+00, %3219
  %3221 = fmul double %3216, %3220
  %3222 = load i64, ptr %10, align 8, !tbaa !37
  %3223 = mul nsw i64 2, %3222
  %3224 = load ptr, ptr %6, align 8, !tbaa !5
  %3225 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3224, i32 0, i32 40
  %3226 = load ptr, ptr %9, align 8, !tbaa !5
  %3227 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %3223, ptr noundef %3225, ptr noundef %3226)
  %3228 = fadd double 1.000000e+00, %3227
  %3229 = load i64, ptr %11, align 8, !tbaa !37
  %3230 = mul nsw i64 2, %3229
  %3231 = load i64, ptr %12, align 8, !tbaa !37
  %3232 = mul nsw i64 2, %3231
  %3233 = add nsw i64 %3230, %3232
  %3234 = load ptr, ptr %6, align 8, !tbaa !5
  %3235 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3234, i32 0, i32 41
  %3236 = load ptr, ptr %9, align 8, !tbaa !5
  %3237 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %3233, ptr noundef %3235, ptr noundef %3236)
  %3238 = fadd double 1.000000e+00, %3237
  %3239 = load ptr, ptr %9, align 8, !tbaa !5
  %3240 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %3228, double noundef %3238, ptr noundef %3239)
  %3241 = fmul double %3221, %3240
  %3242 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl17hessiansetmaxhessEPNS_12xbfgshessianEdPNS_8ae_stateE(ptr noundef %3215, double noundef %3241, ptr noundef %3242)
  %3243 = load ptr, ptr %9, align 8, !tbaa !5
  %3244 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %3243)
  %3245 = load ptr, ptr %6, align 8, !tbaa !5
  %3246 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3245, i32 0, i32 30
  %3247 = load double, ptr %3246, align 8, !tbaa !60
  %3248 = fmul double %3244, %3247
  %3249 = load double, ptr @_ZN11alglib_implL13nlcaul_rhomaxE, align 8, !tbaa !40
  %3250 = load ptr, ptr %9, align 8, !tbaa !5
  %3251 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %3248, double noundef %3249, ptr noundef %3250)
  %3252 = load ptr, ptr %6, align 8, !tbaa !5
  %3253 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3252, i32 0, i32 30
  store double %3251, ptr %3253, align 8, !tbaa !60
  br label %3254

3254:                                             ; preds = %3213, %2343
  br label %962

3255:                                             ; preds = %2481, %2470, %2460, %2443, %2430
  %3256 = load ptr, ptr %6, align 8, !tbaa !5
  %3257 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL25nlcaul_clearrequestfieldsEPNS_11minaulstateEPNS_8ae_stateE(ptr noundef %3256, ptr noundef %3257)
  %3258 = load ptr, ptr %6, align 8, !tbaa !5
  %3259 = load ptr, ptr %6, align 8, !tbaa !5
  %3260 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3259, i32 0, i32 36
  %3261 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %3260, i32 0, i32 3
  %3262 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_implL23nlcaul_aulsendtruepointEPNS_11minaulstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef %3258, ptr noundef %3261, ptr noundef %3262)
  %3263 = load ptr, ptr %6, align 8, !tbaa !5
  %3264 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3263, i32 0, i32 36
  %3265 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %3264, i32 0, i32 4
  %3266 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3265, i32 0, i32 4
  %3267 = load ptr, ptr %3266, align 8, !tbaa !36
  %3268 = getelementptr inbounds double, ptr %3267, i64 0
  %3269 = load double, ptr %3268, align 8, !tbaa !40
  %3270 = load ptr, ptr %6, align 8, !tbaa !5
  %3271 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3270, i32 0, i32 45
  %3272 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3271, i32 0, i32 4
  %3273 = load ptr, ptr %3272, align 8, !tbaa !36
  %3274 = getelementptr inbounds double, ptr %3273, i64 0
  %3275 = load double, ptr %3274, align 8, !tbaa !40
  %3276 = fmul double %3269, %3275
  %3277 = load ptr, ptr %6, align 8, !tbaa !5
  %3278 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3277, i32 0, i32 26
  store double %3276, ptr %3278, align 8, !tbaa !57
  %3279 = load ptr, ptr %6, align 8, !tbaa !5
  %3280 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3279, i32 0, i32 29
  store i8 1, ptr %3280, align 2, !tbaa !46
  %3281 = load ptr, ptr %6, align 8, !tbaa !5
  %3282 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3281, i32 0, i32 81
  %3283 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3282, i32 0, i32 0
  store i32 5, ptr %3283, align 8, !tbaa !11
  br label %3311

3284:                                             ; preds = %383
  %3285 = load ptr, ptr %6, align 8, !tbaa !5
  %3286 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3285, i32 0, i32 29
  store i8 0, ptr %3286, align 2, !tbaa !46
  %3287 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %3288 = trunc i8 %3287 to i1
  br i1 %3288, label %3289, label %3304

3289:                                             ; preds = %3284
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.774)
  %3290 = load ptr, ptr %6, align 8, !tbaa !5
  %3291 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3290, i32 0, i32 36
  %3292 = getelementptr inbounds %"struct.alglib_impl::varsfuncjac", ptr %3291, i32 0, i32 4
  %3293 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3292, i32 0, i32 4
  %3294 = load ptr, ptr %3293, align 8, !tbaa !36
  %3295 = getelementptr inbounds double, ptr %3294, i64 0
  %3296 = load double, ptr %3295, align 8, !tbaa !40
  %3297 = load ptr, ptr %6, align 8, !tbaa !5
  %3298 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3297, i32 0, i32 45
  %3299 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3298, i32 0, i32 4
  %3300 = load ptr, ptr %3299, align 8, !tbaa !36
  %3301 = getelementptr inbounds double, ptr %3300, i64 0
  %3302 = load double, ptr %3301, align 8, !tbaa !40
  %3303 = fmul double %3296, %3302
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef @.str.777, double noundef %3303)
  br label %3304

3304:                                             ; preds = %3289, %3284
  %3305 = load ptr, ptr %7, align 8, !tbaa !5
  %3306 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %3307 = trunc i8 %3306 to i1
  %3308 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN11alglib_impl28smoothnessmonitortracestatusEPKNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %3305, i1 noundef zeroext %3307, ptr noundef %3308)
  store i8 0, ptr %49, align 1, !tbaa !9
  %3309 = load i8, ptr %49, align 1, !tbaa !9, !range !38, !noundef !39
  %3310 = trunc i8 %3309 to i1
  store i1 %3310, ptr %5, align 1
  store i32 1, ptr %50, align 4
  br label %3597

3311:                                             ; preds = %3255, %2032, %1853, %1698, %822, %774
  store i8 1, ptr %49, align 1, !tbaa !9
  %3312 = load i64, ptr %10, align 8, !tbaa !37
  %3313 = load ptr, ptr %6, align 8, !tbaa !5
  %3314 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3313, i32 0, i32 81
  %3315 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3314, i32 0, i32 1
  %3316 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3315, i32 0, i32 4
  %3317 = load ptr, ptr %3316, align 8, !tbaa !36
  %3318 = getelementptr inbounds i64, ptr %3317, i64 0
  store i64 %3312, ptr %3318, align 8, !tbaa !37
  %3319 = load i64, ptr %11, align 8, !tbaa !37
  %3320 = load ptr, ptr %6, align 8, !tbaa !5
  %3321 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3320, i32 0, i32 81
  %3322 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3321, i32 0, i32 1
  %3323 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3322, i32 0, i32 4
  %3324 = load ptr, ptr %3323, align 8, !tbaa !36
  %3325 = getelementptr inbounds i64, ptr %3324, i64 1
  store i64 %3319, ptr %3325, align 8, !tbaa !37
  %3326 = load i64, ptr %12, align 8, !tbaa !37
  %3327 = load ptr, ptr %6, align 8, !tbaa !5
  %3328 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3327, i32 0, i32 81
  %3329 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3328, i32 0, i32 1
  %3330 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3329, i32 0, i32 4
  %3331 = load ptr, ptr %3330, align 8, !tbaa !36
  %3332 = getelementptr inbounds i64, ptr %3331, i64 2
  store i64 %3326, ptr %3332, align 8, !tbaa !37
  %3333 = load i64, ptr %13, align 8, !tbaa !37
  %3334 = load ptr, ptr %6, align 8, !tbaa !5
  %3335 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3334, i32 0, i32 81
  %3336 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3335, i32 0, i32 1
  %3337 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3336, i32 0, i32 4
  %3338 = load ptr, ptr %3337, align 8, !tbaa !36
  %3339 = getelementptr inbounds i64, ptr %3338, i64 3
  store i64 %3333, ptr %3339, align 8, !tbaa !37
  %3340 = load i64, ptr %25, align 8, !tbaa !37
  %3341 = load ptr, ptr %6, align 8, !tbaa !5
  %3342 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3341, i32 0, i32 81
  %3343 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3342, i32 0, i32 1
  %3344 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3343, i32 0, i32 4
  %3345 = load ptr, ptr %3344, align 8, !tbaa !36
  %3346 = getelementptr inbounds i64, ptr %3345, i64 4
  store i64 %3340, ptr %3346, align 8, !tbaa !37
  %3347 = load i64, ptr %26, align 8, !tbaa !37
  %3348 = load ptr, ptr %6, align 8, !tbaa !5
  %3349 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3348, i32 0, i32 81
  %3350 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3349, i32 0, i32 1
  %3351 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3350, i32 0, i32 4
  %3352 = load ptr, ptr %3351, align 8, !tbaa !36
  %3353 = getelementptr inbounds i64, ptr %3352, i64 5
  store i64 %3347, ptr %3353, align 8, !tbaa !37
  %3354 = load i64, ptr %27, align 8, !tbaa !37
  %3355 = load ptr, ptr %6, align 8, !tbaa !5
  %3356 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3355, i32 0, i32 81
  %3357 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3356, i32 0, i32 1
  %3358 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3357, i32 0, i32 4
  %3359 = load ptr, ptr %3358, align 8, !tbaa !36
  %3360 = getelementptr inbounds i64, ptr %3359, i64 6
  store i64 %3354, ptr %3360, align 8, !tbaa !37
  %3361 = load i64, ptr %28, align 8, !tbaa !37
  %3362 = load ptr, ptr %6, align 8, !tbaa !5
  %3363 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3362, i32 0, i32 81
  %3364 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3363, i32 0, i32 1
  %3365 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3364, i32 0, i32 4
  %3366 = load ptr, ptr %3365, align 8, !tbaa !36
  %3367 = getelementptr inbounds i64, ptr %3366, i64 7
  store i64 %3361, ptr %3367, align 8, !tbaa !37
  %3368 = load i64, ptr %29, align 8, !tbaa !37
  %3369 = load ptr, ptr %6, align 8, !tbaa !5
  %3370 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3369, i32 0, i32 81
  %3371 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3370, i32 0, i32 1
  %3372 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3371, i32 0, i32 4
  %3373 = load ptr, ptr %3372, align 8, !tbaa !36
  %3374 = getelementptr inbounds i64, ptr %3373, i64 8
  store i64 %3368, ptr %3374, align 8, !tbaa !37
  %3375 = load i64, ptr %33, align 8, !tbaa !37
  %3376 = load ptr, ptr %6, align 8, !tbaa !5
  %3377 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3376, i32 0, i32 81
  %3378 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3377, i32 0, i32 1
  %3379 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3378, i32 0, i32 4
  %3380 = load ptr, ptr %3379, align 8, !tbaa !36
  %3381 = getelementptr inbounds i64, ptr %3380, i64 9
  store i64 %3375, ptr %3381, align 8, !tbaa !37
  %3382 = load i8, ptr %14, align 1, !tbaa !9, !range !38, !noundef !39
  %3383 = trunc i8 %3382 to i1
  %3384 = load ptr, ptr %6, align 8, !tbaa !5
  %3385 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3384, i32 0, i32 81
  %3386 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3385, i32 0, i32 2
  %3387 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3386, i32 0, i32 4
  %3388 = load ptr, ptr %3387, align 8, !tbaa !36
  %3389 = getelementptr inbounds i8, ptr %3388, i64 0
  %3390 = zext i1 %3383 to i8
  store i8 %3390, ptr %3389, align 1, !tbaa !9
  %3391 = load i8, ptr %15, align 1, !tbaa !9, !range !38, !noundef !39
  %3392 = trunc i8 %3391 to i1
  %3393 = load ptr, ptr %6, align 8, !tbaa !5
  %3394 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3393, i32 0, i32 81
  %3395 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3394, i32 0, i32 2
  %3396 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3395, i32 0, i32 4
  %3397 = load ptr, ptr %3396, align 8, !tbaa !36
  %3398 = getelementptr inbounds i8, ptr %3397, i64 1
  %3399 = zext i1 %3392 to i8
  store i8 %3399, ptr %3398, align 1, !tbaa !9
  %3400 = load i8, ptr %16, align 1, !tbaa !9, !range !38, !noundef !39
  %3401 = trunc i8 %3400 to i1
  %3402 = load ptr, ptr %6, align 8, !tbaa !5
  %3403 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3402, i32 0, i32 81
  %3404 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3403, i32 0, i32 2
  %3405 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3404, i32 0, i32 4
  %3406 = load ptr, ptr %3405, align 8, !tbaa !36
  %3407 = getelementptr inbounds i8, ptr %3406, i64 2
  %3408 = zext i1 %3401 to i8
  store i8 %3408, ptr %3407, align 1, !tbaa !9
  %3409 = load i8, ptr %34, align 1, !tbaa !9, !range !38, !noundef !39
  %3410 = trunc i8 %3409 to i1
  %3411 = load ptr, ptr %6, align 8, !tbaa !5
  %3412 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3411, i32 0, i32 81
  %3413 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3412, i32 0, i32 2
  %3414 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3413, i32 0, i32 4
  %3415 = load ptr, ptr %3414, align 8, !tbaa !36
  %3416 = getelementptr inbounds i8, ptr %3415, i64 3
  %3417 = zext i1 %3410 to i8
  store i8 %3417, ptr %3416, align 1, !tbaa !9
  %3418 = load i8, ptr %42, align 1, !tbaa !9, !range !38, !noundef !39
  %3419 = trunc i8 %3418 to i1
  %3420 = load ptr, ptr %6, align 8, !tbaa !5
  %3421 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3420, i32 0, i32 81
  %3422 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3421, i32 0, i32 2
  %3423 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3422, i32 0, i32 4
  %3424 = load ptr, ptr %3423, align 8, !tbaa !36
  %3425 = getelementptr inbounds i8, ptr %3424, i64 4
  %3426 = zext i1 %3419 to i8
  store i8 %3426, ptr %3425, align 1, !tbaa !9
  %3427 = load double, ptr %17, align 8, !tbaa !40
  %3428 = load ptr, ptr %6, align 8, !tbaa !5
  %3429 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3428, i32 0, i32 81
  %3430 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3429, i32 0, i32 3
  %3431 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3430, i32 0, i32 4
  %3432 = load ptr, ptr %3431, align 8, !tbaa !36
  %3433 = getelementptr inbounds double, ptr %3432, i64 0
  store double %3427, ptr %3433, align 8, !tbaa !40
  %3434 = load double, ptr %18, align 8, !tbaa !40
  %3435 = load ptr, ptr %6, align 8, !tbaa !5
  %3436 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3435, i32 0, i32 81
  %3437 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3436, i32 0, i32 3
  %3438 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3437, i32 0, i32 4
  %3439 = load ptr, ptr %3438, align 8, !tbaa !36
  %3440 = getelementptr inbounds double, ptr %3439, i64 1
  store double %3434, ptr %3440, align 8, !tbaa !40
  %3441 = load double, ptr %19, align 8, !tbaa !40
  %3442 = load ptr, ptr %6, align 8, !tbaa !5
  %3443 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3442, i32 0, i32 81
  %3444 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3443, i32 0, i32 3
  %3445 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3444, i32 0, i32 4
  %3446 = load ptr, ptr %3445, align 8, !tbaa !36
  %3447 = getelementptr inbounds double, ptr %3446, i64 2
  store double %3441, ptr %3447, align 8, !tbaa !40
  %3448 = load double, ptr %20, align 8, !tbaa !40
  %3449 = load ptr, ptr %6, align 8, !tbaa !5
  %3450 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3449, i32 0, i32 81
  %3451 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3450, i32 0, i32 3
  %3452 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3451, i32 0, i32 4
  %3453 = load ptr, ptr %3452, align 8, !tbaa !36
  %3454 = getelementptr inbounds double, ptr %3453, i64 3
  store double %3448, ptr %3454, align 8, !tbaa !40
  %3455 = load double, ptr %21, align 8, !tbaa !40
  %3456 = load ptr, ptr %6, align 8, !tbaa !5
  %3457 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3456, i32 0, i32 81
  %3458 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3457, i32 0, i32 3
  %3459 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3458, i32 0, i32 4
  %3460 = load ptr, ptr %3459, align 8, !tbaa !36
  %3461 = getelementptr inbounds double, ptr %3460, i64 4
  store double %3455, ptr %3461, align 8, !tbaa !40
  %3462 = load double, ptr %22, align 8, !tbaa !40
  %3463 = load ptr, ptr %6, align 8, !tbaa !5
  %3464 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3463, i32 0, i32 81
  %3465 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3464, i32 0, i32 3
  %3466 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3465, i32 0, i32 4
  %3467 = load ptr, ptr %3466, align 8, !tbaa !36
  %3468 = getelementptr inbounds double, ptr %3467, i64 5
  store double %3462, ptr %3468, align 8, !tbaa !40
  %3469 = load double, ptr %23, align 8, !tbaa !40
  %3470 = load ptr, ptr %6, align 8, !tbaa !5
  %3471 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3470, i32 0, i32 81
  %3472 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3471, i32 0, i32 3
  %3473 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3472, i32 0, i32 4
  %3474 = load ptr, ptr %3473, align 8, !tbaa !36
  %3475 = getelementptr inbounds double, ptr %3474, i64 6
  store double %3469, ptr %3475, align 8, !tbaa !40
  %3476 = load double, ptr %24, align 8, !tbaa !40
  %3477 = load ptr, ptr %6, align 8, !tbaa !5
  %3478 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3477, i32 0, i32 81
  %3479 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3478, i32 0, i32 3
  %3480 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3479, i32 0, i32 4
  %3481 = load ptr, ptr %3480, align 8, !tbaa !36
  %3482 = getelementptr inbounds double, ptr %3481, i64 7
  store double %3476, ptr %3482, align 8, !tbaa !40
  %3483 = load double, ptr %30, align 8, !tbaa !40
  %3484 = load ptr, ptr %6, align 8, !tbaa !5
  %3485 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3484, i32 0, i32 81
  %3486 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3485, i32 0, i32 3
  %3487 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3486, i32 0, i32 4
  %3488 = load ptr, ptr %3487, align 8, !tbaa !36
  %3489 = getelementptr inbounds double, ptr %3488, i64 8
  store double %3483, ptr %3489, align 8, !tbaa !40
  %3490 = load double, ptr %31, align 8, !tbaa !40
  %3491 = load ptr, ptr %6, align 8, !tbaa !5
  %3492 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3491, i32 0, i32 81
  %3493 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3492, i32 0, i32 3
  %3494 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3493, i32 0, i32 4
  %3495 = load ptr, ptr %3494, align 8, !tbaa !36
  %3496 = getelementptr inbounds double, ptr %3495, i64 9
  store double %3490, ptr %3496, align 8, !tbaa !40
  %3497 = load double, ptr %32, align 8, !tbaa !40
  %3498 = load ptr, ptr %6, align 8, !tbaa !5
  %3499 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3498, i32 0, i32 81
  %3500 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3499, i32 0, i32 3
  %3501 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3500, i32 0, i32 4
  %3502 = load ptr, ptr %3501, align 8, !tbaa !36
  %3503 = getelementptr inbounds double, ptr %3502, i64 10
  store double %3497, ptr %3503, align 8, !tbaa !40
  %3504 = load double, ptr %35, align 8, !tbaa !40
  %3505 = load ptr, ptr %6, align 8, !tbaa !5
  %3506 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3505, i32 0, i32 81
  %3507 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3506, i32 0, i32 3
  %3508 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3507, i32 0, i32 4
  %3509 = load ptr, ptr %3508, align 8, !tbaa !36
  %3510 = getelementptr inbounds double, ptr %3509, i64 11
  store double %3504, ptr %3510, align 8, !tbaa !40
  %3511 = load double, ptr %36, align 8, !tbaa !40
  %3512 = load ptr, ptr %6, align 8, !tbaa !5
  %3513 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3512, i32 0, i32 81
  %3514 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3513, i32 0, i32 3
  %3515 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3514, i32 0, i32 4
  %3516 = load ptr, ptr %3515, align 8, !tbaa !36
  %3517 = getelementptr inbounds double, ptr %3516, i64 12
  store double %3511, ptr %3517, align 8, !tbaa !40
  %3518 = load double, ptr %37, align 8, !tbaa !40
  %3519 = load ptr, ptr %6, align 8, !tbaa !5
  %3520 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3519, i32 0, i32 81
  %3521 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3520, i32 0, i32 3
  %3522 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3521, i32 0, i32 4
  %3523 = load ptr, ptr %3522, align 8, !tbaa !36
  %3524 = getelementptr inbounds double, ptr %3523, i64 13
  store double %3518, ptr %3524, align 8, !tbaa !40
  %3525 = load double, ptr %38, align 8, !tbaa !40
  %3526 = load ptr, ptr %6, align 8, !tbaa !5
  %3527 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3526, i32 0, i32 81
  %3528 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3527, i32 0, i32 3
  %3529 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3528, i32 0, i32 4
  %3530 = load ptr, ptr %3529, align 8, !tbaa !36
  %3531 = getelementptr inbounds double, ptr %3530, i64 14
  store double %3525, ptr %3531, align 8, !tbaa !40
  %3532 = load double, ptr %39, align 8, !tbaa !40
  %3533 = load ptr, ptr %6, align 8, !tbaa !5
  %3534 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3533, i32 0, i32 81
  %3535 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3534, i32 0, i32 3
  %3536 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3535, i32 0, i32 4
  %3537 = load ptr, ptr %3536, align 8, !tbaa !36
  %3538 = getelementptr inbounds double, ptr %3537, i64 15
  store double %3532, ptr %3538, align 8, !tbaa !40
  %3539 = load double, ptr %40, align 8, !tbaa !40
  %3540 = load ptr, ptr %6, align 8, !tbaa !5
  %3541 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3540, i32 0, i32 81
  %3542 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3541, i32 0, i32 3
  %3543 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3542, i32 0, i32 4
  %3544 = load ptr, ptr %3543, align 8, !tbaa !36
  %3545 = getelementptr inbounds double, ptr %3544, i64 16
  store double %3539, ptr %3545, align 8, !tbaa !40
  %3546 = load double, ptr %41, align 8, !tbaa !40
  %3547 = load ptr, ptr %6, align 8, !tbaa !5
  %3548 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3547, i32 0, i32 81
  %3549 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3548, i32 0, i32 3
  %3550 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3549, i32 0, i32 4
  %3551 = load ptr, ptr %3550, align 8, !tbaa !36
  %3552 = getelementptr inbounds double, ptr %3551, i64 17
  store double %3546, ptr %3552, align 8, !tbaa !40
  %3553 = load double, ptr %43, align 8, !tbaa !40
  %3554 = load ptr, ptr %6, align 8, !tbaa !5
  %3555 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3554, i32 0, i32 81
  %3556 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3555, i32 0, i32 3
  %3557 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3556, i32 0, i32 4
  %3558 = load ptr, ptr %3557, align 8, !tbaa !36
  %3559 = getelementptr inbounds double, ptr %3558, i64 18
  store double %3553, ptr %3559, align 8, !tbaa !40
  %3560 = load double, ptr %44, align 8, !tbaa !40
  %3561 = load ptr, ptr %6, align 8, !tbaa !5
  %3562 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3561, i32 0, i32 81
  %3563 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3562, i32 0, i32 3
  %3564 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3563, i32 0, i32 4
  %3565 = load ptr, ptr %3564, align 8, !tbaa !36
  %3566 = getelementptr inbounds double, ptr %3565, i64 19
  store double %3560, ptr %3566, align 8, !tbaa !40
  %3567 = load double, ptr %45, align 8, !tbaa !40
  %3568 = load ptr, ptr %6, align 8, !tbaa !5
  %3569 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3568, i32 0, i32 81
  %3570 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3569, i32 0, i32 3
  %3571 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3570, i32 0, i32 4
  %3572 = load ptr, ptr %3571, align 8, !tbaa !36
  %3573 = getelementptr inbounds double, ptr %3572, i64 20
  store double %3567, ptr %3573, align 8, !tbaa !40
  %3574 = load double, ptr %46, align 8, !tbaa !40
  %3575 = load ptr, ptr %6, align 8, !tbaa !5
  %3576 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3575, i32 0, i32 81
  %3577 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3576, i32 0, i32 3
  %3578 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3577, i32 0, i32 4
  %3579 = load ptr, ptr %3578, align 8, !tbaa !36
  %3580 = getelementptr inbounds double, ptr %3579, i64 21
  store double %3574, ptr %3580, align 8, !tbaa !40
  %3581 = load double, ptr %47, align 8, !tbaa !40
  %3582 = load ptr, ptr %6, align 8, !tbaa !5
  %3583 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3582, i32 0, i32 81
  %3584 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3583, i32 0, i32 3
  %3585 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3584, i32 0, i32 4
  %3586 = load ptr, ptr %3585, align 8, !tbaa !36
  %3587 = getelementptr inbounds double, ptr %3586, i64 22
  store double %3581, ptr %3587, align 8, !tbaa !40
  %3588 = load double, ptr %48, align 8, !tbaa !40
  %3589 = load ptr, ptr %6, align 8, !tbaa !5
  %3590 = getelementptr inbounds %"struct.alglib_impl::minaulstate", ptr %3589, i32 0, i32 81
  %3591 = getelementptr inbounds %"struct.alglib_impl::rcommstate", ptr %3590, i32 0, i32 3
  %3592 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3591, i32 0, i32 4
  %3593 = load ptr, ptr %3592, align 8, !tbaa !36
  %3594 = getelementptr inbounds double, ptr %3593, i64 23
  store double %3588, ptr %3594, align 8, !tbaa !40
  %3595 = load i8, ptr %49, align 1, !tbaa !9, !range !38, !noundef !39
  %3596 = trunc i8 %3595 to i1
  store i1 %3596, ptr %5, align 1
  store i32 1, ptr %50, align 4
  br label %3597

3597:                                             ; preds = %3311, %3304, %2065, %1724, %817
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #5
  call void @llvm.lifetime.end.p0(i64 1, 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
  %3598 = load i1, ptr %5, align 1
  ret i1 %3598
}

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL20nlcaul_aulretrievesjEPNS_11minaulstateEPNS_11varsfuncjacES3_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL32nlcaul_preconditionersendupdatesEPNS_11minaulstateEPNS_20minaulpreconditionerEPKNS_11varsfuncjacEdPKNS_9ae_vectorES9_PNS_12xbfgshessianESB_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL15nlcaul_auglagfgEPNS_11minaulstateEPKNS_11varsfuncjacEdPKNS_9ae_vectorES7_PdPS5_PNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN11alglib_implL18nlcaul_modtargetfgEPNS_11minaulstateEPKNS_11varsfuncjacEddPdPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef, ptr noundef, double noundef, double noundef, ptr noundef, ptr noundef, ptr noundef) #3

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #3

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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { 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 #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, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !35, i64 31264}
!12 = !{!"_ZTSN11alglib_impl11minaulstateE", !13, i64 0, !13, i64 8, !13, i64 16, !14, i64 24, !14, i64 88, !14, i64 152, !14, i64 216, !14, i64 280, !14, i64 344, !14, i64 408, !16, 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, !17, i64 1416, !13, i64 1440, !13, i64 1448, !14, i64 1456, !14, i64 1520, !16, i64 1584, !18, i64 1952, !10, i64 1960, !10, i64 1961, !10, i64 1962, !18, i64 1968, !19, i64 1976, !19, i64 2576, !19, i64 3176, !19, i64 3776, !19, i64 4376, !19, i64 4976, !18, i64 5576, !13, i64 5584, !13, i64 5592, !14, i64 5600, !14, i64 5664, !14, i64 5728, !14, i64 5792, !14, i64 5856, !14, i64 5920, !14, i64 5984, !21, i64 6048, !32, i64 22296, !32, i64 25656, !14, i64 29016, !14, i64 29080, !14, i64 29144, !14, i64 29208, !13, i64 29272, !13, i64 29280, !13, i64 29288, !18, i64 29296, !13, i64 29304, !33, i64 29312, !18, i64 29504, !18, i64 29512, !14, i64 29520, !14, i64 29584, !14, i64 29648, !20, i64 29712, !14, i64 29792, !14, i64 29856, !19, i64 29920, !19, i64 30520, !13, i64 31120, !13, i64 31128, !13, i64 31136, !18, i64 31144, !13, i64 31152, !18, i64 31160, !13, i64 31168, !18, i64 31176, !13, i64 31184, !13, i64 31192, !14, i64 31200, !34, i64 31264}
!13 = !{!"long", !7, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_vectorE", !13, i64 0, !13, i64 8, !10, 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_impl12sparsematrixE", !14, i64 0, !14, i64 64, !14, i64 128, !14, i64 192, !14, i64 256, !13, i64 320, !13, i64 328, !13, i64 336, !13, i64 344, !13, i64 352, !13, i64 360}
!17 = !{!"_ZTSN11alglib_impl19nlpstoppingcriteriaE", !18, i64 0, !18, i64 8, !13, i64 16}
!18 = !{!"double", !7, i64 0}
!19 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !13, i64 0, !13, i64 8, !10, i64 16, !14, i64 24, !14, i64 88, !20, i64 152, !16, i64 232}
!20 = !{!"_ZTSN11alglib_impl9ae_matrixE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !10, i64 32, !15, i64 40, !7, i64 72}
!21 = !{!"_ZTSN11alglib_impl20minaulpreconditionerE", !13, i64 0, !13, i64 8, !22, i64 16, !16, i64 15080, !13, i64 15448, !20, i64 15456, !20, i64 15536, !13, i64 15616, !20, i64 15624, !14, i64 15704, !14, i64 15768, !14, i64 15832, !14, i64 15896, !20, i64 15960, !20, i64 16040, !14, i64 16120, !14, i64 16184}
!22 = !{!"_ZTSN11alglib_impl14spcholanalysisE", !13, i64 0, !13, i64 8, !13, i64 16, !10, i64 24, !13, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !14, i64 72, !10, i64 136, !10, i64 137, !10, i64 138, !10, i64 139, !10, i64 140, !14, i64 144, !13, i64 208, !14, i64 216, !14, i64 280, !14, i64 344, !14, i64 408, !14, i64 472, !14, i64 536, !10, i64 600, !14, i64 608, !14, i64 672, !14, i64 736, !14, i64 800, !14, i64 864, !14, i64 928, !10, i64 992, !10, i64 993, !23, i64 1000, !14, i64 1512, !14, i64 1576, !14, i64 1640, !14, i64 1704, !14, i64 1768, !14, i64 1832, !24, i64 1896, !24, i64 2040, !24, i64 2184, !24, i64 2328, !24, i64 2472, !24, i64 2616, !14, i64 2760, !14, i64 2824, !14, i64 2888, !14, i64 2952, !14, i64 3016, !26, i64 3080, !31, i64 7464, !14, i64 13816, !14, i64 13880, !14, i64 13944, !14, i64 14008, !14, i64 14072, !14, i64 14136, !16, i64 14200, !16, i64 14568, !14, i64 14936, !14, i64 15000}
!23 = !{!"_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}
!24 = !{!"_ZTSN11alglib_impl9ae_nxpoolE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !15, i64 32, !25, i64 64, !15, i64 112}
!25 = !{!"_ZTSN11alglib_impl7ae_lockE", !6, i64 0, !15, i64 8, !10, i64 40}
!26 = !{!"_ZTSN11alglib_impl9amdbufferE", !13, i64 0, !10, i64 8, !10, i64 9, !14, i64 16, !14, i64 80, !14, i64 144, !27, i64 208, !27, i64 568, !27, i64 928, !28, i64 1288, !29, i64 1496, !30, i64 1968, !14, i64 2120, !14, i64 2184, !14, i64 2248, !30, i64 2312, !30, i64 2464, !30, i64 2616, !30, i64 2768, !30, i64 2920, !30, i64 3072, !14, i64 3224, !13, i64 3288, !30, i64 3296, !30, i64 3448, !27, i64 3600, !30, i64 3960, !14, i64 4112, !14, i64 4176, !14, i64 4240, !20, i64 4304}
!27 = !{!"_ZTSN11alglib_impl8amdknsetE", !13, i64 0, !13, i64 8, !14, i64 16, !14, i64 80, !14, i64 144, !14, i64 208, !14, i64 272, !13, i64 336, !13, i64 344, !13, i64 352}
!28 = !{!"_ZTSN11alglib_impl11amdllmatrixE", !13, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !13, i64 200}
!29 = !{!"_ZTSN11alglib_impl12amdvertexsetE", !13, i64 0, !10, i64 8, !13, i64 16, !14, i64 24, !14, i64 88, !14, i64 152, !14, i64 216, !14, i64 280, !14, i64 344, !14, i64 408}
!30 = !{!"_ZTSN11alglib_impl5nisetE", !13, i64 0, !13, i64 8, !14, i64 16, !14, i64 80, !13, i64 144}
!31 = !{!"_ZTSN11alglib_impl18priorityamdbuffersE", !14, i64 0, !14, i64 64, !26, i64 128, !16, i64 4512, !16, i64 4880, !16, i64 5248, !16, i64 5616, !16, i64 5984}
!32 = !{!"_ZTSN11alglib_impl12xbfgshessianE", !13, i64 0, !14, i64 8, !14, i64 72, !13, i64 136, !13, i64 144, !18, i64 152, !18, i64 160, !18, i64 168, !18, i64 176, !18, i64 184, !18, i64 192, !18, i64 200, !13, i64 208, !18, i64 216, !18, i64 224, !20, i64 232, !13, i64 312, !18, i64 320, !18, i64 328, !18, i64 336, !13, i64 344, !18, i64 352, !20, i64 360, !20, i64 440, !20, i64 520, !20, i64 600, !10, i64 680, !13, i64 688, !20, i64 696, !20, i64 776, !10, i64 856, !14, i64 864, !10, i64 928, !13, i64 936, !20, i64 944, !14, i64 1024, !14, i64 1088, !20, i64 1152, !14, i64 1232, !14, i64 1296, !10, i64 1360, !14, i64 1368, !18, i64 1432, !18, i64 1440, !13, i64 1448, !20, i64 1456, !14, i64 1536, !14, i64 1600, !14, i64 1664, !14, i64 1728, !14, i64 1792, !14, i64 1856, !20, i64 1920, !20, i64 2000, !20, i64 2080, !20, i64 2160, !20, i64 2240, !20, i64 2320, !20, i64 2400, !20, i64 2480, !14, i64 2560, !14, i64 2624, !20, i64 2688, !14, i64 2768, !20, i64 2832, !20, i64 2912, !20, i64 2992, !20, i64 3072, !20, i64 3152, !14, i64 3232, !14, i64 3296}
!33 = !{!"_ZTSN11alglib_impl11linminstateE", !10, i64 0, !10, i64 1, !13, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !18, i64 80, !18, i64 88, !18, i64 96, !18, i64 104, !18, i64 112, !18, i64 120, !18, i64 128, !18, i64 136, !18, i64 144, !18, i64 152, !18, i64 160, !18, i64 168, !18, i64 176, !18, i64 184}
!34 = !{!"_ZTSN11alglib_impl10rcommstateE", !35, i64 0, !14, i64 8, !14, i64 72, !14, i64 136, !14, i64 200}
!35 = !{!"int", !7, i64 0}
!36 = !{!7, !7, i64 0}
!37 = !{!13, !13, i64 0}
!38 = !{i8 0, i8 2}
!39 = !{}
!40 = !{!18, !18, i64 0}
!41 = !{!12, !13, i64 0}
!42 = !{!12, !13, i64 8}
!43 = !{!12, !13, i64 16}
!44 = !{!12, !10, i64 1960}
!45 = !{!12, !10, i64 1961}
!46 = !{!12, !10, i64 1962}
!47 = distinct !{!47, !48}
!48 = !{!"llvm.loop.mustprogress"}
!49 = !{!12, !13, i64 31128}
!50 = !{!12, !13, i64 31120}
!51 = !{!12, !13, i64 31136}
!52 = !{!12, !13, i64 29272}
!53 = !{!12, !13, i64 29280}
!54 = distinct !{!54, !48}
!55 = distinct !{!55, !48}
!56 = distinct !{!56, !48}
!57 = !{!12, !18, i64 1952}
!58 = !{!12, !13, i64 29288}
!59 = !{!12, !18, i64 29296}
!60 = !{!12, !18, i64 1968}
!61 = !{!12, !18, i64 5576}
!62 = !{!12, !13, i64 5584}
!63 = !{!12, !13, i64 5592}
!64 = !{!12, !13, i64 1448}
!65 = distinct !{!65, !48}
!66 = distinct !{!66, !48}
!67 = distinct !{!67, !48}
!68 = distinct !{!68, !48}
!69 = distinct !{!69, !48}
!70 = !{!12, !18, i64 31160}
!71 = distinct !{!71, !48}
!72 = !{!12, !13, i64 29304}
!73 = !{!12, !18, i64 29504}
!74 = !{!12, !18, i64 29512}
!75 = !{!12, !13, i64 31192}
!76 = distinct !{!76, !48}
!77 = distinct !{!77, !48}
!78 = !{!12, !13, i64 1440}
!79 = distinct !{!79, !48}
!80 = distinct !{!80, !48}
!81 = distinct !{!81, !48}
!82 = distinct !{!82, !48}


; 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.205 = external hidden unnamed_addr constant [66 x i8], align 1
@.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.708 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.733 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.774 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.777 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.1119 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1120 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1127 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.1129 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.1130 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1131 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.1132 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1133 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1135 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.1136 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.1137 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1161 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1170 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1171 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1247 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.1248 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.1249 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN11alglib_implL27nlcaul_defaultinequalitylagE = external hidden local_unnamed_addr global double, align 8
@.str.1250 = external hidden unnamed_addr constant [102 x i8], align 1
@_ZN11alglib_implL18nlcaul_xbfgsmemlenE = external hidden local_unnamed_addr global i64, align 8
@_ZN11alglib_implL19nlcaul_xbfgsmaxhessE = external hidden local_unnamed_addr global double, align 8
@.str.1251 = external hidden unnamed_addr constant [99 x i8], align 1
@_ZN11alglib_implL18nlcaul_aulbigscaleE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL20nlcaul_aulsmallscaleE = external hidden local_unnamed_addr global double, align 8
@.str.1252 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.1253 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1254 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1255 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1256 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1257 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.1258 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.1259 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.1260 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.1261 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1262 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.1263 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1264 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1265 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.1266 = external hidden unnamed_addr constant [48 x i8], align 1
@_ZN11alglib_implL11nlcaul_gtolE = external hidden local_unnamed_addr global double, align 8
@.str.1267 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.1268 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.1269 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.1270 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.1271 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.1272 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.1273 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.1274 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.1275 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.1276 = external hidden unnamed_addr constant [62 x i8], align 1
@_ZN11alglib_implL21nlcaul_stagnationepsfE = external hidden local_unnamed_addr global double, align 8
@.str.1277 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.1278 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.1279 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.1280 = external hidden unnamed_addr constant [73 x i8], align 1
@_ZN11alglib_implL23nlcaul_fstagnationlimitE = external hidden local_unnamed_addr global i64, align 8
@_ZN11alglib_implL29nlcaul_besterrstagnationcoeffE = external hidden local_unnamed_addr global double, align 8
@.str.1281 = external hidden unnamed_addr constant [71 x i8], align 1
@_ZN11alglib_implL29nlcaul_besterrstagnationlimitE = external hidden local_unnamed_addr global i64, align 8
@.str.1282 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.1283 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.1284 = external hidden unnamed_addr constant [40 x i8], align 1
@_ZN11alglib_implL19nlcaul_aulmaxgrowthE = external hidden local_unnamed_addr global double, align 8
@.str.1285 = external hidden unnamed_addr constant [33 x i8], align 1
@_ZN11alglib_implL17nlcaul_maxlagmultE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL17nlcaul_minlagmultE = external hidden local_unnamed_addr global double, align 8
@_ZN11alglib_implL13nlcaul_rhomaxE = external hidden local_unnamed_addr global double, align 8

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

; Function Attrs: mustprogress 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) 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 #1

declare noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef, double noundef) local_unnamed_addr #1

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

declare noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl28smoothnessmonitortracestatusEPKNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef, i1 noundef zeroext, ptr noundef) local_unnamed_addr #3

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

declare noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #1

declare void @_ZN11alglib_impl36tracevectorunscaledunshiftedautoprecEPKNS_9ae_vectorElS2_bS2_bPNS_8ae_stateE(ptr noundef, i64 noundef, ptr noundef, i1 noundef zeroext, ptr noundef, i1 noundef zeroext, ptr noundef) local_unnamed_addr #1

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN11alglib_impl17hessiansetmaxhessEPNS_12xbfgshessianEdPNS_8ae_stateE(ptr noundef, double noundef, ptr noundef) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl13hessianupdateEPNS_12xbfgshessianEPKNS_9ae_vectorES4_S4_S4_bPNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i1 noundef zeroext, ptr noundef) local_unnamed_addr #3

declare noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

declare noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef, double noundef, double noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef, ptr noundef) local_unnamed_addr #4

declare void @_ZN11alglib_impl16linminnormalizedEPNS_9ae_vectorEPdlPNS_8ae_stateE(ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #1

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

declare noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef, double noundef, double noundef, ptr noundef) local_unnamed_addr #1

declare noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext, i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN11alglib_impl15minauliterationEPNS_11minaulstateEPNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, i1 noundef zeroext %2, ptr noundef %3) local_unnamed_addr #3 {
  %5 = alloca double, align 8
  %6 = alloca double, align 8
  %7 = alloca double, align 8
  %8 = alloca i64, align 8
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  %15 = getelementptr inbounds i8, ptr %0, i64 31264
  %16 = load i32, ptr %15, align 8, !tbaa !5
  %17 = icmp sgt i32 %16, -1
  br i1 %17, label %18, label %98

18:                                               ; preds = %4
  %19 = getelementptr inbounds i8, ptr %0, i64 31328
  %20 = load ptr, ptr %19, align 8, !tbaa !34
  %21 = load i64, ptr %20, align 8, !tbaa !35
  %22 = getelementptr inbounds i8, ptr %20, i64 8
  %23 = load i64, ptr %22, align 8, !tbaa !35
  %24 = getelementptr inbounds i8, ptr %20, i64 16
  %25 = load i64, ptr %24, align 8, !tbaa !35
  %26 = getelementptr inbounds i8, ptr %20, i64 24
  %27 = load i64, ptr %26, align 8, !tbaa !35
  %28 = getelementptr inbounds i8, ptr %20, i64 32
  %29 = load i64, ptr %28, align 8, !tbaa !35
  %30 = getelementptr inbounds i8, ptr %20, i64 40
  %31 = load i64, ptr %30, align 8, !tbaa !35
  %32 = getelementptr inbounds i8, ptr %20, i64 48
  %33 = load i64, ptr %32, align 8, !tbaa !35
  %34 = getelementptr inbounds i8, ptr %20, i64 56
  %35 = load i64, ptr %34, align 8, !tbaa !35
  %36 = getelementptr inbounds i8, ptr %20, i64 64
  %37 = load i64, ptr %36, align 8, !tbaa !35
  %38 = getelementptr inbounds i8, ptr %20, i64 72
  %39 = load i64, ptr %38, align 8, !tbaa !35
  %40 = getelementptr inbounds i8, ptr %0, i64 31392
  %41 = load ptr, ptr %40, align 8, !tbaa !34
  %42 = load i8, ptr %41, align 1, !tbaa !36, !range !37, !noundef !38
  %43 = getelementptr inbounds i8, ptr %41, i64 1
  %44 = load i8, ptr %43, align 1, !tbaa !36, !range !37, !noundef !38
  %45 = getelementptr inbounds i8, ptr %41, i64 2
  %46 = load i8, ptr %45, align 1, !tbaa !36, !range !37, !noundef !38
  %47 = getelementptr inbounds i8, ptr %41, i64 3
  %48 = load i8, ptr %47, align 1, !tbaa !36, !range !37, !noundef !38
  %49 = getelementptr inbounds i8, ptr %41, i64 4
  %50 = load i8, ptr %49, align 1, !tbaa !36, !range !37, !noundef !38
  %51 = getelementptr inbounds i8, ptr %0, i64 31456
  %52 = load ptr, ptr %51, align 8, !tbaa !34
  %53 = load double, ptr %52, align 8, !tbaa !39
  %54 = getelementptr inbounds i8, ptr %52, i64 8
  %55 = load double, ptr %54, align 8, !tbaa !39
  %56 = getelementptr inbounds i8, ptr %52, i64 16
  %57 = load double, ptr %56, align 8, !tbaa !39
  %58 = getelementptr inbounds i8, ptr %52, i64 24
  %59 = load double, ptr %58, align 8, !tbaa !39
  %60 = getelementptr inbounds i8, ptr %52, i64 32
  %61 = load double, ptr %60, align 8, !tbaa !39
  %62 = getelementptr inbounds i8, ptr %52, i64 40
  %63 = load double, ptr %62, align 8, !tbaa !39
  %64 = getelementptr inbounds i8, ptr %52, i64 48
  %65 = load double, ptr %64, align 8, !tbaa !39
  %66 = getelementptr inbounds i8, ptr %52, i64 56
  %67 = load double, ptr %66, align 8, !tbaa !39
  %68 = getelementptr inbounds i8, ptr %52, i64 64
  %69 = load double, ptr %68, align 8, !tbaa !39
  %70 = getelementptr inbounds i8, ptr %52, i64 72
  %71 = load double, ptr %70, align 8, !tbaa !39
  %72 = getelementptr inbounds i8, ptr %52, i64 80
  %73 = load double, ptr %72, align 8, !tbaa !39
  %74 = getelementptr inbounds i8, ptr %52, i64 88
  %75 = load double, ptr %74, align 8, !tbaa !39
  %76 = getelementptr inbounds i8, ptr %52, i64 96
  %77 = load double, ptr %76, align 8, !tbaa !39
  %78 = getelementptr inbounds i8, ptr %52, i64 104
  %79 = load double, ptr %78, align 8, !tbaa !39
  %80 = getelementptr inbounds i8, ptr %52, i64 112
  %81 = load double, ptr %80, align 8, !tbaa !39
  %82 = getelementptr inbounds i8, ptr %52, i64 120
  %83 = load double, ptr %82, align 8, !tbaa !39
  %84 = getelementptr inbounds i8, ptr %52, i64 128
  %85 = load <2 x double>, ptr %84, align 8, !tbaa !39
  %86 = getelementptr inbounds i8, ptr %52, i64 144
  %87 = load double, ptr %86, align 8, !tbaa !39
  %88 = getelementptr inbounds i8, ptr %52, i64 152
  %89 = load double, ptr %88, align 8, !tbaa !39
  %90 = getelementptr inbounds i8, ptr %52, i64 160
  %91 = load double, ptr %90, align 8, !tbaa !39
  %92 = getelementptr inbounds i8, ptr %52, i64 168
  %93 = load double, ptr %92, align 8, !tbaa !39
  %94 = getelementptr inbounds i8, ptr %52, i64 176
  %95 = load double, ptr %94, align 8, !tbaa !39
  %96 = getelementptr inbounds i8, ptr %52, i64 184
  %97 = load double, ptr %96, align 8, !tbaa !39
  br label %98

98:                                               ; preds = %4, %18
  %99 = phi i64 [ %39, %18 ], [ 205, %4 ]
  %.sink1397 = phi double [ %53, %18 ], [ -6.980000e+02, %4 ]
  %100 = phi double [ %65, %18 ], [ -5.360000e+02, %4 ]
  %.sink1395 = phi double [ %67, %18 ], [ 4.870000e+02, %4 ]
  %.sink1394 = phi double [ %77, %18 ], [ -4.130000e+02, %4 ]
  %.sink1393 = phi double [ %79, %18 ], [ -4.610000e+02, %4 ]
  %.sink1392 = phi double [ %81, %18 ], [ 9.270000e+02, %4 ]
  %.sink1391 = phi double [ %87, %18 ], [ 3.060000e+02, %4 ]
  %.sink1390 = phi double [ %89, %18 ], [ -1.011000e+03, %4 ]
  %.sink = phi double [ %91, %18 ], [ 9.510000e+02, %4 ]
  %.01204 = phi i64 [ %21, %18 ], [ 359, %4 ]
  %.01202 = phi i64 [ %23, %18 ], [ -58, %4 ]
  %.01200 = phi i64 [ %25, %18 ], [ -919, %4 ]
  %.01198 = phi i64 [ %27, %18 ], [ -909, %4 ]
  %.01196 = phi i8 [ %42, %18 ], [ 0, %4 ]
  %.01194 = phi i8 [ %44, %18 ], [ 1, %4 ]
  %.01192 = phi i8 [ %46, %18 ], [ 0, %4 ]
  %.01189 = phi double [ %55, %18 ], [ -9.000000e+02, %4 ]
  %.01187 = phi double [ %57, %18 ], [ -3.180000e+02, %4 ]
  %.01186 = phi double [ %59, %18 ], [ -9.400000e+02, %4 ]
  %.01185 = phi double [ %61, %18 ], [ 1.016000e+03, %4 ]
  %.01178 = phi double [ %63, %18 ], [ -2.290000e+02, %4 ]
  %.01167 = phi i64 [ %29, %18 ], [ 81, %4 ]
  %.01157 = phi i64 [ %31, %18 ], [ 255, %4 ]
  %.01147 = phi i64 [ %33, %18 ], [ 74, %4 ]
  %.01137 = phi i64 [ %35, %18 ], [ -788, %4 ]
  %.01128 = phi i64 [ %37, %18 ], [ 809, %4 ]
  %.01121 = phi double [ %69, %18 ], [ -1.150000e+02, %4 ]
  %.01115 = phi double [ %71, %18 ], [ 8.860000e+02, %4 ]
  %.01109 = phi double [ %73, %18 ], [ 3.460000e+02, %4 ]
  %.01103 = phi i8 [ %48, %18 ], [ 1, %4 ]
  %.01100 = phi double [ %75, %18 ], [ -7.220000e+02, %4 ]
  %.01094 = phi double [ %83, %18 ], [ 2.010000e+02, %4 ]
  %.01085 = phi i8 [ %50, %18 ], [ 1, %4 ]
  %.01081 = phi double [ %93, %18 ], [ -4.630000e+02, %4 ]
  %.01077 = phi double [ %95, %18 ], [ 8.800000e+01, %4 ]
  %.0 = phi double [ %97, %18 ], [ -8.610000e+02, %4 ]
  %101 = phi <2 x double> [ %85, %18 ], [ <double 9.220000e+02, double -1.540000e+02>, %4 ]
  store i64 %99, ptr %8, align 8
  store double %.sink1397, ptr %5, align 8
  store double %100, ptr %6, align 8
  store double %.sink1395, ptr %7, align 8
  store double %.sink1394, ptr %9, align 8
  store double %.sink1393, ptr %10, align 8
  store double %.sink1392, ptr %11, align 8
  store double %.sink1391, ptr %12, align 8
  store double %.sink1390, ptr %13, align 8
  store double %.sink, ptr %14, align 8
  switch i32 %16, label %102 [
    i32 0, label %295
    i32 1, label %313
    i32 2, label %670
    i32 3, label %733
    i32 4, label %801
    i32 5, label %1420
  ]

102:                                              ; preds = %98
  %103 = load i64, ptr %0, align 8, !tbaa !40
  %104 = getelementptr inbounds i8, ptr %0, i64 8
  %105 = load i64, ptr %104, align 8, !tbaa !41
  %106 = getelementptr inbounds i8, ptr %0, i64 16
  %107 = load i64, ptr %106, align 8, !tbaa !42
  %108 = add nsw i64 %107, %105
  %109 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1247)
  %110 = zext i1 %109 to i8
  br i1 %109, label %111, label %116

111:                                              ; preds = %102
  %112 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1248)
  %113 = zext i1 %112 to i8
  %114 = tail call noundef zeroext i1 @_ZN11alglib_impl19ae_is_trace_enabledEPKc(ptr noundef nonnull @.str.1249)
  %115 = zext i1 %114 to i8
  br label %116

116:                                              ; preds = %102, %111
  %117 = phi i8 [ %113, %111 ], [ 0, %102 ]
  %118 = phi i8 [ %115, %111 ], [ 0, %102 ]
  %119 = getelementptr inbounds i8, ptr %0, i64 1960
  store i8 0, ptr %119, align 8, !tbaa !43
  %120 = getelementptr inbounds i8, ptr %0, i64 1961
  store i8 0, ptr %120, align 1, !tbaa !44
  %121 = getelementptr inbounds i8, ptr %0, i64 1962
  store i8 0, ptr %121, align 2, !tbaa !45
  %.not1340 = icmp slt i64 %107, 0
  br i1 %.not1340, label %._crit_edge1344, label %.lr.ph1343

.lr.ph1343:                                       ; preds = %116
  %122 = getelementptr inbounds i8, ptr %0, i64 5976
  %123 = getelementptr inbounds i8, ptr %0, i64 6040
  %124 = icmp eq i64 %107, 0
  br i1 %124, label %._crit_edge1344.loopexit.unr-lcssa, label %.lr.ph1343.new

.lr.ph1343.new:                                   ; preds = %.lr.ph1343
  %125 = add nuw i64 %107, 1
  %unroll_iter = and i64 %125, -2
  br label %126

126:                                              ; preds = %126, %.lr.ph1343.new
  %.111681341 = phi i64 [ 0, %.lr.ph1343.new ], [ %136, %126 ]
  %niter = phi i64 [ 0, %.lr.ph1343.new ], [ %niter.next.1, %126 ]
  %127 = load ptr, ptr %122, align 8, !tbaa !34
  %128 = getelementptr inbounds double, ptr %127, i64 %.111681341
  store double 1.000000e+00, ptr %128, align 8, !tbaa !39
  %129 = load ptr, ptr %123, align 8, !tbaa !34
  %130 = getelementptr inbounds double, ptr %129, i64 %.111681341
  store double 0.000000e+00, ptr %130, align 8, !tbaa !39
  %131 = or disjoint i64 %.111681341, 1
  %132 = load ptr, ptr %122, align 8, !tbaa !34
  %133 = getelementptr inbounds double, ptr %132, i64 %131
  store double 1.000000e+00, ptr %133, align 8, !tbaa !39
  %134 = load ptr, ptr %123, align 8, !tbaa !34
  %135 = getelementptr inbounds double, ptr %134, i64 %131
  store double 0.000000e+00, ptr %135, align 8, !tbaa !39
  %136 = add nuw i64 %.111681341, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge1344.loopexit.unr-lcssa, label %126, !llvm.loop !46

._crit_edge1344.loopexit.unr-lcssa:               ; preds = %126, %.lr.ph1343
  %.111681341.unr = phi i64 [ 0, %.lr.ph1343 ], [ %136, %126 ]
  %137 = and i64 %107, 1
  %lcmp.mod1522.not.not = icmp eq i64 %137, 0
  br i1 %lcmp.mod1522.not.not, label %._crit_edge1344.loopexit.epilog-lcssa, label %._crit_edge1344

._crit_edge1344.loopexit.epilog-lcssa:            ; preds = %._crit_edge1344.loopexit.unr-lcssa
  %138 = load ptr, ptr %122, align 8, !tbaa !34
  %139 = getelementptr inbounds double, ptr %138, i64 %.111681341.unr
  store double 1.000000e+00, ptr %139, align 8, !tbaa !39
  %140 = load ptr, ptr %123, align 8, !tbaa !34
  %141 = getelementptr inbounds double, ptr %140, i64 %.111681341.unr
  store double 0.000000e+00, ptr %141, align 8, !tbaa !39
  br label %._crit_edge1344

._crit_edge1344:                                  ; preds = %._crit_edge1344.loopexit.epilog-lcssa, %._crit_edge1344.loopexit.unr-lcssa, %116
  %142 = getelementptr inbounds i8, ptr %0, i64 31120
  %143 = getelementptr inbounds i8, ptr %0, i64 29272
  %144 = shl nsw i64 %103, 1
  %145 = getelementptr inbounds i8, ptr %0, i64 5600
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %143, i8 0, i64 16, i1 false)
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %142, i8 0, i64 24, i1 false)
  tail call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %144, double noundef 0.000000e+00, ptr noundef nonnull %145, ptr noundef %3)
  %.not1215.not1345 = icmp sgt i64 %103, 0
  br i1 %.not1215.not1345, label %.lr.ph1348, label %._crit_edge1349

.lr.ph1348:                                       ; preds = %._crit_edge1344
  %146 = getelementptr inbounds i8, ptr %0, i64 144
  %147 = getelementptr inbounds i8, ptr %0, i64 208
  %148 = getelementptr inbounds i8, ptr %0, i64 272
  %149 = getelementptr inbounds i8, ptr %0, i64 336
  %150 = getelementptr inbounds i8, ptr %0, i64 5656
  br label %151

151:                                              ; preds = %.lr.ph1348, %190
  %.211691346 = phi i64 [ 0, %.lr.ph1348 ], [ %191, %190 ]
  %152 = load ptr, ptr %146, align 8, !tbaa !34
  %153 = getelementptr inbounds i8, ptr %152, i64 %.211691346
  %154 = load i8, ptr %153, align 1, !tbaa !36, !range !37, !noundef !38
  %155 = trunc nuw i8 %154 to i1
  br i1 %155, label %156, label %173

156:                                              ; preds = %151
  %157 = load ptr, ptr %147, align 8, !tbaa !34
  %158 = getelementptr inbounds i8, ptr %157, i64 %.211691346
  %159 = load i8, ptr %158, align 1, !tbaa !36, !range !37, !noundef !38
  %160 = trunc nuw i8 %159 to i1
  br i1 %160, label %161, label %173

161:                                              ; preds = %156
  %162 = load ptr, ptr %148, align 8, !tbaa !34
  %163 = getelementptr inbounds double, ptr %162, i64 %.211691346
  %164 = load double, ptr %163, align 8, !tbaa !39
  %165 = load ptr, ptr %149, align 8, !tbaa !34
  %166 = getelementptr inbounds double, ptr %165, i64 %.211691346
  %167 = load double, ptr %166, align 8, !tbaa !39
  %168 = tail call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %164, double noundef %167)
  br i1 %168, label %169, label %._crit_edge1412

._crit_edge1412:                                  ; preds = %161
  %.pre1413 = load ptr, ptr %146, align 8, !tbaa !34
  %.phi.trans.insert1414 = getelementptr inbounds i8, ptr %.pre1413, i64 %.211691346
  %.pre1415 = load i8, ptr %.phi.trans.insert1414, align 1, !tbaa !36, !range !37
  br label %173

169:                                              ; preds = %161
  %170 = load ptr, ptr %150, align 8, !tbaa !34
  %171 = shl nuw nsw i64 %.211691346, 1
  %172 = getelementptr inbounds double, ptr %170, i64 %171
  store double 0.000000e+00, ptr %172, align 8, !tbaa !39
  br label %.sink.split

173:                                              ; preds = %._crit_edge1412, %156, %151
  %174 = phi i8 [ %.pre1415, %._crit_edge1412 ], [ %154, %156 ], [ %154, %151 ]
  %175 = trunc nuw i8 %174 to i1
  br i1 %175, label %176, label %180

176:                                              ; preds = %173
  %177 = load double, ptr @_ZN11alglib_implL27nlcaul_defaultinequalitylagE, align 8, !tbaa !39
  %178 = load ptr, ptr %150, align 8, !tbaa !34
  %.idx1219 = shl nsw i64 %.211691346, 4
  %179 = getelementptr inbounds i8, ptr %178, i64 %.idx1219
  store double %177, ptr %179, align 8, !tbaa !39
  br label %180

180:                                              ; preds = %176, %173
  %181 = load ptr, ptr %147, align 8, !tbaa !34
  %182 = getelementptr inbounds i8, ptr %181, i64 %.211691346
  %183 = load i8, ptr %182, align 1, !tbaa !36, !range !37, !noundef !38
  %184 = trunc nuw i8 %183 to i1
  br i1 %184, label %185, label %190

185:                                              ; preds = %180
  %186 = load double, ptr @_ZN11alglib_implL27nlcaul_defaultinequalitylagE, align 8, !tbaa !39
  %187 = shl nuw nsw i64 %.211691346, 1
  br label %.sink.split

.sink.split:                                      ; preds = %169, %185
  %.sink1475 = phi i64 [ %187, %185 ], [ %171, %169 ]
  %.sink1471 = phi double [ %186, %185 ], [ 0.000000e+00, %169 ]
  %.sink1473 = load ptr, ptr %150, align 8, !tbaa !34
  %188 = or disjoint i64 %.sink1475, 1
  %189 = getelementptr inbounds double, ptr %.sink1473, i64 %188
  store double %.sink1471, ptr %189, align 8, !tbaa !39
  br label %190

190:                                              ; preds = %.sink.split, %180
  %191 = add nuw nsw i64 %.211691346, 1
  %exitcond1387.not = icmp eq i64 %191, %103
  br i1 %exitcond1387.not, label %._crit_edge1349, label %151, !llvm.loop !48

._crit_edge1349:                                  ; preds = %190, %._crit_edge1344
  %192 = shl nsw i64 %108, 1
  %193 = getelementptr inbounds i8, ptr %0, i64 5664
  tail call void @_ZN11alglib_impl5rsetvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %192, double noundef 0.000000e+00, ptr noundef nonnull %193, ptr noundef %3)
  %.not1216.not1350 = icmp sgt i64 %105, 0
  br i1 %.not1216.not1350, label %.lr.ph1353, label %.preheader

.lr.ph1353:                                       ; preds = %._crit_edge1349
  %194 = getelementptr inbounds i8, ptr %0, i64 1024
  %195 = getelementptr inbounds i8, ptr %0, i64 1088
  %196 = getelementptr inbounds i8, ptr %0, i64 896
  %197 = getelementptr inbounds i8, ptr %0, i64 960
  %198 = getelementptr inbounds i8, ptr %0, i64 5720
  br label %204

.preheader:                                       ; preds = %243, %._crit_edge1349
  %.not1217.not1354 = icmp sgt i64 %107, 0
  br i1 %.not1217.not1354, label %.lr.ph1356, label %._crit_edge1357

.lr.ph1356:                                       ; preds = %.preheader
  %199 = getelementptr inbounds i8, ptr %0, i64 1280
  %200 = getelementptr inbounds i8, ptr %0, i64 1344
  %201 = getelementptr inbounds i8, ptr %0, i64 1152
  %202 = getelementptr inbounds i8, ptr %0, i64 1216
  %203 = getelementptr inbounds i8, ptr %0, i64 5720
  br label %245

204:                                              ; preds = %.lr.ph1353, %243
  %.311701351 = phi i64 [ 0, %.lr.ph1353 ], [ %244, %243 ]
  %205 = load ptr, ptr %194, align 8, !tbaa !34
  %206 = getelementptr inbounds i8, ptr %205, i64 %.311701351
  %207 = load i8, ptr %206, align 1, !tbaa !36, !range !37, !noundef !38
  %208 = trunc nuw i8 %207 to i1
  br i1 %208, label %209, label %226

209:                                              ; preds = %204
  %210 = load ptr, ptr %195, align 8, !tbaa !34
  %211 = getelementptr inbounds i8, ptr %210, i64 %.311701351
  %212 = load i8, ptr %211, align 1, !tbaa !36, !range !37, !noundef !38
  %213 = trunc nuw i8 %212 to i1
  br i1 %213, label %214, label %226

214:                                              ; preds = %209
  %215 = load ptr, ptr %196, align 8, !tbaa !34
  %216 = getelementptr inbounds double, ptr %215, i64 %.311701351
  %217 = load double, ptr %216, align 8, !tbaa !39
  %218 = load ptr, ptr %197, align 8, !tbaa !34
  %219 = getelementptr inbounds double, ptr %218, i64 %.311701351
  %220 = load double, ptr %219, align 8, !tbaa !39
  %221 = tail call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %217, double noundef %220)
  br i1 %221, label %222, label %._crit_edge1416

._crit_edge1416:                                  ; preds = %214
  %.pre1417 = load ptr, ptr %194, align 8, !tbaa !34
  %.phi.trans.insert1418 = getelementptr inbounds i8, ptr %.pre1417, i64 %.311701351
  %.pre1419 = load i8, ptr %.phi.trans.insert1418, align 1, !tbaa !36, !range !37
  br label %226

222:                                              ; preds = %214
  %223 = load ptr, ptr %198, align 8, !tbaa !34
  %224 = shl nuw nsw i64 %.311701351, 1
  %225 = getelementptr inbounds double, ptr %223, i64 %224
  store double 0.000000e+00, ptr %225, align 8, !tbaa !39
  br label %.sink.split1476

226:                                              ; preds = %._crit_edge1416, %209, %204
  %227 = phi i8 [ %.pre1419, %._crit_edge1416 ], [ %207, %209 ], [ %207, %204 ]
  %228 = trunc nuw i8 %227 to i1
  br i1 %228, label %229, label %233

229:                                              ; preds = %226
  %230 = load double, ptr @_ZN11alglib_implL27nlcaul_defaultinequalitylagE, align 8, !tbaa !39
  %231 = load ptr, ptr %198, align 8, !tbaa !34
  %.idx1218 = shl nsw i64 %.311701351, 4
  %232 = getelementptr inbounds i8, ptr %231, i64 %.idx1218
  store double %230, ptr %232, align 8, !tbaa !39
  br label %233

233:                                              ; preds = %229, %226
  %234 = load ptr, ptr %195, align 8, !tbaa !34
  %235 = getelementptr inbounds i8, ptr %234, i64 %.311701351
  %236 = load i8, ptr %235, align 1, !tbaa !36, !range !37, !noundef !38
  %237 = trunc nuw i8 %236 to i1
  br i1 %237, label %238, label %243

238:                                              ; preds = %233
  %239 = load double, ptr @_ZN11alglib_implL27nlcaul_defaultinequalitylagE, align 8, !tbaa !39
  %240 = shl nuw nsw i64 %.311701351, 1
  br label %.sink.split1476

.sink.split1476:                                  ; preds = %222, %238
  %.sink1481 = phi i64 [ %240, %238 ], [ %224, %222 ]
  %.sink1477 = phi double [ %239, %238 ], [ 0.000000e+00, %222 ]
  %.sink1479 = load ptr, ptr %198, align 8, !tbaa !34
  %241 = or disjoint i64 %.sink1481, 1
  %242 = getelementptr inbounds double, ptr %.sink1479, i64 %241
  store double %.sink1477, ptr %242, align 8, !tbaa !39
  br label %243

243:                                              ; preds = %.sink.split1476, %233
  %244 = add nuw nsw i64 %.311701351, 1
  %exitcond1388.not = icmp eq i64 %244, %105
  br i1 %exitcond1388.not, label %.preheader, label %204, !llvm.loop !49

245:                                              ; preds = %.lr.ph1356, %287
  %.411711355 = phi i64 [ 0, %.lr.ph1356 ], [ %288, %287 ]
  %246 = load ptr, ptr %199, align 8, !tbaa !34
  %247 = getelementptr inbounds i8, ptr %246, i64 %.411711355
  %248 = load i8, ptr %247, align 1, !tbaa !36, !range !37, !noundef !38
  %249 = trunc nuw i8 %248 to i1
  br i1 %249, label %250, label %268

250:                                              ; preds = %245
  %251 = load ptr, ptr %200, align 8, !tbaa !34
  %252 = getelementptr inbounds i8, ptr %251, i64 %.411711355
  %253 = load i8, ptr %252, align 1, !tbaa !36, !range !37, !noundef !38
  %254 = trunc nuw i8 %253 to i1
  br i1 %254, label %255, label %268

255:                                              ; preds = %250
  %256 = load ptr, ptr %201, align 8, !tbaa !34
  %257 = getelementptr inbounds double, ptr %256, i64 %.411711355
  %258 = load double, ptr %257, align 8, !tbaa !39
  %259 = load ptr, ptr %202, align 8, !tbaa !34
  %260 = getelementptr inbounds double, ptr %259, i64 %.411711355
  %261 = load double, ptr %260, align 8, !tbaa !39
  %262 = tail call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %258, double noundef %261)
  br i1 %262, label %263, label %._crit_edge1420

._crit_edge1420:                                  ; preds = %255
  %.pre1421 = load ptr, ptr %199, align 8, !tbaa !34
  %.phi.trans.insert1422 = getelementptr inbounds i8, ptr %.pre1421, i64 %.411711355
  %.pre1423 = load i8, ptr %.phi.trans.insert1422, align 1, !tbaa !36, !range !37
  br label %268

263:                                              ; preds = %255
  %264 = load ptr, ptr %203, align 8, !tbaa !34
  %265 = add i64 %.411711355, %105
  %266 = shl i64 %265, 1
  %267 = getelementptr inbounds double, ptr %264, i64 %266
  store double 0.000000e+00, ptr %267, align 8, !tbaa !39
  br label %.sink.split1482

268:                                              ; preds = %._crit_edge1420, %250, %245
  %269 = phi i8 [ %.pre1423, %._crit_edge1420 ], [ %248, %250 ], [ %248, %245 ]
  %270 = trunc nuw i8 %269 to i1
  br i1 %270, label %271, label %276

271:                                              ; preds = %268
  %272 = load double, ptr @_ZN11alglib_implL27nlcaul_defaultinequalitylagE, align 8, !tbaa !39
  %273 = load ptr, ptr %203, align 8, !tbaa !34
  %274 = add i64 %.411711355, %105
  %.idx = shl i64 %274, 4
  %275 = getelementptr inbounds i8, ptr %273, i64 %.idx
  store double %272, ptr %275, align 8, !tbaa !39
  br label %276

276:                                              ; preds = %271, %268
  %277 = load ptr, ptr %200, align 8, !tbaa !34
  %278 = getelementptr inbounds i8, ptr %277, i64 %.411711355
  %279 = load i8, ptr %278, align 1, !tbaa !36, !range !37, !noundef !38
  %280 = trunc nuw i8 %279 to i1
  br i1 %280, label %281, label %287

281:                                              ; preds = %276
  %282 = load double, ptr @_ZN11alglib_implL27nlcaul_defaultinequalitylagE, align 8, !tbaa !39
  %283 = add i64 %.411711355, %105
  %284 = shl i64 %283, 1
  br label %.sink.split1482

.sink.split1482:                                  ; preds = %263, %281
  %.sink1487 = phi i64 [ %284, %281 ], [ %266, %263 ]
  %.sink1483 = phi double [ %282, %281 ], [ 0.000000e+00, %263 ]
  %.sink1485 = load ptr, ptr %203, align 8, !tbaa !34
  %285 = or disjoint i64 %.sink1487, 1
  %286 = getelementptr inbounds double, ptr %.sink1485, i64 %285
  store double %.sink1483, ptr %286, align 8, !tbaa !39
  br label %287

287:                                              ; preds = %.sink.split1482, %276
  %288 = add nuw nsw i64 %.411711355, 1
  %exitcond1389.not = icmp eq i64 %288, %107
  br i1 %exitcond1389.not, label %._crit_edge1357, label %245, !llvm.loop !50

._crit_edge1357:                                  ; preds = %287, %.preheader
  %.41171.lcssa = phi i64 [ 0, %.preheader ], [ %107, %287 ]
  %289 = add nsw i64 %107, 1
  %290 = getelementptr inbounds i8, ptr %0, i64 1976
  tail call void @_ZN11alglib_impl14vfjallocsparseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %103, i64 noundef %289, ptr noundef nonnull %290, ptr noundef %3)
  %291 = getelementptr inbounds i8, ptr %0, i64 3776
  tail call void @_ZN11alglib_impl14vfjallocsparseEllPNS_11varsfuncjacEPNS_8ae_stateE(i64 noundef %103, i64 noundef %289, ptr noundef nonnull %291, ptr noundef %3)
  %292 = getelementptr inbounds i8, ptr %0, i64 5728
  %293 = getelementptr inbounds i8, ptr %0, i64 2000
  tail call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %103, ptr noundef nonnull %292, ptr noundef nonnull %293, ptr noundef %3)
  %294 = getelementptr inbounds i8, ptr %0, i64 3800
  tail call void @_ZN11alglib_implL26nlcaul_aulsendvirtualpointEPNS_11minaulstateEPKNS_9ae_vectorEPS2_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %293, ptr noundef nonnull %294, ptr noundef %3)
  store i8 1, ptr %119, align 8, !tbaa !43
  br label %1432

295:                                              ; preds = %98
  %296 = getelementptr inbounds i8, ptr %0, i64 1960
  store i8 0, ptr %296, align 8, !tbaa !43
  %297 = getelementptr inbounds i8, ptr %0, i64 1976
  %298 = getelementptr inbounds i8, ptr %0, i64 3776
  %299 = tail call noundef zeroext i1 @_ZN11alglib_implL20nlcaul_aulretrievesjEPNS_11minaulstateEPNS_11varsfuncjacES3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %297, ptr noundef nonnull %298, ptr noundef %3)
  br i1 %299, label %302, label %300

300:                                              ; preds = %295
  %301 = getelementptr inbounds i8, ptr %0, i64 31128
  store i64 -8, ptr %301, align 8, !tbaa !51
  br label %1528

302:                                              ; preds = %295
  %303 = getelementptr inbounds i8, ptr %0, i64 3800
  tail call void @_ZN11alglib_implL23nlcaul_aulsendtruepointEPNS_11minaulstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %303, ptr noundef %3)
  %304 = getelementptr inbounds i8, ptr %0, i64 3920
  %305 = load ptr, ptr %304, align 8, !tbaa !34
  %306 = load double, ptr %305, align 8, !tbaa !39
  %307 = getelementptr inbounds i8, ptr %0, i64 5976
  %308 = load ptr, ptr %307, align 8, !tbaa !34
  %309 = load double, ptr %308, align 8, !tbaa !39
  %310 = fmul double %306, %309
  %311 = getelementptr inbounds i8, ptr %0, i64 1952
  store double %310, ptr %311, align 8, !tbaa !52
  %312 = getelementptr inbounds i8, ptr %0, i64 1962
  store i8 1, ptr %312, align 2, !tbaa !45
  br label %1432

313:                                              ; preds = %98
  %314 = getelementptr inbounds i8, ptr %0, i64 1962
  store i8 0, ptr %314, align 2, !tbaa !45
  %315 = getelementptr inbounds i8, ptr %0, i64 472
  %316 = getelementptr inbounds i8, ptr %0, i64 840
  %317 = getelementptr inbounds i8, ptr %0, i64 904
  %318 = getelementptr inbounds i8, ptr %0, i64 1352
  %319 = getelementptr inbounds i8, ptr %0, i64 3776
  %320 = getelementptr inbounds i8, ptr %0, i64 3800
  %321 = getelementptr inbounds i8, ptr %0, i64 31160
  %322 = getelementptr inbounds i8, ptr %0, i64 31168
  tail call void @_ZN11alglib_impl17checklc2violationEPKNS_12sparsematrixEPKNS_9ae_vectorES5_S5_lS5_PdPlPNS_8ae_stateE(ptr noundef nonnull %315, ptr noundef nonnull %316, ptr noundef nonnull %317, ptr noundef nonnull %318, i64 noundef %.01202, ptr noundef nonnull %320, ptr noundef nonnull %321, ptr noundef nonnull %322, ptr noundef %3)
  %323 = getelementptr inbounds i8, ptr %0, i64 3864
  %324 = getelementptr inbounds i8, ptr %0, i64 5920
  %325 = getelementptr inbounds i8, ptr %0, i64 1096
  %326 = getelementptr inbounds i8, ptr %0, i64 1160
  %327 = getelementptr inbounds i8, ptr %0, i64 31176
  %328 = getelementptr inbounds i8, ptr %0, i64 31184
  tail call void @_ZN11alglib_impl28unscaleandchecknlc2violationEPKNS_9ae_vectorES2_S2_S2_lPdPlPNS_8ae_stateE(ptr noundef nonnull %323, ptr noundef nonnull %324, ptr noundef nonnull %325, ptr noundef nonnull %326, i64 noundef %.01200, ptr noundef nonnull %327, ptr noundef nonnull %328, ptr noundef %3)
  %329 = trunc nuw i8 %.01196 to i1
  br i1 %329, label %330, label %338

330:                                              ; preds = %313
  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.1250)
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.212)
  %331 = trunc i64 %.01204 to i32
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.708, i32 noundef %331)
  %332 = getelementptr inbounds i8, ptr %0, i64 8
  %333 = load i64, ptr %332, align 8, !tbaa !41
  %334 = trunc i64 %333 to i32
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1119, i32 noundef %334)
  %335 = getelementptr inbounds i8, ptr %0, i64 16
  %336 = load i64, ptr %335, align 8, !tbaa !42
  %337 = trunc i64 %336 to i32
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1120, i32 noundef %337)
  br label %338

338:                                              ; preds = %330, %313
  %339 = getelementptr inbounds i8, ptr %0, i64 29288
  %340 = getelementptr inbounds i8, ptr %0, i64 1968
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %339, i8 0, i64 16, i1 false)
  store double 5.000000e+02, ptr %340, align 8, !tbaa !53
  %341 = getelementptr inbounds i8, ptr %0, i64 22296
  %342 = load i64, ptr @_ZN11alglib_implL18nlcaul_xbfgsmemlenE, align 8, !tbaa !35
  %343 = tail call noundef i64 @_ZN11alglib_impl9ae_minintEllPNS_8ae_stateE(i64 noundef %.01204, i64 noundef %342, ptr noundef %3)
  %344 = getelementptr inbounds i8, ptr %0, i64 1416
  %345 = tail call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %344, ptr noundef %3)
  %346 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %3)
  %347 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %345, double noundef %346, ptr noundef %3)
  %348 = load double, ptr @_ZN11alglib_implL19nlcaul_xbfgsmaxhessE, align 8, !tbaa !39
  %349 = load double, ptr %340, align 8, !tbaa !53
  %350 = fadd double %349, 1.000000e+00
  %351 = fmul double %348, %350
  tail call void @_ZN11alglib_impl18hessianinitlowrankEPNS_12xbfgshessianEllddPNS_8ae_stateE(ptr noundef nonnull %341, i64 noundef %.01204, i64 noundef %343, double noundef %347, double noundef %351, ptr noundef %3)
  %352 = getelementptr inbounds i8, ptr %0, i64 25656
  %353 = tail call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %344, ptr noundef %3)
  %354 = tail call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %3)
  %355 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %353, double noundef %354, ptr noundef %3)
  %356 = load double, ptr @_ZN11alglib_implL19nlcaul_xbfgsmaxhessE, align 8, !tbaa !39
  tail call void @_ZN11alglib_impl18hessianinitlowrankEPNS_12xbfgshessianEllddPNS_8ae_stateE(ptr noundef nonnull %352, i64 noundef %.01204, i64 noundef 1, double noundef %355, double noundef %356, ptr noundef %3)
  %357 = getelementptr inbounds i8, ptr %0, i64 1976
  %358 = getelementptr inbounds i8, ptr %0, i64 3176
  tail call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %357, ptr noundef nonnull %358, ptr noundef %3)
  %359 = getelementptr inbounds i8, ptr %0, i64 4976
  tail call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %319, ptr noundef nonnull %359, ptr noundef %3)
  %360 = getelementptr inbounds i8, ptr %0, i64 5576
  store double 1.000000e+300, ptr %360, align 8, !tbaa !54
  %361 = getelementptr inbounds i8, ptr %0, i64 5584
  store i64 -1, ptr %361, align 8, !tbaa !55
  %362 = getelementptr inbounds i8, ptr %0, i64 5592
  store i64 0, ptr %362, align 8, !tbaa !56
  %363 = getelementptr inbounds i8, ptr %0, i64 1448
  %364 = load i64, ptr %363, align 8, !tbaa !57
  %365 = getelementptr inbounds i8, ptr %0, i64 6048
  tail call void @_ZN11alglib_implL25nlcaul_preconditionerinitEPKNS_11minaulstateElPNS_20minaulpreconditionerEPNS_8ae_stateE(ptr noundef nonnull %0, i64 noundef %364, ptr noundef nonnull %365, ptr noundef %3)
  br i1 %329, label %367, label %375

366:                                              ; preds = %943
  br i1 %.pre-phi14261451, label %367, label %375

367:                                              ; preds = %338, %._crit_edge1292, %366
  %.11450 = phi double [ %1017, %._crit_edge1292 ], [ %.0, %366 ], [ 1.000000e+50, %338 ]
  %.110781448 = phi double [ %1016, %._crit_edge1292 ], [ %.01077, %366 ], [ 1.000000e+50, %338 ]
  %.110821446 = phi double [ %1015, %._crit_edge1292 ], [ %.01081, %366 ], [ 1.000000e+50, %338 ]
  %.110951440 = phi double [ %.410981461, %._crit_edge1292 ], [ %.410981461, %366 ], [ %.01094, %338 ]
  %.111041438 = phi i8 [ %.71254, %._crit_edge1292 ], [ %.6.mux, %366 ], [ %.01103, %338 ]
  %.111291436 = phi i64 [ %.71135.lcssa, %._crit_edge1292 ], [ %.611341459, %366 ], [ %.01128, %338 ]
  %.111381434 = phi i64 [ %.81145.lcssa, %._crit_edge1292 ], [ %.711441457, %366 ], [ %.01137, %338 ]
  %.111481432 = phi i64 [ %.81155.lcssa, %._crit_edge1292 ], [ %.711541455, %366 ], [ %.01147, %338 ]
  %.111791430 = phi double [ %.51183.lcssa, %._crit_edge1292 ], [ %.01178, %366 ], [ %.01178, %338 ]
  %368 = phi <2 x double> [ %1407, %._crit_edge1292 ], [ %903, %366 ], [ %101, %338 ]
  %369 = getelementptr inbounds i8, ptr %0, i64 31120
  %370 = load i64, ptr %369, align 8, !tbaa !58
  %371 = trunc i64 %370 to i32
  %372 = getelementptr inbounds i8, ptr %0, i64 29280
  %373 = load i64, ptr %372, align 8, !tbaa !59
  %374 = trunc i64 %373 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1251, i32 noundef %371, i32 noundef %374)
  br label %375

375:                                              ; preds = %338, %._crit_edge1292, %367, %366
  %.11449 = phi double [ %1017, %._crit_edge1292 ], [ %.11450, %367 ], [ %.0, %366 ], [ 1.000000e+50, %338 ]
  %.110781447 = phi double [ %1016, %._crit_edge1292 ], [ %.110781448, %367 ], [ %.01077, %366 ], [ 1.000000e+50, %338 ]
  %.110821445 = phi double [ %1015, %._crit_edge1292 ], [ %.110821446, %367 ], [ %.01081, %366 ], [ 1.000000e+50, %338 ]
  %.110951439 = phi double [ %.410981461, %._crit_edge1292 ], [ %.110951440, %367 ], [ %.410981461, %366 ], [ %.01094, %338 ]
  %.111041437 = phi i8 [ %.71254, %._crit_edge1292 ], [ %.111041438, %367 ], [ %.6.mux, %366 ], [ %.01103, %338 ]
  %.111291435 = phi i64 [ %.71135.lcssa, %._crit_edge1292 ], [ %.111291436, %367 ], [ %.611341459, %366 ], [ %.01128, %338 ]
  %.111381433 = phi i64 [ %.81145.lcssa, %._crit_edge1292 ], [ %.111381434, %367 ], [ %.711441457, %366 ], [ %.01137, %338 ]
  %.111481431 = phi i64 [ %.81155.lcssa, %._crit_edge1292 ], [ %.111481432, %367 ], [ %.711541455, %366 ], [ %.01147, %338 ]
  %.111791429 = phi double [ %.51183.lcssa, %._crit_edge1292 ], [ %.111791430, %367 ], [ %.01178, %366 ], [ %.01178, %338 ]
  %.pre-phi1427 = phi i1 [ false, %._crit_edge1292 ], [ true, %367 ], [ false, %366 ], [ false, %338 ]
  %376 = phi <2 x double> [ %1407, %._crit_edge1292 ], [ %368, %367 ], [ %903, %366 ], [ %101, %338 ]
  %.not12321313 = icmp slt i64 %.01200, 0
  br i1 %.not12321313, label %566, label %.lr.ph1316

.lr.ph1316:                                       ; preds = %375
  %377 = getelementptr inbounds i8, ptr %0, i64 2392
  %378 = getelementptr inbounds i8, ptr %0, i64 2264
  %379 = getelementptr inbounds i8, ptr %0, i64 5976
  %380 = getelementptr inbounds i8, ptr %0, i64 2120
  %381 = getelementptr inbounds i8, ptr %0, i64 3920
  %382 = getelementptr inbounds i8, ptr %0, i64 4192
  %383 = getelementptr inbounds i8, ptr %0, i64 4064
  %384 = getelementptr inbounds i8, ptr %0, i64 1280
  %385 = getelementptr inbounds i8, ptr %0, i64 1152
  %386 = getelementptr inbounds i8, ptr %0, i64 1344
  %387 = getelementptr inbounds i8, ptr %0, i64 1216
  %388 = getelementptr inbounds i8, ptr %0, i64 5720
  %389 = shl nsw i64 %.01204, 1
  %390 = getelementptr inbounds i8, ptr %0, i64 5600
  %391 = add nsw i64 %.01200, %.01202
  %392 = shl nsw i64 %391, 1
  %393 = getelementptr inbounds i8, ptr %0, i64 5664
  %394 = getelementptr inbounds i8, ptr %0, i64 6040
  %395 = add nuw i64 %.01200, 1
  br label %396

396:                                              ; preds = %.lr.ph1316, %565
  %.511721314 = phi i64 [ 0, %.lr.ph1316 ], [ %400, %565 ]
  %397 = load ptr, ptr %377, align 8, !tbaa !34
  %398 = getelementptr inbounds i64, ptr %397, i64 %.511721314
  %399 = load i64, ptr %398, align 8, !tbaa !35
  %400 = add nuw nsw i64 %.511721314, 1
  %401 = getelementptr inbounds i64, ptr %397, i64 %400
  %402 = load i64, ptr %401, align 8, !tbaa !35
  %.not1235.not1294 = icmp slt i64 %399, %402
  br i1 %.not1235.not1294, label %.lr.ph1298, label %._crit_edge1299

.lr.ph1298:                                       ; preds = %396, %.lr.ph1298
  %.211231296 = phi double [ %407, %.lr.ph1298 ], [ 0.000000e+00, %396 ]
  %.211591295 = phi i64 [ %408, %.lr.ph1298 ], [ %399, %396 ]
  %403 = load ptr, ptr %378, align 8, !tbaa !34
  %404 = getelementptr inbounds double, ptr %403, i64 %.211591295
  %405 = load double, ptr %404, align 8, !tbaa !39
  %406 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %405, ptr noundef %3)
  %407 = fadd double %.211231296, %406
  %408 = add i64 %.211591295, 1
  %exitcond1380.not = icmp eq i64 %408, %402
  br i1 %exitcond1380.not, label %._crit_edge1299, label %.lr.ph1298, !llvm.loop !60

._crit_edge1299:                                  ; preds = %.lr.ph1298, %396
  %.21159.lcssa = phi i64 [ %399, %396 ], [ %402, %.lr.ph1298 ]
  %.21123.lcssa = phi double [ 0.000000e+00, %396 ], [ %407, %.lr.ph1298 ]
  %409 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %.21123.lcssa, ptr noundef %3)
  %410 = load ptr, ptr %379, align 8, !tbaa !34
  %411 = getelementptr inbounds double, ptr %410, i64 %.511721314
  %412 = load double, ptr %411, align 8, !tbaa !39
  %413 = load double, ptr @_ZN11alglib_implL18nlcaul_aulbigscaleE, align 8, !tbaa !39
  %414 = call noundef zeroext i1 @_ZN11alglib_impl16ae_fp_greater_eqEdd(double noundef %409, double noundef %413)
  br i1 %414, label %415, label %421

415:                                              ; preds = %._crit_edge1299
  %416 = fdiv double 1.000000e+00, %409
  %417 = load ptr, ptr %379, align 8, !tbaa !34
  %418 = getelementptr inbounds double, ptr %417, i64 %.511721314
  %419 = load double, ptr %418, align 8, !tbaa !39
  %420 = fmul double %409, %419
  br label %421

421:                                              ; preds = %415, %._crit_edge1299
  %.21117 = phi double [ %420, %415 ], [ %412, %._crit_edge1299 ]
  %.21111 = phi double [ %416, %415 ], [ 1.000000e+00, %._crit_edge1299 ]
  %422 = load double, ptr @_ZN11alglib_implL20nlcaul_aulsmallscaleE, align 8, !tbaa !39
  %423 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %409, double noundef %422)
  br i1 %423, label %424, label %445

424:                                              ; preds = %421
  %425 = load ptr, ptr %379, align 8, !tbaa !34
  %426 = getelementptr inbounds double, ptr %425, i64 %.511721314
  %427 = load double, ptr %426, align 8, !tbaa !39
  %428 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %427, double noundef 1.000000e+00)
  br i1 %428, label %429, label %445

429:                                              ; preds = %424
  %430 = load ptr, ptr %379, align 8, !tbaa !34
  %431 = getelementptr inbounds double, ptr %430, i64 %.511721314
  %432 = load double, ptr %431, align 8, !tbaa !39
  %433 = fmul double %409, %432
  %434 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %433, double noundef 1.000000e+00)
  br i1 %434, label %435, label %441

435:                                              ; preds = %429
  %436 = fdiv double 1.000000e+00, %409
  %437 = load ptr, ptr %379, align 8, !tbaa !34
  %438 = getelementptr inbounds double, ptr %437, i64 %.511721314
  %439 = load double, ptr %438, align 8, !tbaa !39
  %440 = fmul double %409, %439
  br label %445

441:                                              ; preds = %429
  %442 = load ptr, ptr %379, align 8, !tbaa !34
  %443 = getelementptr inbounds double, ptr %442, i64 %.511721314
  %444 = load double, ptr %443, align 8, !tbaa !39
  br label %445

445:                                              ; preds = %435, %441, %424, %421
  %.31118 = phi double [ %440, %435 ], [ 1.000000e+00, %441 ], [ %.21117, %424 ], [ %.21117, %421 ]
  %.31112 = phi double [ %436, %435 ], [ %444, %441 ], [ %.21111, %424 ], [ %.21111, %421 ]
  %446 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %.31112, double noundef 1.000000e+00)
  br i1 %446, label %447, label %565

447:                                              ; preds = %445
  %448 = load ptr, ptr %380, align 8, !tbaa !34
  %449 = getelementptr inbounds double, ptr %448, i64 %.511721314
  %450 = load double, ptr %449, align 8, !tbaa !39
  %451 = fmul double %.31112, %450
  store double %451, ptr %449, align 8, !tbaa !39
  %452 = load ptr, ptr %381, align 8, !tbaa !34
  %453 = getelementptr inbounds double, ptr %452, i64 %.511721314
  %454 = load double, ptr %453, align 8, !tbaa !39
  %455 = fmul double %.31112, %454
  store double %455, ptr %453, align 8, !tbaa !39
  %456 = load ptr, ptr %377, align 8, !tbaa !34
  %457 = getelementptr inbounds i64, ptr %456, i64 %.511721314
  %458 = load i64, ptr %457, align 8, !tbaa !35
  %459 = getelementptr inbounds i64, ptr %456, i64 %400
  %460 = load i64, ptr %459, align 8, !tbaa !35
  %.not1236.not1302 = icmp slt i64 %458, %460
  br i1 %.not1236.not1302, label %.lr.ph1305.preheader, label %._crit_edge1306

.lr.ph1305.preheader:                             ; preds = %447
  %461 = sub i64 %460, %458
  %xtraiter1515 = and i64 %461, 3
  %lcmp.mod1516.not = icmp eq i64 %xtraiter1515, 0
  br i1 %lcmp.mod1516.not, label %.lr.ph1305.prol.loopexit, label %.lr.ph1305.prol

.lr.ph1305.prol:                                  ; preds = %.lr.ph1305.preheader, %.lr.ph1305.prol
  %.311601303.prol = phi i64 [ %466, %.lr.ph1305.prol ], [ %458, %.lr.ph1305.preheader ]
  %prol.iter1517 = phi i64 [ %prol.iter1517.next, %.lr.ph1305.prol ], [ 0, %.lr.ph1305.preheader ]
  %462 = load ptr, ptr %378, align 8, !tbaa !34
  %463 = getelementptr inbounds double, ptr %462, i64 %.311601303.prol
  %464 = load double, ptr %463, align 8, !tbaa !39
  %465 = fmul double %.31112, %464
  store double %465, ptr %463, align 8, !tbaa !39
  %466 = add nsw i64 %.311601303.prol, 1
  %prol.iter1517.next = add i64 %prol.iter1517, 1
  %prol.iter1517.cmp.not = icmp eq i64 %prol.iter1517.next, %xtraiter1515
  br i1 %prol.iter1517.cmp.not, label %.lr.ph1305.prol.loopexit, label %.lr.ph1305.prol, !llvm.loop !61

.lr.ph1305.prol.loopexit:                         ; preds = %.lr.ph1305.prol, %.lr.ph1305.preheader
  %.311601303.unr = phi i64 [ %458, %.lr.ph1305.preheader ], [ %466, %.lr.ph1305.prol ]
  %467 = sub i64 %458, %460
  %468 = icmp ugt i64 %467, -4
  br i1 %468, label %._crit_edge1306, label %.lr.ph1305

.lr.ph1305:                                       ; preds = %.lr.ph1305.prol.loopexit, %.lr.ph1305
  %.311601303 = phi i64 [ %488, %.lr.ph1305 ], [ %.311601303.unr, %.lr.ph1305.prol.loopexit ]
  %469 = load ptr, ptr %378, align 8, !tbaa !34
  %470 = getelementptr inbounds double, ptr %469, i64 %.311601303
  %471 = load double, ptr %470, align 8, !tbaa !39
  %472 = fmul double %.31112, %471
  store double %472, ptr %470, align 8, !tbaa !39
  %473 = load ptr, ptr %378, align 8, !tbaa !34
  %474 = getelementptr double, ptr %473, i64 %.311601303
  %475 = getelementptr i8, ptr %474, i64 8
  %476 = load double, ptr %475, align 8, !tbaa !39
  %477 = fmul double %.31112, %476
  store double %477, ptr %475, align 8, !tbaa !39
  %478 = load ptr, ptr %378, align 8, !tbaa !34
  %479 = getelementptr double, ptr %478, i64 %.311601303
  %480 = getelementptr i8, ptr %479, i64 16
  %481 = load double, ptr %480, align 8, !tbaa !39
  %482 = fmul double %.31112, %481
  store double %482, ptr %480, align 8, !tbaa !39
  %483 = load ptr, ptr %378, align 8, !tbaa !34
  %484 = getelementptr double, ptr %483, i64 %.311601303
  %485 = getelementptr i8, ptr %484, i64 24
  %486 = load double, ptr %485, align 8, !tbaa !39
  %487 = fmul double %.31112, %486
  store double %487, ptr %485, align 8, !tbaa !39
  %488 = add nsw i64 %.311601303, 4
  %exitcond1381.not.3 = icmp eq i64 %488, %460
  br i1 %exitcond1381.not.3, label %._crit_edge1306, label %.lr.ph1305, !llvm.loop !63

._crit_edge1306:                                  ; preds = %.lr.ph1305.prol.loopexit, %.lr.ph1305, %447
  %489 = load ptr, ptr %382, align 8, !tbaa !34
  %490 = getelementptr inbounds i64, ptr %489, i64 %.511721314
  %491 = load i64, ptr %490, align 8, !tbaa !35
  %492 = getelementptr inbounds i64, ptr %489, i64 %400
  %493 = load i64, ptr %492, align 8, !tbaa !35
  %.not1237.not1307 = icmp slt i64 %491, %493
  br i1 %.not1237.not1307, label %.lr.ph1310.preheader, label %._crit_edge1311

.lr.ph1310.preheader:                             ; preds = %._crit_edge1306
  %494 = sub i64 %493, %491
  %xtraiter1518 = and i64 %494, 3
  %lcmp.mod1519.not = icmp eq i64 %xtraiter1518, 0
  br i1 %lcmp.mod1519.not, label %.lr.ph1310.prol.loopexit, label %.lr.ph1310.prol

.lr.ph1310.prol:                                  ; preds = %.lr.ph1310.preheader, %.lr.ph1310.prol
  %.411611308.prol = phi i64 [ %499, %.lr.ph1310.prol ], [ %491, %.lr.ph1310.preheader ]
  %prol.iter1520 = phi i64 [ %prol.iter1520.next, %.lr.ph1310.prol ], [ 0, %.lr.ph1310.preheader ]
  %495 = load ptr, ptr %383, align 8, !tbaa !34
  %496 = getelementptr inbounds double, ptr %495, i64 %.411611308.prol
  %497 = load double, ptr %496, align 8, !tbaa !39
  %498 = fmul double %.31112, %497
  store double %498, ptr %496, align 8, !tbaa !39
  %499 = add nsw i64 %.411611308.prol, 1
  %prol.iter1520.next = add i64 %prol.iter1520, 1
  %prol.iter1520.cmp.not = icmp eq i64 %prol.iter1520.next, %xtraiter1518
  br i1 %prol.iter1520.cmp.not, label %.lr.ph1310.prol.loopexit, label %.lr.ph1310.prol, !llvm.loop !64

.lr.ph1310.prol.loopexit:                         ; preds = %.lr.ph1310.prol, %.lr.ph1310.preheader
  %.411611308.unr = phi i64 [ %491, %.lr.ph1310.preheader ], [ %499, %.lr.ph1310.prol ]
  %500 = sub i64 %491, %493
  %501 = icmp ugt i64 %500, -4
  br i1 %501, label %._crit_edge1311, label %.lr.ph1310

.lr.ph1310:                                       ; preds = %.lr.ph1310.prol.loopexit, %.lr.ph1310
  %.411611308 = phi i64 [ %521, %.lr.ph1310 ], [ %.411611308.unr, %.lr.ph1310.prol.loopexit ]
  %502 = load ptr, ptr %383, align 8, !tbaa !34
  %503 = getelementptr inbounds double, ptr %502, i64 %.411611308
  %504 = load double, ptr %503, align 8, !tbaa !39
  %505 = fmul double %.31112, %504
  store double %505, ptr %503, align 8, !tbaa !39
  %506 = load ptr, ptr %383, align 8, !tbaa !34
  %507 = getelementptr double, ptr %506, i64 %.411611308
  %508 = getelementptr i8, ptr %507, i64 8
  %509 = load double, ptr %508, align 8, !tbaa !39
  %510 = fmul double %.31112, %509
  store double %510, ptr %508, align 8, !tbaa !39
  %511 = load ptr, ptr %383, align 8, !tbaa !34
  %512 = getelementptr double, ptr %511, i64 %.411611308
  %513 = getelementptr i8, ptr %512, i64 16
  %514 = load double, ptr %513, align 8, !tbaa !39
  %515 = fmul double %.31112, %514
  store double %515, ptr %513, align 8, !tbaa !39
  %516 = load ptr, ptr %383, align 8, !tbaa !34
  %517 = getelementptr double, ptr %516, i64 %.411611308
  %518 = getelementptr i8, ptr %517, i64 24
  %519 = load double, ptr %518, align 8, !tbaa !39
  %520 = fmul double %.31112, %519
  store double %520, ptr %518, align 8, !tbaa !39
  %521 = add nsw i64 %.411611308, 4
  %exitcond1382.not.3 = icmp eq i64 %521, %493
  br i1 %exitcond1382.not.3, label %._crit_edge1311, label %.lr.ph1310, !llvm.loop !65

._crit_edge1311:                                  ; preds = %.lr.ph1310.prol.loopexit, %.lr.ph1310, %._crit_edge1306
  %.41161.lcssa = phi i64 [ %491, %._crit_edge1306 ], [ %493, %.lr.ph1310 ], [ %493, %.lr.ph1310.prol.loopexit ]
  %522 = icmp eq i64 %.511721314, 0
  br i1 %522, label %523, label %525

523:                                              ; preds = %._crit_edge1311
  call void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %389, double noundef %.31112, ptr noundef nonnull %390, ptr noundef %3)
  call void @_ZN11alglib_impl5rmulvEldPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %392, double noundef %.31112, ptr noundef nonnull %393, ptr noundef %3)
  br i1 %.pre-phi1427, label %524, label %558

524:                                              ; preds = %523
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1252, double noundef %.31112)
  br label %558

525:                                              ; preds = %._crit_edge1311
  %526 = load ptr, ptr %384, align 8, !tbaa !34
  %527 = add nsw i64 %.511721314, -1
  %528 = getelementptr inbounds i8, ptr %526, i64 %527
  %529 = load i8, ptr %528, align 1, !tbaa !36, !range !37, !noundef !38
  %530 = trunc nuw i8 %529 to i1
  br i1 %530, label %531, label %536

531:                                              ; preds = %525
  %532 = load ptr, ptr %385, align 8, !tbaa !34
  %533 = getelementptr inbounds double, ptr %532, i64 %527
  %534 = load double, ptr %533, align 8, !tbaa !39
  %535 = fmul double %.31112, %534
  store double %535, ptr %533, align 8, !tbaa !39
  br label %536

536:                                              ; preds = %531, %525
  %537 = load ptr, ptr %386, align 8, !tbaa !34
  %538 = getelementptr inbounds i8, ptr %537, i64 %527
  %539 = load i8, ptr %538, align 1, !tbaa !36, !range !37, !noundef !38
  %540 = trunc nuw i8 %539 to i1
  br i1 %540, label %541, label %546

541:                                              ; preds = %536
  %542 = load ptr, ptr %387, align 8, !tbaa !34
  %543 = getelementptr inbounds double, ptr %542, i64 %527
  %544 = load double, ptr %543, align 8, !tbaa !39
  %545 = fmul double %.31112, %544
  store double %545, ptr %543, align 8, !tbaa !39
  br label %546

546:                                              ; preds = %541, %536
  %547 = load ptr, ptr %388, align 8, !tbaa !34
  %548 = add nsw i64 %527, %.01202
  %549 = shl nsw i64 %548, 1
  %550 = getelementptr inbounds double, ptr %547, i64 %549
  %551 = load double, ptr %550, align 8, !tbaa !39
  %552 = fdiv double %551, %.31112
  store double %552, ptr %550, align 8, !tbaa !39
  %553 = load ptr, ptr %388, align 8, !tbaa !34
  %554 = or disjoint i64 %549, 1
  %555 = getelementptr inbounds double, ptr %553, i64 %554
  %556 = load double, ptr %555, align 8, !tbaa !39
  %557 = fdiv double %556, %.31112
  store double %557, ptr %555, align 8, !tbaa !39
  br label %558

558:                                              ; preds = %523, %524, %546
  %559 = load ptr, ptr %379, align 8, !tbaa !34
  %560 = getelementptr inbounds double, ptr %559, i64 %.511721314
  store double %.31118, ptr %560, align 8, !tbaa !39
  %561 = load ptr, ptr %394, align 8, !tbaa !34
  %562 = getelementptr inbounds double, ptr %561, i64 %.511721314
  %563 = load double, ptr %562, align 8, !tbaa !39
  %564 = fmul double %.31112, %563
  store double %564, ptr %562, align 8, !tbaa !39
  br label %565

565:                                              ; preds = %445, %558
  %.51162 = phi i64 [ %.41161.lcssa, %558 ], [ %.21159.lcssa, %445 ]
  %.31150 = phi i64 [ %491, %558 ], [ %399, %445 ]
  %.31140.in = phi i64 [ %493, %558 ], [ %402, %445 ]
  %exitcond1383.not = icmp eq i64 %.511721314, %.01200
  br i1 %exitcond1383.not, label %._crit_edge1317, label %396, !llvm.loop !66

._crit_edge1317:                                  ; preds = %565
  %.31140.le = add nsw i64 %.31140.in, -1
  br label %566

566:                                              ; preds = %._crit_edge1317, %375
  %.51172.lcssa = phi i64 [ %395, %._crit_edge1317 ], [ 0, %375 ]
  %.11158.lcssa = phi i64 [ %.51162, %._crit_edge1317 ], [ %.01157, %375 ]
  %.21149.lcssa = phi i64 [ %.31150, %._crit_edge1317 ], [ %.111481431, %375 ]
  %.21139.lcssa = phi i64 [ %.31140.le, %._crit_edge1317 ], [ %.111381433, %375 ]
  %.11122.lcssa = phi double [ %409, %._crit_edge1317 ], [ %.01121, %375 ]
  %.11116.lcssa = phi double [ %.31118, %._crit_edge1317 ], [ %.01115, %375 ]
  %.11110.lcssa = phi double [ %.31112, %._crit_edge1317 ], [ %.01109, %375 ]
  br i1 %.pre-phi1427, label %567, label %619

567:                                              ; preds = %566
  %568 = trunc nuw i8 %.01192 to i1
  br i1 %568, label %569, label %582

569:                                              ; preds = %567
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1129)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1130)
  %570 = getelementptr inbounds i8, ptr %0, i64 2000
  %571 = getelementptr inbounds i8, ptr %0, i64 24
  call void @_ZN11alglib_impl36tracevectorunscaledunshiftedautoprecEPKNS_9ae_vectorElS2_bS2_bPNS_8ae_stateE(ptr noundef nonnull %570, i64 noundef %.01204, ptr noundef nonnull %571, i1 noundef zeroext true, ptr noundef nonnull %571, i1 noundef zeroext false, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1131)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.733)
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %570, i64 noundef 0, i64 noundef %.01204, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1132)
  %572 = getelementptr inbounds i8, ptr %0, i64 5920
  %573 = add nsw i64 %.01200, 1
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %572, i64 noundef 0, i64 noundef %573, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1253)
  %574 = getelementptr inbounds i8, ptr %0, i64 5984
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %574, i64 noundef 0, i64 noundef %573, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1133)
  %575 = getelementptr inbounds i8, ptr %0, i64 2064
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %575, i64 noundef 0, i64 noundef %573, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1254)
  %576 = getelementptr inbounds i8, ptr %0, i64 5600
  %577 = shl nsw i64 %.01204, 1
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %576, i64 noundef 0, i64 noundef %577, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1255)
  %578 = getelementptr inbounds i8, ptr %0, i64 5664
  %579 = shl nsw i64 %.01202, 1
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %578, i64 noundef 0, i64 noundef %579, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1256)
  %580 = add i64 %.01200, %.01202
  %581 = shl i64 %580, 1
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %578, i64 noundef %579, i64 noundef %581, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %582

582:                                              ; preds = %569, %567
  %.not12331325 = icmp slt i64 %.01200, 1
  br i1 %.not12331325, label %._crit_edge1330, label %.lr.ph1329

.lr.ph1329:                                       ; preds = %582
  %583 = getelementptr inbounds i8, ptr %0, i64 2120
  br label %584

584:                                              ; preds = %.lr.ph1329, %584
  %.311241327 = phi double [ 0.000000e+00, %.lr.ph1329 ], [ %589, %584 ]
  %.611731326 = phi i64 [ 1, %.lr.ph1329 ], [ %590, %584 ]
  %585 = load ptr, ptr %583, align 8, !tbaa !34
  %586 = getelementptr inbounds double, ptr %585, i64 %.611731326
  %587 = load double, ptr %586, align 8, !tbaa !39
  %588 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %587, ptr noundef %3)
  %589 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %.311241327, double noundef %588, ptr noundef %3)
  %590 = add nuw i64 %.611731326, 1
  %exitcond1384.not = icmp eq i64 %.611731326, %.01200
  br i1 %exitcond1384.not, label %._crit_edge1330, label %584, !llvm.loop !67

._crit_edge1330:                                  ; preds = %584, %582
  %.31124.lcssa = phi double [ 0.000000e+00, %582 ], [ %589, %584 ]
  %591 = getelementptr inbounds i8, ptr %0, i64 1968
  %592 = load double, ptr %591, align 8, !tbaa !53
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1257, double noundef %592)
  %593 = getelementptr inbounds i8, ptr %0, i64 31160
  %594 = load double, ptr %593, align 8, !tbaa !68
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1135, double noundef %594)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1136, double noundef %.31124.lcssa)
  %595 = getelementptr inbounds i8, ptr %0, i64 6040
  %596 = load ptr, ptr %595, align 8, !tbaa !34
  %597 = load double, ptr %596, align 8, !tbaa !39
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1258, double noundef %597)
  br i1 %.not12321313, label %._crit_edge1337, label %.lr.ph1336.preheader

.lr.ph1336.preheader:                             ; preds = %._crit_edge1330
  %598 = add nuw i64 %.01200, 1
  br label %.lr.ph1336

.lr.ph1336:                                       ; preds = %.lr.ph1336.preheader, %.lr.ph1336
  %.611631334 = phi i64 [ %spec.select, %.lr.ph1336 ], [ 0, %.lr.ph1336.preheader ]
  %.711741333 = phi i64 [ %605, %.lr.ph1336 ], [ 0, %.lr.ph1336.preheader ]
  %599 = load ptr, ptr %595, align 8, !tbaa !34
  %600 = getelementptr inbounds double, ptr %599, i64 %.711741333
  %601 = load double, ptr %600, align 8, !tbaa !39
  %602 = getelementptr inbounds double, ptr %599, i64 %.611631334
  %603 = load double, ptr %602, align 8, !tbaa !39
  %604 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %601, double noundef %603)
  %spec.select = select i1 %604, i64 %.711741333, i64 %.611631334
  %605 = add nuw i64 %.711741333, 1
  %exitcond1385.not = icmp eq i64 %.711741333, %.01200
  br i1 %exitcond1385.not, label %._crit_edge1337, label %.lr.ph1336, !llvm.loop !69

._crit_edge1337:                                  ; preds = %.lr.ph1336, %._crit_edge1330
  %.71174.lcssa = phi i64 [ 0, %._crit_edge1330 ], [ %598, %.lr.ph1336 ]
  %.61163.lcssa = phi i64 [ 0, %._crit_edge1330 ], [ %spec.select, %.lr.ph1336 ]
  %606 = load ptr, ptr %595, align 8, !tbaa !34
  %607 = getelementptr inbounds double, ptr %606, i64 %.61163.lcssa
  %608 = load double, ptr %607, align 8, !tbaa !39
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1259, double noundef %608)
  %609 = trunc i64 %.61163.lcssa to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1260, i32 noundef %609)
  %610 = getelementptr inbounds i8, ptr %0, i64 2000
  %611 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01204, ptr noundef nonnull %610, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1137, double noundef %611)
  %612 = shl nsw i64 %.01204, 1
  %613 = getelementptr inbounds i8, ptr %0, i64 5600
  %614 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %612, ptr noundef nonnull %613, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1261, double noundef %614)
  %615 = add nsw i64 %.01200, %.01202
  %616 = shl nsw i64 %615, 1
  %617 = getelementptr inbounds i8, ptr %0, i64 5664
  %618 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %616, ptr noundef nonnull %617, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1262, double noundef %618)
  br label %619

619:                                              ; preds = %._crit_edge1337, %566
  %.81175 = phi i64 [ %.71174.lcssa, %._crit_edge1337 ], [ %.51172.lcssa, %566 ]
  %.81165 = phi i64 [ %.61163.lcssa, %._crit_edge1337 ], [ %.11158.lcssa, %566 ]
  %.41125 = phi double [ %.31124.lcssa, %._crit_edge1337 ], [ %.11122.lcssa, %566 ]
  %620 = getelementptr inbounds i8, ptr %0, i64 1976
  %621 = getelementptr inbounds i8, ptr %0, i64 2576
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %620, ptr noundef nonnull %621, ptr noundef %3)
  %622 = getelementptr inbounds i8, ptr %0, i64 3776
  %623 = getelementptr inbounds i8, ptr %0, i64 4376
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %622, ptr noundef nonnull %623, ptr noundef %3)
  %624 = getelementptr inbounds i8, ptr %0, i64 6048
  %625 = getelementptr inbounds i8, ptr %0, i64 1968
  %626 = load double, ptr %625, align 8, !tbaa !53
  %627 = getelementptr inbounds i8, ptr %0, i64 5600
  %628 = getelementptr inbounds i8, ptr %0, i64 5664
  %629 = getelementptr inbounds i8, ptr %0, i64 25656
  %630 = getelementptr inbounds i8, ptr %0, i64 22296
  call void @_ZN11alglib_implL32nlcaul_preconditionersendupdatesEPNS_11minaulstateEPNS_20minaulpreconditionerEPKNS_11varsfuncjacEdPKNS_9ae_vectorES9_PNS_12xbfgshessianESB_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %624, ptr noundef nonnull %620, double noundef %626, ptr noundef nonnull %627, ptr noundef nonnull %628, ptr noundef nonnull %629, ptr noundef nonnull %630, ptr noundef %3)
  br i1 %.pre-phi1427, label %631, label %632

631:                                              ; preds = %619
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1263)
  br label %632

632:                                              ; preds = %631, %619
  %633 = load double, ptr %625, align 8, !tbaa !53
  %634 = getelementptr inbounds i8, ptr %0, i64 29080
  call void @_ZN11alglib_implL15nlcaul_auglagfgEPNS_11minaulstateEPKNS_11varsfuncjacEdPKNS_9ae_vectorES7_PdPS5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %620, double noundef %633, ptr noundef nonnull %627, ptr noundef nonnull %628, ptr noundef nonnull %5, ptr noundef nonnull %634, ptr noundef %3)
  %635 = load double, ptr %625, align 8, !tbaa !53
  %636 = getelementptr inbounds i8, ptr %0, i64 29144
  call void @_ZN11alglib_implL18nlcaul_modtargetfgEPNS_11minaulstateEPKNS_11varsfuncjacEddPdPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %620, double noundef %635, double noundef %635, ptr noundef nonnull %6, ptr noundef nonnull %636, ptr noundef %3)
  %637 = getelementptr inbounds i8, ptr %0, i64 5792
  call void @_ZN11alglib_implL26nlcaul_preconditionersolveEPNS_11minaulstateEPNS_20minaulpreconditionerEPKNS_9ae_vectorEPS4_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %624, ptr noundef nonnull %634, ptr noundef nonnull %637, ptr noundef %3)
  br i1 %.pre-phi1427, label %638, label %643

638:                                              ; preds = %632
  %639 = trunc nuw i8 %.01192 to i1
  br i1 %639, label %640, label %641

640:                                              ; preds = %638
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1264)
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %634, i64 noundef 0, i64 noundef %.01204, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1265)
  call void @_ZN11alglib_impl19tracevectorautoprecEPKNS_9ae_vectorEllPNS_8ae_stateE(ptr noundef nonnull %637, i64 noundef 0, i64 noundef %.01204, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.208)
  br label %641

641:                                              ; preds = %640, %638
  %642 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %.01204, ptr noundef nonnull %634, ptr noundef nonnull %637, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1266, double noundef %642)
  br label %643

643:                                              ; preds = %641, %632
  %644 = getelementptr inbounds i8, ptr %0, i64 31200
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01204, ptr noundef nonnull %644, ptr noundef %3)
  %645 = getelementptr inbounds i8, ptr %0, i64 29304
  store i64 0, ptr %645, align 8, !tbaa !70
  %646 = getelementptr inbounds i8, ptr %0, i64 29504
  store double 1.000000e+00, ptr %646, align 8, !tbaa !71
  %647 = getelementptr inbounds i8, ptr %0, i64 5856
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01204, ptr noundef nonnull %637, ptr noundef nonnull %647, ptr noundef %3)
  call void @_ZN11alglib_impl16linminnormalizedEPNS_9ae_vectorEPdlPNS_8ae_stateE(ptr noundef nonnull %637, ptr noundef nonnull %646, i64 noundef %.01204, ptr noundef %3)
  %648 = load double, ptr %646, align 8, !tbaa !71
  %649 = getelementptr inbounds i8, ptr %0, i64 29296
  %650 = load double, ptr %649, align 8, !tbaa !72
  %651 = call noundef double @_ZN11alglib_impl8coalesceEddPNS_8ae_stateE(double noundef %650, double noundef %648, ptr noundef %3)
  store double %651, ptr %649, align 8, !tbaa !72
  %652 = fmul double %651, 1.000000e+01
  %653 = getelementptr inbounds i8, ptr %0, i64 29512
  store double %652, ptr %653, align 8, !tbaa !73
  %654 = getelementptr inbounds i8, ptr %0, i64 29016
  call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01204, ptr noundef nonnull %634, ptr noundef nonnull %654, ptr noundef %3)
  %655 = load double, ptr %5, align 8, !tbaa !39
  %656 = getelementptr inbounds i8, ptr %0, i64 2000
  %657 = load double, ptr %653, align 8, !tbaa !73
  %658 = load double, ptr @_ZN11alglib_implL11nlcaul_gtolE, align 8, !tbaa !39
  %659 = getelementptr inbounds i8, ptr %0, i64 31192
  %660 = getelementptr inbounds i8, ptr %0, i64 29312
  call void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_PKS0_S2_ddPlS5_S1_PNS_11linminstateES5_PNS_8ae_stateE(i64 noundef %.01204, ptr noundef nonnull %656, ptr noundef nonnull %5, ptr noundef nonnull %634, ptr noundef nonnull %637, ptr noundef nonnull %646, double noundef %657, double noundef %658, ptr noundef nonnull %8, ptr noundef nonnull %659, ptr noundef nonnull %644, ptr noundef nonnull %660, ptr noundef nonnull %645, ptr noundef %3)
  br label %661

661:                                              ; preds = %677, %643
  %.11190 = phi double [ %655, %643 ], [ %.01189, %677 ]
  %.21180 = phi double [ %.111791429, %643 ], [ %.01178, %677 ]
  %.91176 = phi i64 [ %.81175, %643 ], [ %.01167, %677 ]
  %.91166 = phi i64 [ %.81165, %643 ], [ %.01157, %677 ]
  %.41151 = phi i64 [ %.21149.lcssa, %643 ], [ %.01147, %677 ]
  %.41141 = phi i64 [ %.21139.lcssa, %643 ], [ %.01137, %677 ]
  %.21130 = phi i64 [ %.111291435, %643 ], [ %.01128, %677 ]
  %.51126 = phi double [ %.41125, %643 ], [ %.01121, %677 ]
  %.41119 = phi double [ %.11116.lcssa, %643 ], [ %.01115, %677 ]
  %.41113 = phi double [ %.11110.lcssa, %643 ], [ %.01109, %677 ]
  %.21105 = phi i8 [ %.111041437, %643 ], [ %.01103, %677 ]
  %.11101 = phi double [ %648, %643 ], [ %.01100, %677 ]
  %.21096 = phi double [ %.110951439, %643 ], [ %.01094, %677 ]
  %.21083 = phi double [ %.110821445, %643 ], [ %.01081, %677 ]
  %.21079 = phi double [ %.110781447, %643 ], [ %.01077, %677 ]
  %.2 = phi double [ %.11449, %643 ], [ %.0, %677 ]
  %662 = phi <2 x double> [ %376, %643 ], [ %101, %677 ]
  %663 = getelementptr inbounds i8, ptr %0, i64 29304
  %664 = load i64, ptr %663, align 8, !tbaa !70
  %665 = icmp eq i64 %664, 0
  br i1 %665, label %693, label %666

666:                                              ; preds = %661
  call void @_ZN11alglib_implL25nlcaul_clearrequestfieldsEPNS_11minaulstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %3)
  %667 = getelementptr inbounds i8, ptr %0, i64 2000
  %668 = getelementptr inbounds i8, ptr %0, i64 3800
  call void @_ZN11alglib_implL26nlcaul_aulsendvirtualpointEPNS_11minaulstateEPKNS_9ae_vectorEPS2_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %667, ptr noundef nonnull %668, ptr noundef %3)
  %669 = getelementptr inbounds i8, ptr %0, i64 1960
  store i8 1, ptr %669, align 8, !tbaa !43
  br label %1432

670:                                              ; preds = %98
  %671 = getelementptr inbounds i8, ptr %0, i64 1960
  store i8 0, ptr %671, align 8, !tbaa !43
  %672 = getelementptr inbounds i8, ptr %0, i64 1976
  %673 = getelementptr inbounds i8, ptr %0, i64 3776
  %674 = tail call noundef zeroext i1 @_ZN11alglib_implL20nlcaul_aulretrievesjEPNS_11minaulstateEPNS_11varsfuncjacES3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %672, ptr noundef nonnull %673, ptr noundef %3)
  br i1 %674, label %677, label %675

675:                                              ; preds = %670
  %676 = getelementptr inbounds i8, ptr %0, i64 31128
  store i64 -8, ptr %676, align 8, !tbaa !51
  br label %1528

677:                                              ; preds = %670
  %678 = getelementptr inbounds i8, ptr %0, i64 1968
  %679 = load double, ptr %678, align 8, !tbaa !53
  %680 = getelementptr inbounds i8, ptr %0, i64 5600
  %681 = getelementptr inbounds i8, ptr %0, i64 5664
  %682 = getelementptr inbounds i8, ptr %0, i64 29080
  call void @_ZN11alglib_implL15nlcaul_auglagfgEPNS_11minaulstateEPKNS_11varsfuncjacEdPKNS_9ae_vectorES7_PdPS5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %672, double noundef %679, ptr noundef nonnull %680, ptr noundef nonnull %681, ptr noundef nonnull %5, ptr noundef nonnull %682, ptr noundef %3)
  %683 = getelementptr inbounds i8, ptr %0, i64 2000
  %684 = getelementptr inbounds i8, ptr %0, i64 5792
  %685 = getelementptr inbounds i8, ptr %0, i64 29504
  %686 = getelementptr inbounds i8, ptr %0, i64 29512
  %687 = load double, ptr %686, align 8, !tbaa !73
  %688 = load double, ptr @_ZN11alglib_implL11nlcaul_gtolE, align 8, !tbaa !39
  %689 = getelementptr inbounds i8, ptr %0, i64 31192
  %690 = getelementptr inbounds i8, ptr %0, i64 31200
  %691 = getelementptr inbounds i8, ptr %0, i64 29312
  %692 = getelementptr inbounds i8, ptr %0, i64 29304
  call void @_ZN11alglib_impl6mcsrchElPNS_9ae_vectorEPdS1_PKS0_S2_ddPlS5_S1_PNS_11linminstateES5_PNS_8ae_stateE(i64 noundef %.01204, ptr noundef nonnull %683, ptr noundef nonnull %5, ptr noundef nonnull %682, ptr noundef nonnull %684, ptr noundef nonnull %685, double noundef %687, double noundef %688, ptr noundef nonnull %8, ptr noundef nonnull %689, ptr noundef nonnull %690, ptr noundef nonnull %691, ptr noundef nonnull %692, ptr noundef %3)
  br label %661

693:                                              ; preds = %661
  %694 = load double, ptr %5, align 8, !tbaa !39
  %695 = trunc nuw i8 %.01196 to i1
  br i1 %695, label %696, label %722

696:                                              ; preds = %693
  %697 = getelementptr inbounds i8, ptr %0, i64 29504
  %698 = load double, ptr %697, align 8, !tbaa !71
  %699 = fdiv double %698, %.11101
  %700 = getelementptr inbounds i8, ptr %0, i64 5792
  %701 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01204, ptr noundef nonnull %700, ptr noundef %3)
  %702 = fmul double %698, %701
  %703 = getelementptr inbounds i8, ptr %0, i64 31192
  %704 = load i64, ptr %703, align 8, !tbaa !74
  %705 = trunc i64 %704 to i32
  %706 = load i64, ptr %8, align 8, !tbaa !35
  %707 = trunc i64 %706 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1267, double noundef %699, double noundef %702, i32 noundef %705, i32 noundef %707)
  %708 = getelementptr inbounds i8, ptr %0, i64 2720
  %709 = load ptr, ptr %708, align 8, !tbaa !34
  %710 = load double, ptr %709, align 8, !tbaa !39
  %711 = getelementptr inbounds i8, ptr %0, i64 5976
  %712 = load ptr, ptr %711, align 8, !tbaa !34
  %713 = load double, ptr %712, align 8, !tbaa !39
  %714 = fmul double %710, %713
  %715 = getelementptr inbounds i8, ptr %0, i64 2120
  %716 = load ptr, ptr %715, align 8, !tbaa !34
  %717 = load double, ptr %716, align 8, !tbaa !39
  %718 = fmul double %713, %717
  %719 = fneg double %714
  %720 = call double @llvm.fmuladd.f64(double %717, double %713, double %719)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1268, double noundef %714, double noundef %718, double noundef %720)
  %721 = fsub double %694, %.11190
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1269, double noundef %.11190, double noundef %694, double noundef %721)
  br label %722

722:                                              ; preds = %696, %693
  call void @_ZN11alglib_implL25nlcaul_clearrequestfieldsEPNS_11minaulstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %3)
  %723 = getelementptr inbounds i8, ptr %0, i64 3800
  call void @_ZN11alglib_implL23nlcaul_aulsendtruepointEPNS_11minaulstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %723, ptr noundef %3)
  %724 = getelementptr inbounds i8, ptr %0, i64 3920
  %725 = load ptr, ptr %724, align 8, !tbaa !34
  %726 = load double, ptr %725, align 8, !tbaa !39
  %727 = getelementptr inbounds i8, ptr %0, i64 5976
  %728 = load ptr, ptr %727, align 8, !tbaa !34
  %729 = load double, ptr %728, align 8, !tbaa !39
  %730 = fmul double %726, %729
  %731 = getelementptr inbounds i8, ptr %0, i64 1952
  store double %730, ptr %731, align 8, !tbaa !52
  %732 = getelementptr inbounds i8, ptr %0, i64 1962
  store i8 1, ptr %732, align 2, !tbaa !45
  br label %1432

733:                                              ; preds = %98
  %734 = getelementptr inbounds i8, ptr %0, i64 1962
  store i8 0, ptr %734, align 2, !tbaa !45
  %735 = getelementptr inbounds i8, ptr %0, i64 31136
  %736 = load i64, ptr %735, align 8, !tbaa !75
  %737 = getelementptr inbounds i8, ptr %0, i64 31192
  %738 = load i64, ptr %737, align 8, !tbaa !74
  %739 = add nsw i64 %738, %736
  store i64 %739, ptr %735, align 8, !tbaa !75
  %740 = getelementptr inbounds i8, ptr %0, i64 29296
  %741 = load double, ptr %740, align 8, !tbaa !72
  %742 = getelementptr inbounds i8, ptr %0, i64 29504
  %743 = load double, ptr %742, align 8, !tbaa !71
  %744 = tail call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %741, double noundef %743, ptr noundef %3)
  store double %744, ptr %740, align 8, !tbaa !72
  %745 = icmp eq i64 %99, 1
  br i1 %745, label %746, label %753

746:                                              ; preds = %733
  %747 = getelementptr inbounds i8, ptr %0, i64 22296
  %748 = getelementptr inbounds i8, ptr %0, i64 2600
  %749 = getelementptr inbounds i8, ptr %0, i64 29016
  %750 = getelementptr inbounds i8, ptr %0, i64 2000
  %751 = getelementptr inbounds i8, ptr %0, i64 29080
  %752 = trunc nuw i8 %.01196 to i1
  tail call void @_ZN11alglib_impl13hessianupdateEPNS_12xbfgshessianEPKNS_9ae_vectorES4_S4_S4_bPNS_8ae_stateE(ptr noundef nonnull %747, ptr noundef nonnull %748, ptr noundef nonnull %749, ptr noundef nonnull %750, ptr noundef nonnull %751, i1 noundef zeroext %752, ptr noundef %3)
  br label %756

753:                                              ; preds = %733
  %754 = trunc nuw i8 %.01196 to i1
  br i1 %754, label %755, label %756

755:                                              ; preds = %753
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1270)
  br label %756

756:                                              ; preds = %753, %755, %746
  %.pre-phi1424 = phi i1 [ false, %753 ], [ true, %755 ], [ %752, %746 ]
  %757 = getelementptr inbounds i8, ptr %0, i64 1976
  %758 = getelementptr inbounds i8, ptr %0, i64 1968
  %759 = load double, ptr %758, align 8, !tbaa !53
  %760 = getelementptr inbounds i8, ptr %0, i64 29208
  call void @_ZN11alglib_implL18nlcaul_modtargetfgEPNS_11minaulstateEPKNS_11varsfuncjacEddPdPNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %757, double noundef %759, double noundef %759, ptr noundef nonnull %7, ptr noundef nonnull %760, ptr noundef %3)
  %761 = getelementptr inbounds i8, ptr %0, i64 25656
  %762 = getelementptr inbounds i8, ptr %0, i64 2600
  %763 = getelementptr inbounds i8, ptr %0, i64 29144
  %764 = getelementptr inbounds i8, ptr %0, i64 2000
  call void @_ZN11alglib_impl13hessianupdateEPNS_12xbfgshessianEPKNS_9ae_vectorES4_S4_S4_bPNS_8ae_stateE(ptr noundef nonnull %761, ptr noundef nonnull %762, ptr noundef nonnull %763, ptr noundef nonnull %764, ptr noundef nonnull %760, i1 noundef zeroext %.pre-phi1424, ptr noundef %3)
  %765 = getelementptr inbounds i8, ptr %0, i64 472
  %766 = getelementptr inbounds i8, ptr %0, i64 840
  %767 = getelementptr inbounds i8, ptr %0, i64 904
  %768 = getelementptr inbounds i8, ptr %0, i64 1352
  %769 = getelementptr inbounds i8, ptr %0, i64 3800
  %770 = getelementptr inbounds i8, ptr %0, i64 31160
  %771 = getelementptr inbounds i8, ptr %0, i64 31168
  call void @_ZN11alglib_impl17checklc2violationEPKNS_12sparsematrixEPKNS_9ae_vectorES5_S5_lS5_PdPlPNS_8ae_stateE(ptr noundef nonnull %765, ptr noundef nonnull %766, ptr noundef nonnull %767, ptr noundef nonnull %768, i64 noundef %.01202, ptr noundef nonnull %769, ptr noundef nonnull %770, ptr noundef nonnull %771, ptr noundef %3)
  %772 = getelementptr inbounds i8, ptr %0, i64 3864
  %773 = getelementptr inbounds i8, ptr %0, i64 5920
  %774 = getelementptr inbounds i8, ptr %0, i64 1096
  %775 = getelementptr inbounds i8, ptr %0, i64 1160
  %776 = getelementptr inbounds i8, ptr %0, i64 31176
  %777 = getelementptr inbounds i8, ptr %0, i64 31184
  call void @_ZN11alglib_impl28unscaleandchecknlc2violationEPKNS_9ae_vectorES2_S2_S2_lPdPlPNS_8ae_stateE(ptr noundef nonnull %772, ptr noundef nonnull %773, ptr noundef nonnull %774, ptr noundef nonnull %775, i64 noundef %.01200, ptr noundef nonnull %776, ptr noundef nonnull %777, ptr noundef %3)
  call void @_ZN11alglib_implL20nlcaul_computeerrorsEPNS_11minaulstateEPKNS_11varsfuncjacEPdS5_S5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %757, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef %3)
  %778 = trunc nuw i8 %.01194 to i1
  br i1 %778, label %779, label %868

779:                                              ; preds = %756
  %780 = getelementptr inbounds i8, ptr %0, i64 2576
  %781 = getelementptr inbounds i8, ptr %0, i64 29920
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %780, ptr noundef nonnull %781, ptr noundef %3)
  %782 = getelementptr inbounds i8, ptr %0, i64 4376
  %783 = getelementptr inbounds i8, ptr %0, i64 30520
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %782, ptr noundef nonnull %783, ptr noundef %3)
  %784 = load double, ptr %742, align 8, !tbaa !71
  %785 = fdiv double %784, %.01100
  %786 = fmul double %785, 5.000000e+00
  %787 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %786, double noundef 1.000000e-02, ptr noundef %3)
  %788 = getelementptr inbounds i8, ptr %0, i64 29944
  %789 = getelementptr inbounds i8, ptr %0, i64 5856
  %790 = getelementptr inbounds i8, ptr %0, i64 31120
  %791 = load i64, ptr %790, align 8, !tbaa !58
  %792 = getelementptr inbounds i8, ptr %0, i64 29280
  %793 = load i64, ptr %792, align 8, !tbaa !59
  call void @_ZN11alglib_impl39smoothnessmonitorstartlagrangianprobingEPNS_17smoothnessmonitorEPKNS_9ae_vectorES4_dllPNS_8ae_stateE(ptr noundef %1, ptr noundef nonnull %788, ptr noundef nonnull %789, double noundef %787, i64 noundef %791, i64 noundef %793, ptr noundef %3)
  br label %794

794:                                              ; preds = %860, %779
  %.101177 = phi i64 [ %.01167, %779 ], [ %.11.lcssa, %860 ]
  %.51152 = phi i64 [ %.01147, %779 ], [ %.61153.lcssa, %860 ]
  %.51142 = phi i64 [ %.01137, %779 ], [ %.61143.lcssa, %860 ]
  %.31131 = phi i64 [ %.01128, %779 ], [ %.41132.lcssa, %860 ]
  %.31097 = phi double [ %787, %779 ], [ %.01094, %860 ]
  %795 = call noundef zeroext i1 @_ZN11alglib_impl32smoothnessmonitorprobelagrangianEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %1, ptr noundef %3)
  br i1 %795, label %796, label %867

796:                                              ; preds = %794
  %797 = getelementptr inbounds i8, ptr %1, i64 736
  %798 = getelementptr inbounds i8, ptr %0, i64 29944
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %.01204, ptr noundef nonnull %797, ptr noundef nonnull %798, ptr noundef %3)
  call void @_ZN11alglib_implL25nlcaul_clearrequestfieldsEPNS_11minaulstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %3)
  %799 = getelementptr inbounds i8, ptr %0, i64 30544
  call void @_ZN11alglib_implL26nlcaul_aulsendvirtualpointEPNS_11minaulstateEPKNS_9ae_vectorEPS2_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %798, ptr noundef nonnull %799, ptr noundef %3)
  %800 = getelementptr inbounds i8, ptr %0, i64 1960
  store i8 1, ptr %800, align 8, !tbaa !43
  br label %1432

801:                                              ; preds = %98
  %802 = getelementptr inbounds i8, ptr %0, i64 1960
  store i8 0, ptr %802, align 8, !tbaa !43
  %803 = getelementptr inbounds i8, ptr %0, i64 29920
  %804 = getelementptr inbounds i8, ptr %0, i64 30520
  %805 = tail call noundef zeroext i1 @_ZN11alglib_implL20nlcaul_aulretrievesjEPNS_11minaulstateEPNS_11varsfuncjacES3_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %803, ptr noundef nonnull %804, ptr noundef %3)
  br i1 %805, label %808, label %806

806:                                              ; preds = %801
  %807 = getelementptr inbounds i8, ptr %0, i64 31128
  store i64 -8, ptr %807, align 8, !tbaa !51
  br label %1528

808:                                              ; preds = %801
  %809 = add i64 %.01200, 1
  %810 = getelementptr inbounds i8, ptr %0, i64 30008
  %811 = getelementptr inbounds i8, ptr %1, i64 800
  tail call void @_ZN11alglib_impl11rcopyallocvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %809, ptr noundef nonnull %810, ptr noundef nonnull %811, ptr noundef %3)
  %812 = getelementptr inbounds i8, ptr %1, i64 872
  tail call void @_ZN11alglib_impl10rsetallocmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %809, i64 noundef %.01204, double noundef 0.000000e+00, ptr noundef nonnull %812, ptr noundef %3)
  %.not12201260 = icmp slt i64 %.01200, 0
  br i1 %.not12201260, label %860, label %.lr.ph1262

.lr.ph1262:                                       ; preds = %808
  %813 = getelementptr inbounds i8, ptr %0, i64 30336
  %814 = getelementptr inbounds i8, ptr %0, i64 30208
  %815 = getelementptr inbounds i8, ptr %1, i64 944
  %816 = getelementptr inbounds i8, ptr %0, i64 30272
  br label %817

.loopexit:                                        ; preds = %.lr.ph.prol.loopexit, %.lr.ph, %817
  %.51133.lcssa = phi i64 [ %820, %817 ], [ %823, %.lr.ph ], [ %823, %.lr.ph.prol.loopexit ]
  %exitcond1375.not = icmp eq i64 %.111261, %.01200
  br i1 %exitcond1375.not, label %._crit_edge, label %817, !llvm.loop !76

817:                                              ; preds = %.lr.ph1262, %.loopexit
  %.111261 = phi i64 [ 0, %.lr.ph1262 ], [ %821, %.loopexit ]
  %818 = load ptr, ptr %813, align 8, !tbaa !34
  %819 = getelementptr inbounds i64, ptr %818, i64 %.111261
  %820 = load i64, ptr %819, align 8, !tbaa !35
  %821 = add nuw nsw i64 %.111261, 1
  %822 = getelementptr inbounds i64, ptr %818, i64 %821
  %823 = load i64, ptr %822, align 8, !tbaa !35
  %.not1221.not1258 = icmp slt i64 %820, %823
  br i1 %.not1221.not1258, label %.lr.ph.preheader, label %.loopexit

.lr.ph.preheader:                                 ; preds = %817
  %824 = sub i64 %823, %820
  %.neg = add i64 %820, 1
  %xtraiter = and i64 %824, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph.prol.loopexit, label %.lr.ph.prol

.lr.ph.prol:                                      ; preds = %.lr.ph.preheader
  %825 = load ptr, ptr %814, align 8, !tbaa !34
  %826 = getelementptr inbounds double, ptr %825, i64 %820
  %827 = load double, ptr %826, align 8, !tbaa !39
  %828 = load ptr, ptr %815, align 8, !tbaa !34
  %829 = getelementptr inbounds ptr, ptr %828, i64 %.111261
  %830 = load ptr, ptr %829, align 8, !tbaa !77
  %831 = load ptr, ptr %816, align 8, !tbaa !34
  %832 = getelementptr inbounds i64, ptr %831, i64 %820
  %833 = load i64, ptr %832, align 8, !tbaa !35
  %834 = getelementptr inbounds double, ptr %830, i64 %833
  store double %827, ptr %834, align 8, !tbaa !39
  %835 = add nsw i64 %820, 1
  br label %.lr.ph.prol.loopexit

.lr.ph.prol.loopexit:                             ; preds = %.lr.ph.prol, %.lr.ph.preheader
  %.511331259.unr = phi i64 [ %820, %.lr.ph.preheader ], [ %835, %.lr.ph.prol ]
  %836 = icmp eq i64 %823, %.neg
  br i1 %836, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.prol.loopexit, %.lr.ph
  %.511331259 = phi i64 [ %858, %.lr.ph ], [ %.511331259.unr, %.lr.ph.prol.loopexit ]
  %837 = load ptr, ptr %814, align 8, !tbaa !34
  %838 = getelementptr inbounds double, ptr %837, i64 %.511331259
  %839 = load double, ptr %838, align 8, !tbaa !39
  %840 = load ptr, ptr %815, align 8, !tbaa !34
  %841 = getelementptr inbounds ptr, ptr %840, i64 %.111261
  %842 = load ptr, ptr %841, align 8, !tbaa !77
  %843 = load ptr, ptr %816, align 8, !tbaa !34
  %844 = getelementptr inbounds i64, ptr %843, i64 %.511331259
  %845 = load i64, ptr %844, align 8, !tbaa !35
  %846 = getelementptr inbounds double, ptr %842, i64 %845
  store double %839, ptr %846, align 8, !tbaa !39
  %847 = add nsw i64 %.511331259, 1
  %848 = load ptr, ptr %814, align 8, !tbaa !34
  %849 = getelementptr inbounds double, ptr %848, i64 %847
  %850 = load double, ptr %849, align 8, !tbaa !39
  %851 = load ptr, ptr %815, align 8, !tbaa !34
  %852 = getelementptr inbounds ptr, ptr %851, i64 %.111261
  %853 = load ptr, ptr %852, align 8, !tbaa !77
  %854 = load ptr, ptr %816, align 8, !tbaa !34
  %855 = getelementptr inbounds i64, ptr %854, i64 %847
  %856 = load i64, ptr %855, align 8, !tbaa !35
  %857 = getelementptr inbounds double, ptr %853, i64 %856
  store double %850, ptr %857, align 8, !tbaa !39
  %858 = add nsw i64 %.511331259, 2
  %exitcond.not.1 = icmp eq i64 %858, %823
  br i1 %exitcond.not.1, label %.loopexit, label %.lr.ph, !llvm.loop !78

._crit_edge:                                      ; preds = %.loopexit
  %859 = add nsw i64 %823, -1
  br label %860

860:                                              ; preds = %._crit_edge, %808
  %.11.lcssa = phi i64 [ %809, %._crit_edge ], [ 0, %808 ]
  %.61153.lcssa = phi i64 [ %820, %._crit_edge ], [ %.01147, %808 ]
  %.61143.lcssa = phi i64 [ %859, %._crit_edge ], [ %.01137, %808 ]
  %.41132.lcssa = phi i64 [ %.51133.lcssa, %._crit_edge ], [ %.01128, %808 ]
  %861 = getelementptr inbounds i8, ptr %0, i64 29856
  tail call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01204, ptr noundef nonnull %861, ptr noundef %3)
  %862 = getelementptr inbounds i8, ptr %0, i64 1968
  %863 = load double, ptr %862, align 8, !tbaa !53
  %864 = getelementptr inbounds i8, ptr %0, i64 5600
  %865 = getelementptr inbounds i8, ptr %0, i64 5664
  %866 = getelementptr inbounds i8, ptr %1, i64 864
  tail call void @_ZN11alglib_implL15nlcaul_auglagfgEPNS_11minaulstateEPKNS_11varsfuncjacEdPKNS_9ae_vectorES7_PdPS5_PNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %803, double noundef %863, ptr noundef nonnull %864, ptr noundef nonnull %865, ptr noundef nonnull %866, ptr noundef nonnull %861, ptr noundef %3)
  br label %794

867:                                              ; preds = %794
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.205)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1161)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.205)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1271)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1170)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1171)
  call void @_ZN11alglib_impl46smoothnessmonitortracelagrangianprobingresultsEPNS_17smoothnessmonitorEPNS_8ae_stateE(ptr noundef %1, ptr noundef %3)
  %.pre1425 = trunc nuw i8 %.01196 to i1
  br i1 %.pre1425, label %869, label %873

868:                                              ; preds = %756
  br i1 %.pre-phi1424, label %869, label %873

869:                                              ; preds = %867, %868
  %.410981462 = phi double [ %.31097, %867 ], [ %.01094, %868 ]
  %.611341460 = phi i64 [ %.31131, %867 ], [ %.01128, %868 ]
  %.711441458 = phi i64 [ %.51142, %867 ], [ %.01137, %868 ]
  %.711541456 = phi i64 [ %.51152, %867 ], [ %.01147, %868 ]
  %.121454 = phi i64 [ %.101177, %867 ], [ %.01167, %868 ]
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1272)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1273)
  %870 = load double, ptr %12, align 8, !tbaa !39
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1274, double noundef %870)
  %871 = load double, ptr %13, align 8, !tbaa !39
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1275, double noundef %871)
  %872 = load double, ptr %14, align 8, !tbaa !39
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1276, double noundef %872)
  br label %873

873:                                              ; preds = %867, %869, %868
  %.410981461 = phi double [ %.31097, %867 ], [ %.410981462, %869 ], [ %.01094, %868 ]
  %.611341459 = phi i64 [ %.31131, %867 ], [ %.611341460, %869 ], [ %.01128, %868 ]
  %.711441457 = phi i64 [ %.51142, %867 ], [ %.711441458, %869 ], [ %.01137, %868 ]
  %.711541455 = phi i64 [ %.51152, %867 ], [ %.711541456, %869 ], [ %.01147, %868 ]
  %.121453 = phi i64 [ %.101177, %867 ], [ %.121454, %869 ], [ %.01167, %868 ]
  %.pre-phi14261451 = phi i1 [ false, %867 ], [ true, %869 ], [ false, %868 ]
  %874 = getelementptr inbounds i8, ptr %0, i64 31120
  %875 = load i64, ptr %874, align 8, !tbaa !58
  %876 = add nsw i64 %875, 1
  store i64 %876, ptr %874, align 8, !tbaa !58
  %877 = getelementptr inbounds i8, ptr %0, i64 29272
  %878 = load i64, ptr %877, align 8, !tbaa !79
  %879 = add nsw i64 %878, 1
  store i64 %879, ptr %877, align 8, !tbaa !79
  %880 = fsub double %.01187, %.01189
  %881 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %880, ptr noundef %3)
  %882 = load double, ptr @_ZN11alglib_implL21nlcaul_stagnationepsfE, align 8, !tbaa !39
  %883 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %.01187, ptr noundef %3)
  %884 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %.01189, ptr noundef %3)
  %885 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %883, double noundef %884, double noundef 1.000000e+00, ptr noundef %3)
  %886 = fmul double %882, %885
  %887 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %881, double noundef %886)
  %888 = getelementptr inbounds i8, ptr %0, i64 29288
  %889 = load i64, ptr %888, align 8, !tbaa !80
  %890 = add nsw i64 %889, 1
  %891 = call noundef i64 @_ZN11alglib_impl6icase2EbllPNS_8ae_stateE(i1 noundef zeroext %887, i64 noundef %890, i64 noundef 0, ptr noundef %3)
  store i64 %891, ptr %888, align 8, !tbaa !80
  %892 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %880, ptr noundef %3)
  %893 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %.01187, double noundef %.01189, double noundef 1.000000e+00, ptr noundef %3)
  %894 = load double, ptr %7, align 8, !tbaa !39
  %895 = fsub double %894, %100
  %896 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %895, ptr noundef %3)
  %897 = load double, ptr %7, align 8, !tbaa !39
  %898 = call noundef double @_ZN11alglib_impl8rmaxabs3EdddPNS_8ae_stateE(double noundef %897, double noundef %100, double noundef 1.000000e+00, ptr noundef %3)
  %899 = insertelement <2 x double> poison, double %892, i64 0
  %900 = insertelement <2 x double> %899, double %896, i64 1
  %901 = insertelement <2 x double> poison, double %893, i64 0
  %902 = insertelement <2 x double> %901, double %898, i64 1
  %903 = fdiv <2 x double> %900, %902
  %904 = extractelement <2 x double> %903, i64 0
  %905 = extractelement <2 x double> %903, i64 1
  %906 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %904, double noundef %905, ptr noundef %3)
  %907 = getelementptr inbounds i8, ptr %0, i64 1416
  %908 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %907, ptr noundef %3)
  %909 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %906, double noundef %908)
  %brmerge.not = and i1 %909, %.pre-phi14261451
  %.mux = zext i1 %909 to i8
  br i1 %brmerge.not, label %910, label %912

910:                                              ; preds = %873
  %911 = call noundef double @_ZN11alglib_impl11critgetepsfEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %907, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1277, double noundef %911)
  br label %912

912:                                              ; preds = %873, %910
  %.31106 = phi i8 [ 1, %910 ], [ %.mux, %873 ]
  %913 = getelementptr inbounds i8, ptr %0, i64 5792
  %914 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01204, ptr noundef nonnull %913, ptr noundef %3)
  %915 = getelementptr inbounds i8, ptr %0, i64 29504
  %916 = load double, ptr %915, align 8, !tbaa !71
  %917 = fmul double %914, %916
  %918 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %907, ptr noundef %3)
  %919 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %917, double noundef %918)
  %brmerge1242.not = and i1 %919, %.pre-phi14261451
  %.31106.mux = select i1 %919, i8 1, i8 %.31106
  br i1 %brmerge1242.not, label %920, label %922

920:                                              ; preds = %912
  %921 = call noundef double @_ZN11alglib_impl11critgetepsxEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %907, ptr noundef %3)
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1278, double noundef %921)
  br label %922

922:                                              ; preds = %912, %920
  %.41107 = phi i8 [ 1, %920 ], [ %.31106.mux, %912 ]
  %923 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %.01204, ptr noundef nonnull %913, ptr noundef %3)
  %924 = load double, ptr %915, align 8, !tbaa !71
  %925 = fmul double %923, %924
  %926 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %3)
  %927 = fmul double %926, 1.000000e-03
  %928 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %925, double noundef %927)
  %brmerge1245.not = and i1 %928, %.pre-phi14261451
  %.41107.mux = select i1 %928, i8 1, i8 %.41107
  br i1 %brmerge1245.not, label %929, label %930

929:                                              ; preds = %922
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1279)
  br label %930

930:                                              ; preds = %922, %929
  %.51108 = phi i8 [ 1, %929 ], [ %.41107.mux, %922 ]
  %931 = call noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %907, ptr noundef %3)
  %932 = icmp sgt i64 %931, 0
  br i1 %932, label %933, label %939

933:                                              ; preds = %930
  %934 = load i64, ptr %877, align 8, !tbaa !79
  %935 = call noundef i64 @_ZN11alglib_impl13critgetmaxitsEPKNS_19nlpstoppingcriteriaEPNS_8ae_stateE(ptr noundef nonnull %907, ptr noundef %3)
  %.not1222 = icmp sge i64 %934, %935
  %brmerge1247.not = and i1 %.not1222, %.pre-phi14261451
  %.51108.mux = select i1 %.not1222, i8 1, i8 %.51108
  br i1 %brmerge1247.not, label %936, label %939

936:                                              ; preds = %933
  %937 = load i64, ptr %877, align 8, !tbaa !79
  %938 = trunc i64 %937 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1280, i32 noundef %938)
  br label %939

939:                                              ; preds = %933, %936, %930
  %.6 = phi i8 [ 1, %936 ], [ %.51108.mux, %933 ], [ %.51108, %930 ]
  %940 = load i64, ptr %888, align 8, !tbaa !80
  %941 = load i64, ptr @_ZN11alglib_implL23nlcaul_fstagnationlimitE, align 8, !tbaa !35
  %.not1223 = icmp sge i64 %940, %941
  %brmerge1250.not = and i1 %.not1223, %.pre-phi14261451
  br i1 %brmerge1250.not, label %.thread1251, label %943

.thread1251:                                      ; preds = %939
  %942 = trunc i64 %940 to i32
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.1127, i32 noundef %942)
  br label %945

943:                                              ; preds = %939
  %.6.mux = select i1 %.not1223, i8 1, i8 %.6
  %944 = trunc nuw i8 %.6.mux to i1
  %brmerge1248 = or i1 %944, %2
  br i1 %brmerge1248, label %945, label %366

945:                                              ; preds = %.thread1251, %943
  %.71254 = phi i8 [ 1, %.thread1251 ], [ %.6.mux, %943 ]
  %946 = load double, ptr %12, align 8, !tbaa !39
  %947 = load double, ptr %13, align 8, !tbaa !39
  %948 = load double, ptr %14, align 8, !tbaa !39
  %949 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %946, double noundef %947, double noundef %948, ptr noundef %3)
  %950 = getelementptr inbounds i8, ptr %0, i64 5576
  %951 = load double, ptr %950, align 8, !tbaa !54
  %952 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %949, double noundef %951)
  br i1 %952, label %953, label %._crit_edge1399

._crit_edge1399:                                  ; preds = %945
  %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 29280
  %.pre = load i64, ptr %.phi.trans.insert, align 8, !tbaa !59
  br label %978

953:                                              ; preds = %945
  %954 = load double, ptr %12, align 8, !tbaa !39
  %955 = load double, ptr %13, align 8, !tbaa !39
  %956 = load double, ptr %14, align 8, !tbaa !39
  %957 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %954, double noundef %955, double noundef %956, ptr noundef %3)
  %958 = load double, ptr @_ZN11alglib_implL29nlcaul_besterrstagnationcoeffE, align 8, !tbaa !39
  %959 = load double, ptr %950, align 8, !tbaa !54
  %960 = fmul double %958, %959
  %961 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %957, double noundef %960)
  br i1 %961, label %962, label %966

962:                                              ; preds = %953
  %963 = getelementptr inbounds i8, ptr %0, i64 5592
  %964 = load i64, ptr %963, align 8, !tbaa !56
  %965 = add nsw i64 %964, 1
  store i64 %965, ptr %963, align 8, !tbaa !56
  br label %966

966:                                              ; preds = %962, %953
  %967 = getelementptr inbounds i8, ptr %0, i64 1976
  %968 = getelementptr inbounds i8, ptr %0, i64 3176
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %967, ptr noundef nonnull %968, ptr noundef %3)
  %969 = getelementptr inbounds i8, ptr %0, i64 3776
  %970 = getelementptr inbounds i8, ptr %0, i64 4976
  call void @_ZN11alglib_impl7vfjcopyEPKNS_11varsfuncjacEPS0_PNS_8ae_stateE(ptr noundef nonnull %969, ptr noundef nonnull %970, ptr noundef %3)
  %971 = load double, ptr %12, align 8, !tbaa !39
  %972 = load double, ptr %13, align 8, !tbaa !39
  %973 = load double, ptr %14, align 8, !tbaa !39
  %974 = call noundef double @_ZN11alglib_impl5rmax3EdddPNS_8ae_stateE(double noundef %971, double noundef %972, double noundef %973, ptr noundef %3)
  store double %974, ptr %950, align 8, !tbaa !54
  %975 = getelementptr inbounds i8, ptr %0, i64 29280
  %976 = load i64, ptr %975, align 8, !tbaa !59
  %977 = getelementptr inbounds i8, ptr %0, i64 5584
  store i64 %976, ptr %977, align 8, !tbaa !55
  br label %978

978:                                              ; preds = %._crit_edge1399, %966
  %979 = phi i64 [ %.pre, %._crit_edge1399 ], [ %976, %966 ]
  %980 = getelementptr inbounds i8, ptr %0, i64 29280
  %981 = add nsw i64 %979, 1
  store i64 %981, ptr %980, align 8, !tbaa !59
  store i64 0, ptr %877, align 8, !tbaa !79
  store i64 0, ptr %888, align 8, !tbaa !80
  %982 = load double, ptr %12, align 8, !tbaa !39
  %983 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %3)
  %984 = fmul double %983, 1.000000e+01
  %985 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %982, double noundef %984)
  br i1 %985, label %986, label %997

986:                                              ; preds = %978
  %987 = load double, ptr %13, align 8, !tbaa !39
  %988 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %3)
  %989 = fmul double %988, 1.000000e+01
  %990 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %987, double noundef %989)
  br i1 %990, label %991, label %997

991:                                              ; preds = %986
  %992 = load double, ptr %14, align 8, !tbaa !39
  %993 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 5.000000e-16, ptr noundef %3)
  %994 = fmul double %993, 1.000000e+01
  %995 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_less_eqEdd(double noundef %992, double noundef %994)
  br i1 %995, label %996, label %997

996:                                              ; preds = %991
  br i1 %.pre-phi14261451, label %.sink.split1496, label %1408

997:                                              ; preds = %991, %986, %978
  %998 = getelementptr inbounds i8, ptr %0, i64 5592
  %999 = load i64, ptr %998, align 8, !tbaa !56
  %1000 = load i64, ptr @_ZN11alglib_implL29nlcaul_besterrstagnationlimitE, align 8, !tbaa !35
  %.not1224 = icmp slt i64 %999, %1000
  br i1 %.not1224, label %1002, label %1001

1001:                                             ; preds = %997
  br i1 %.pre-phi14261451, label %.sink.split1496, label %1408

1002:                                             ; preds = %997
  %1003 = getelementptr inbounds i8, ptr %0, i64 5584
  %1004 = load i64, ptr %1003, align 8, !tbaa !55
  %1005 = load i64, ptr %980, align 8, !tbaa !59
  %1006 = sub nsw i64 %1005, %1000
  %1007 = icmp slt i64 %1004, %1006
  br i1 %1007, label %1008, label %1009

1008:                                             ; preds = %1002
  br i1 %.pre-phi14261451, label %.sink.split1496, label %1408

1009:                                             ; preds = %1002
  br i1 %2, label %1010, label %1011

1010:                                             ; preds = %1009
  br i1 %.pre-phi14261451, label %.sink.split1496, label %1408

1011:                                             ; preds = %1009
  %1012 = getelementptr inbounds i8, ptr %0, i64 1440
  %1013 = load i64, ptr %1012, align 8, !tbaa !81
  %.not1225 = icmp slt i64 %1005, %1013
  br i1 %.not1225, label %1014, label %1408

1014:                                             ; preds = %1011
  %1015 = load double, ptr %12, align 8, !tbaa !39
  %1016 = load double, ptr %13, align 8, !tbaa !39
  %1017 = load double, ptr %14, align 8, !tbaa !39
  %.not1226.not1267 = icmp sgt i64 %.01204, 0
  br i1 %.not1226.not1267, label %.lr.ph1271, label %.preheader1257

.lr.ph1271:                                       ; preds = %1014
  %1018 = getelementptr inbounds i8, ptr %0, i64 144
  %1019 = getelementptr inbounds i8, ptr %0, i64 208
  %1020 = getelementptr inbounds i8, ptr %0, i64 272
  %1021 = getelementptr inbounds i8, ptr %0, i64 336
  %1022 = getelementptr inbounds i8, ptr %0, i64 2056
  %1023 = getelementptr inbounds i8, ptr %0, i64 1968
  %1024 = getelementptr inbounds i8, ptr %0, i64 5656
  br label %1035

.preheader1257:                                   ; preds = %1144, %1014
  %.31093.lcssa = phi double [ %904, %1014 ], [ %.4, %1144 ]
  %.not1227.not1281 = icmp sgt i64 %.01202, 0
  br i1 %.not1227.not1281, label %.lr.ph1283, label %.preheader1256

.lr.ph1283:                                       ; preds = %.preheader1257
  %1025 = getelementptr inbounds i8, ptr %0, i64 656
  %1026 = getelementptr inbounds i8, ptr %0, i64 2056
  %1027 = getelementptr inbounds i8, ptr %0, i64 592
  %1028 = getelementptr inbounds i8, ptr %0, i64 528
  %1029 = getelementptr inbounds i8, ptr %0, i64 1024
  %1030 = getelementptr inbounds i8, ptr %0, i64 1088
  %1031 = getelementptr inbounds i8, ptr %0, i64 896
  %1032 = getelementptr inbounds i8, ptr %0, i64 960
  %1033 = getelementptr inbounds i8, ptr %0, i64 1968
  %1034 = getelementptr inbounds i8, ptr %0, i64 5720
  br label %1154

1035:                                             ; preds = %.lr.ph1271, %1144
  %.310931269 = phi double [ %904, %.lr.ph1271 ], [ %.4, %1144 ]
  %.131268 = phi i64 [ 0, %.lr.ph1271 ], [ %1145, %1144 ]
  %1036 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1037 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1036, double noundef 1.000000e+00)
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1037, ptr noundef nonnull @.str.1285, ptr noundef %3)
  %1038 = load ptr, ptr %1018, align 8, !tbaa !34
  %1039 = getelementptr inbounds i8, ptr %1038, i64 %.131268
  %1040 = load i8, ptr %1039, align 1, !tbaa !36, !range !37, !noundef !38
  %1041 = trunc nuw i8 %1040 to i1
  %1042 = load ptr, ptr %1019, align 8, !tbaa !34
  %1043 = getelementptr inbounds i8, ptr %1042, i64 %.131268
  %1044 = load i8, ptr %1043, align 1, !tbaa !36, !range !37, !noundef !38
  %1045 = trunc nuw i8 %1044 to i1
  br i1 %1041, label %1047, label %1046

1046:                                             ; preds = %1035
  br i1 %1045, label %1081, label %1144

1047:                                             ; preds = %1035
  br i1 %1045, label %1048, label %1081

1048:                                             ; preds = %1047
  %1049 = load ptr, ptr %1020, align 8, !tbaa !34
  %1050 = getelementptr inbounds double, ptr %1049, i64 %.131268
  %1051 = load double, ptr %1050, align 8, !tbaa !39
  %1052 = load ptr, ptr %1021, align 8, !tbaa !34
  %1053 = getelementptr inbounds double, ptr %1052, i64 %.131268
  %1054 = load double, ptr %1053, align 8, !tbaa !39
  %1055 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1051, double noundef %1054)
  br i1 %1055, label %1056, label %._crit_edge1400

._crit_edge1400:                                  ; preds = %1048
  %.pre1401 = load ptr, ptr %1018, align 8, !tbaa !34
  %.phi.trans.insert1402 = getelementptr inbounds i8, ptr %.pre1401, i64 %.131268
  %.pre1403 = load i8, ptr %.phi.trans.insert1402, align 1, !tbaa !36, !range !37
  br label %1081

1056:                                             ; preds = %1048
  %1057 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !39
  %1058 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1059 = load ptr, ptr %1024, align 8, !tbaa !34
  %1060 = shl nuw nsw i64 %.131268, 1
  %1061 = getelementptr inbounds double, ptr %1059, i64 %1060
  %1062 = load double, ptr %1061, align 8, !tbaa !39
  %1063 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1062, ptr noundef %3)
  %1064 = fadd double %1063, 1.000000e+00
  %1065 = fmul double %1058, %1064
  %1066 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1057, double noundef %1065, ptr noundef %3)
  %1067 = load ptr, ptr %1024, align 8, !tbaa !34
  %1068 = getelementptr inbounds double, ptr %1067, i64 %1060
  %1069 = load double, ptr %1068, align 8, !tbaa !39
  %1070 = load double, ptr %1023, align 8, !tbaa !53
  %1071 = load ptr, ptr %1022, align 8, !tbaa !34
  %1072 = getelementptr inbounds double, ptr %1071, i64 %.131268
  %1073 = load double, ptr %1072, align 8, !tbaa !39
  %1074 = load ptr, ptr %1020, align 8, !tbaa !34
  %1075 = getelementptr inbounds double, ptr %1074, i64 %.131268
  %1076 = load double, ptr %1075, align 8, !tbaa !39
  %1077 = fsub double %1073, %1076
  %1078 = call double @llvm.fmuladd.f64(double %1070, double %1077, double %1069)
  %1079 = fneg double %1066
  %1080 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %1078, double noundef %1079, double noundef %1066, ptr noundef %3)
  br label %.sink.split1488

1081:                                             ; preds = %._crit_edge1400, %1046, %1047
  %1082 = phi i8 [ %.pre1403, %._crit_edge1400 ], [ %1040, %1046 ], [ %1040, %1047 ]
  %1083 = trunc nuw i8 %1082 to i1
  br i1 %1083, label %1084, label %1111

1084:                                             ; preds = %1081
  %1085 = load ptr, ptr %1022, align 8, !tbaa !34
  %1086 = getelementptr inbounds double, ptr %1085, i64 %.131268
  %1087 = load double, ptr %1086, align 8, !tbaa !39
  %1088 = load ptr, ptr %1020, align 8, !tbaa !34
  %1089 = getelementptr inbounds double, ptr %1088, i64 %.131268
  %1090 = load double, ptr %1089, align 8, !tbaa !39
  %1091 = fsub double %1087, %1090
  %1092 = load double, ptr %1023, align 8, !tbaa !53
  %1093 = call double @llvm.fmuladd.f64(double %1091, double %1092, double 1.000000e+00)
  call void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef %1093, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef %3)
  %1094 = load double, ptr %10, align 8, !tbaa !39
  %1095 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1094, ptr noundef %3)
  store double %1095, ptr %10, align 8, !tbaa !39
  %1096 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1097 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1095, double noundef %1096, ptr noundef %3)
  store double %1097, ptr %10, align 8, !tbaa !39
  %1098 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1099 = fdiv double 1.000000e+00, %1098
  %1100 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1097, double noundef %1099, ptr noundef %3)
  store double %1100, ptr %10, align 8, !tbaa !39
  %1101 = load ptr, ptr %1024, align 8, !tbaa !34
  %1102 = shl nuw nsw i64 %.131268, 1
  %1103 = getelementptr inbounds double, ptr %1101, i64 %1102
  %1104 = load double, ptr %1103, align 8, !tbaa !39
  %1105 = fmul double %1100, %1104
  %1106 = load double, ptr @_ZN11alglib_implL17nlcaul_minlagmultE, align 8, !tbaa !39
  %1107 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !39
  %1108 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %1105, double noundef %1106, double noundef %1107, ptr noundef %3)
  %1109 = load ptr, ptr %1024, align 8, !tbaa !34
  %1110 = getelementptr inbounds double, ptr %1109, i64 %1102
  store double %1108, ptr %1110, align 8, !tbaa !39
  br label %1111

1111:                                             ; preds = %1084, %1081
  %1112 = load ptr, ptr %1019, align 8, !tbaa !34
  %1113 = getelementptr inbounds i8, ptr %1112, i64 %.131268
  %1114 = load i8, ptr %1113, align 1, !tbaa !36, !range !37, !noundef !38
  %1115 = trunc nuw i8 %1114 to i1
  br i1 %1115, label %1116, label %1144

1116:                                             ; preds = %1111
  %1117 = load ptr, ptr %1021, align 8, !tbaa !34
  %1118 = getelementptr inbounds double, ptr %1117, i64 %.131268
  %1119 = load double, ptr %1118, align 8, !tbaa !39
  %1120 = load ptr, ptr %1022, align 8, !tbaa !34
  %1121 = getelementptr inbounds double, ptr %1120, i64 %.131268
  %1122 = load double, ptr %1121, align 8, !tbaa !39
  %1123 = fsub double %1119, %1122
  %1124 = load double, ptr %1023, align 8, !tbaa !53
  %1125 = call double @llvm.fmuladd.f64(double %1123, double %1124, double 1.000000e+00)
  call void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef %1125, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef %3)
  %1126 = load double, ptr %10, align 8, !tbaa !39
  %1127 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1126, ptr noundef %3)
  store double %1127, ptr %10, align 8, !tbaa !39
  %1128 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1129 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1127, double noundef %1128, ptr noundef %3)
  store double %1129, ptr %10, align 8, !tbaa !39
  %1130 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1131 = fdiv double 1.000000e+00, %1130
  %1132 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1129, double noundef %1131, ptr noundef %3)
  store double %1132, ptr %10, align 8, !tbaa !39
  %1133 = load ptr, ptr %1024, align 8, !tbaa !34
  %1134 = shl nuw nsw i64 %.131268, 1
  %1135 = or disjoint i64 %1134, 1
  %1136 = getelementptr inbounds double, ptr %1133, i64 %1135
  %1137 = load double, ptr %1136, align 8, !tbaa !39
  %1138 = fmul double %1132, %1137
  %1139 = load double, ptr @_ZN11alglib_implL17nlcaul_minlagmultE, align 8, !tbaa !39
  %1140 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !39
  %1141 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %1138, double noundef %1139, double noundef %1140, ptr noundef %3)
  br label %.sink.split1488

.sink.split1488:                                  ; preds = %1056, %1116
  %.sink1492 = phi i64 [ %1135, %1116 ], [ %1060, %1056 ]
  %.sink1489 = phi double [ %1141, %1116 ], [ %1080, %1056 ]
  %.4.ph = phi double [ %.310931269, %1116 ], [ %1066, %1056 ]
  %1142 = load ptr, ptr %1024, align 8, !tbaa !34
  %1143 = getelementptr inbounds double, ptr %1142, i64 %.sink1492
  store double %.sink1489, ptr %1143, align 8, !tbaa !39
  br label %1144

1144:                                             ; preds = %.sink.split1488, %1111, %1046
  %.4 = phi double [ %.310931269, %1111 ], [ %.310931269, %1046 ], [ %.4.ph, %.sink.split1488 ]
  %1145 = add nuw nsw i64 %.131268, 1
  %exitcond1376.not = icmp eq i64 %1145, %.01204
  br i1 %exitcond1376.not, label %.preheader1257, label %1035, !llvm.loop !82

..preheader1256_crit_edge:                        ; preds = %1291
  %1146 = add nsw i64 %1160, -1
  br label %.preheader1256

.preheader1256:                                   ; preds = %..preheader1256_crit_edge, %.preheader1257
  %.31181.lcssa = phi double [ %.41182.lcssa, %..preheader1256_crit_edge ], [ %.01178, %.preheader1257 ]
  %.81155.lcssa = phi i64 [ %1157, %..preheader1256_crit_edge ], [ %.711541455, %.preheader1257 ]
  %.81145.lcssa = phi i64 [ %1146, %..preheader1256_crit_edge ], [ %.711441457, %.preheader1257 ]
  %.71135.lcssa = phi i64 [ %.81136.lcssa, %..preheader1256_crit_edge ], [ %.611341459, %.preheader1257 ]
  %.not1228.not1289 = icmp sgt i64 %.01200, 0
  br i1 %.not1228.not1289, label %.lr.ph1291, label %._crit_edge1292

.lr.ph1291:                                       ; preds = %.preheader1256
  %1147 = getelementptr inbounds i8, ptr %0, i64 2120
  %1148 = getelementptr inbounds i8, ptr %0, i64 1280
  %1149 = getelementptr inbounds i8, ptr %0, i64 1344
  %1150 = getelementptr inbounds i8, ptr %0, i64 1152
  %1151 = getelementptr inbounds i8, ptr %0, i64 1216
  %1152 = getelementptr inbounds i8, ptr %0, i64 1968
  %1153 = getelementptr inbounds i8, ptr %0, i64 5720
  br label %1292

1154:                                             ; preds = %.lr.ph1283, %1291
  %.141282 = phi i64 [ 0, %.lr.ph1283 ], [ %1158, %1291 ]
  %1155 = load ptr, ptr %1025, align 8, !tbaa !34
  %1156 = getelementptr inbounds i64, ptr %1155, i64 %.141282
  %1157 = load i64, ptr %1156, align 8, !tbaa !35
  %1158 = add nuw nsw i64 %.141282, 1
  %1159 = getelementptr inbounds i64, ptr %1155, i64 %1158
  %1160 = load i64, ptr %1159, align 8, !tbaa !35
  %.not1230.not1273 = icmp slt i64 %1157, %1160
  br i1 %.not1230.not1273, label %.lr.ph1277, label %._crit_edge1278

.lr.ph1277:                                       ; preds = %1154
  %1161 = load ptr, ptr %1026, align 8, !tbaa !34
  %1162 = load ptr, ptr %1027, align 8, !tbaa !34
  %1163 = load ptr, ptr %1028, align 8, !tbaa !34
  %1164 = sub i64 %1160, %1157
  %xtraiter1513 = and i64 %1164, 3
  %lcmp.mod1514.not = icmp eq i64 %xtraiter1513, 0
  br i1 %lcmp.mod1514.not, label %.prol.loopexit, label %.prol.preheader

.prol.preheader:                                  ; preds = %.lr.ph1277, %.prol.preheader
  %.811361275.prol = phi i64 [ %1172, %.prol.preheader ], [ %1157, %.lr.ph1277 ]
  %.411821274.prol = phi double [ %1171, %.prol.preheader ], [ 0.000000e+00, %.lr.ph1277 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.prol.preheader ], [ 0, %.lr.ph1277 ]
  %1165 = getelementptr inbounds i64, ptr %1162, i64 %.811361275.prol
  %1166 = load i64, ptr %1165, align 8, !tbaa !35
  %1167 = getelementptr inbounds double, ptr %1161, i64 %1166
  %1168 = load double, ptr %1167, align 8, !tbaa !39
  %1169 = getelementptr inbounds double, ptr %1163, i64 %.811361275.prol
  %1170 = load double, ptr %1169, align 8, !tbaa !39
  %1171 = call double @llvm.fmuladd.f64(double %1168, double %1170, double %.411821274.prol)
  %1172 = add nsw i64 %.811361275.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter1513
  br i1 %prol.iter.cmp.not, label %.prol.loopexit, label %.prol.preheader, !llvm.loop !83

.prol.loopexit:                                   ; preds = %.prol.preheader, %.lr.ph1277
  %.lcssa1508.unr = phi double [ poison, %.lr.ph1277 ], [ %1171, %.prol.preheader ]
  %.811361275.unr = phi i64 [ %1157, %.lr.ph1277 ], [ %1172, %.prol.preheader ]
  %.411821274.unr = phi double [ 0.000000e+00, %.lr.ph1277 ], [ %1171, %.prol.preheader ]
  %1173 = sub i64 %1157, %1160
  %1174 = icmp ugt i64 %1173, -4
  br i1 %1174, label %._crit_edge1278, label %.lr.ph1277.new

.lr.ph1277.new:                                   ; preds = %.prol.loopexit, %.lr.ph1277.new
  %.811361275 = phi i64 [ %1206, %.lr.ph1277.new ], [ %.811361275.unr, %.prol.loopexit ]
  %.411821274 = phi double [ %1205, %.lr.ph1277.new ], [ %.411821274.unr, %.prol.loopexit ]
  %1175 = getelementptr inbounds i64, ptr %1162, i64 %.811361275
  %1176 = load i64, ptr %1175, align 8, !tbaa !35
  %1177 = getelementptr inbounds double, ptr %1161, i64 %1176
  %1178 = load double, ptr %1177, align 8, !tbaa !39
  %1179 = getelementptr inbounds double, ptr %1163, i64 %.811361275
  %1180 = load double, ptr %1179, align 8, !tbaa !39
  %1181 = call double @llvm.fmuladd.f64(double %1178, double %1180, double %.411821274)
  %1182 = add nsw i64 %.811361275, 1
  %1183 = getelementptr inbounds i64, ptr %1162, i64 %1182
  %1184 = load i64, ptr %1183, align 8, !tbaa !35
  %1185 = getelementptr inbounds double, ptr %1161, i64 %1184
  %1186 = load double, ptr %1185, align 8, !tbaa !39
  %1187 = getelementptr inbounds double, ptr %1163, i64 %1182
  %1188 = load double, ptr %1187, align 8, !tbaa !39
  %1189 = call double @llvm.fmuladd.f64(double %1186, double %1188, double %1181)
  %1190 = add nsw i64 %.811361275, 2
  %1191 = getelementptr inbounds i64, ptr %1162, i64 %1190
  %1192 = load i64, ptr %1191, align 8, !tbaa !35
  %1193 = getelementptr inbounds double, ptr %1161, i64 %1192
  %1194 = load double, ptr %1193, align 8, !tbaa !39
  %1195 = getelementptr inbounds double, ptr %1163, i64 %1190
  %1196 = load double, ptr %1195, align 8, !tbaa !39
  %1197 = call double @llvm.fmuladd.f64(double %1194, double %1196, double %1189)
  %1198 = add nsw i64 %.811361275, 3
  %1199 = getelementptr inbounds i64, ptr %1162, i64 %1198
  %1200 = load i64, ptr %1199, align 8, !tbaa !35
  %1201 = getelementptr inbounds double, ptr %1161, i64 %1200
  %1202 = load double, ptr %1201, align 8, !tbaa !39
  %1203 = getelementptr inbounds double, ptr %1163, i64 %1198
  %1204 = load double, ptr %1203, align 8, !tbaa !39
  %1205 = call double @llvm.fmuladd.f64(double %1202, double %1204, double %1197)
  %1206 = add nsw i64 %.811361275, 4
  %exitcond1377.not.3 = icmp eq i64 %1206, %1160
  br i1 %exitcond1377.not.3, label %._crit_edge1278, label %.lr.ph1277.new, !llvm.loop !84

._crit_edge1278:                                  ; preds = %.prol.loopexit, %.lr.ph1277.new, %1154
  %.41182.lcssa = phi double [ 0.000000e+00, %1154 ], [ %.lcssa1508.unr, %.prol.loopexit ], [ %1205, %.lr.ph1277.new ]
  %.81136.lcssa = phi i64 [ %1157, %1154 ], [ %1160, %.lr.ph1277.new ], [ %1160, %.prol.loopexit ]
  %1207 = load ptr, ptr %1029, align 8, !tbaa !34
  %1208 = getelementptr inbounds i8, ptr %1207, i64 %.141282
  %1209 = load i8, ptr %1208, align 1, !tbaa !36, !range !37, !noundef !38
  %1210 = trunc nuw i8 %1209 to i1
  br i1 %1210, label %1211, label %1234

1211:                                             ; preds = %._crit_edge1278
  %1212 = load ptr, ptr %1030, align 8, !tbaa !34
  %1213 = getelementptr inbounds i8, ptr %1212, i64 %.141282
  %1214 = load i8, ptr %1213, align 1, !tbaa !36, !range !37, !noundef !38
  %1215 = trunc nuw i8 %1214 to i1
  br i1 %1215, label %1216, label %1234

1216:                                             ; preds = %1211
  %1217 = load ptr, ptr %1031, align 8, !tbaa !34
  %1218 = getelementptr inbounds double, ptr %1217, i64 %.141282
  %1219 = load double, ptr %1218, align 8, !tbaa !39
  %1220 = load ptr, ptr %1032, align 8, !tbaa !34
  %1221 = getelementptr inbounds double, ptr %1220, i64 %.141282
  %1222 = load double, ptr %1221, align 8, !tbaa !39
  %1223 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1219, double noundef %1222)
  br i1 %1223, label %1224, label %._crit_edge1404

._crit_edge1404:                                  ; preds = %1216
  %.pre1405 = load ptr, ptr %1029, align 8, !tbaa !34
  %.phi.trans.insert1406 = getelementptr inbounds i8, ptr %.pre1405, i64 %.141282
  %.pre1407 = load i8, ptr %.phi.trans.insert1406, align 1, !tbaa !36, !range !37
  br label %1234

1224:                                             ; preds = %1216
  %1225 = load ptr, ptr %1034, align 8, !tbaa !34
  %.idx1231 = shl nsw i64 %.141282, 4
  %1226 = getelementptr inbounds i8, ptr %1225, i64 %.idx1231
  %1227 = load double, ptr %1226, align 8, !tbaa !39
  %1228 = load double, ptr %1033, align 8, !tbaa !53
  %1229 = load ptr, ptr %1031, align 8, !tbaa !34
  %1230 = getelementptr inbounds double, ptr %1229, i64 %.141282
  %1231 = load double, ptr %1230, align 8, !tbaa !39
  %1232 = fsub double %.41182.lcssa, %1231
  %1233 = call double @llvm.fmuladd.f64(double %1228, double %1232, double %1227)
  store double %1233, ptr %1226, align 8, !tbaa !39
  br label %1291

1234:                                             ; preds = %._crit_edge1404, %1211, %._crit_edge1278
  %1235 = phi i8 [ %.pre1407, %._crit_edge1404 ], [ %1209, %1211 ], [ %1209, %._crit_edge1278 ]
  %1236 = trunc nuw i8 %1235 to i1
  br i1 %1236, label %1237, label %1261

1237:                                             ; preds = %1234
  %1238 = load ptr, ptr %1031, align 8, !tbaa !34
  %1239 = getelementptr inbounds double, ptr %1238, i64 %.141282
  %1240 = load double, ptr %1239, align 8, !tbaa !39
  %1241 = fsub double %.41182.lcssa, %1240
  %1242 = load double, ptr %1033, align 8, !tbaa !53
  %1243 = call double @llvm.fmuladd.f64(double %1241, double %1242, double 1.000000e+00)
  call void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef %1243, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef %3)
  %1244 = load double, ptr %10, align 8, !tbaa !39
  %1245 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1244, ptr noundef %3)
  store double %1245, ptr %10, align 8, !tbaa !39
  %1246 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1247 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1245, double noundef %1246, ptr noundef %3)
  store double %1247, ptr %10, align 8, !tbaa !39
  %1248 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1249 = fdiv double 1.000000e+00, %1248
  %1250 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1247, double noundef %1249, ptr noundef %3)
  store double %1250, ptr %10, align 8, !tbaa !39
  %1251 = load ptr, ptr %1034, align 8, !tbaa !34
  %1252 = shl nuw nsw i64 %.141282, 1
  %1253 = getelementptr inbounds double, ptr %1251, i64 %1252
  %1254 = load double, ptr %1253, align 8, !tbaa !39
  %1255 = fmul double %1250, %1254
  %1256 = load double, ptr @_ZN11alglib_implL17nlcaul_minlagmultE, align 8, !tbaa !39
  %1257 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !39
  %1258 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %1255, double noundef %1256, double noundef %1257, ptr noundef %3)
  %1259 = load ptr, ptr %1034, align 8, !tbaa !34
  %1260 = getelementptr inbounds double, ptr %1259, i64 %1252
  store double %1258, ptr %1260, align 8, !tbaa !39
  br label %1261

1261:                                             ; preds = %1237, %1234
  %1262 = load ptr, ptr %1030, align 8, !tbaa !34
  %1263 = getelementptr inbounds i8, ptr %1262, i64 %.141282
  %1264 = load i8, ptr %1263, align 1, !tbaa !36, !range !37, !noundef !38
  %1265 = trunc nuw i8 %1264 to i1
  br i1 %1265, label %1266, label %1291

1266:                                             ; preds = %1261
  %1267 = load ptr, ptr %1032, align 8, !tbaa !34
  %1268 = getelementptr inbounds double, ptr %1267, i64 %.141282
  %1269 = load double, ptr %1268, align 8, !tbaa !39
  %1270 = fsub double %1269, %.41182.lcssa
  %1271 = load double, ptr %1033, align 8, !tbaa !53
  %1272 = call double @llvm.fmuladd.f64(double %1270, double %1271, double 1.000000e+00)
  call void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef %1272, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef %3)
  %1273 = load double, ptr %10, align 8, !tbaa !39
  %1274 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1273, ptr noundef %3)
  store double %1274, ptr %10, align 8, !tbaa !39
  %1275 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1276 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1274, double noundef %1275, ptr noundef %3)
  store double %1276, ptr %10, align 8, !tbaa !39
  %1277 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1278 = fdiv double 1.000000e+00, %1277
  %1279 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1276, double noundef %1278, ptr noundef %3)
  store double %1279, ptr %10, align 8, !tbaa !39
  %1280 = load ptr, ptr %1034, align 8, !tbaa !34
  %1281 = shl nuw nsw i64 %.141282, 1
  %1282 = or disjoint i64 %1281, 1
  %1283 = getelementptr inbounds double, ptr %1280, i64 %1282
  %1284 = load double, ptr %1283, align 8, !tbaa !39
  %1285 = fmul double %1279, %1284
  %1286 = load double, ptr @_ZN11alglib_implL17nlcaul_minlagmultE, align 8, !tbaa !39
  %1287 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !39
  %1288 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %1285, double noundef %1286, double noundef %1287, ptr noundef %3)
  %1289 = load ptr, ptr %1034, align 8, !tbaa !34
  %1290 = getelementptr inbounds double, ptr %1289, i64 %1282
  store double %1288, ptr %1290, align 8, !tbaa !39
  br label %1291

1291:                                             ; preds = %1224, %1266, %1261
  %exitcond1378.not = icmp eq i64 %1158, %.01202
  br i1 %exitcond1378.not, label %..preheader1256_crit_edge, label %1154, !llvm.loop !85

1292:                                             ; preds = %.lr.ph1291, %1384
  %.151290 = phi i64 [ 0, %.lr.ph1291 ], [ %1294, %1384 ]
  %1293 = load ptr, ptr %1147, align 8, !tbaa !34
  %1294 = add nuw nsw i64 %.151290, 1
  %1295 = getelementptr inbounds double, ptr %1293, i64 %1294
  %1296 = load double, ptr %1295, align 8, !tbaa !39
  %1297 = load ptr, ptr %1148, align 8, !tbaa !34
  %1298 = getelementptr inbounds i8, ptr %1297, i64 %.151290
  %1299 = load i8, ptr %1298, align 1, !tbaa !36, !range !37, !noundef !38
  %1300 = trunc nuw i8 %1299 to i1
  br i1 %1300, label %1301, label %1325

1301:                                             ; preds = %1292
  %1302 = load ptr, ptr %1149, align 8, !tbaa !34
  %1303 = getelementptr inbounds i8, ptr %1302, i64 %.151290
  %1304 = load i8, ptr %1303, align 1, !tbaa !36, !range !37, !noundef !38
  %1305 = trunc nuw i8 %1304 to i1
  br i1 %1305, label %1306, label %1325

1306:                                             ; preds = %1301
  %1307 = load ptr, ptr %1150, align 8, !tbaa !34
  %1308 = getelementptr inbounds double, ptr %1307, i64 %.151290
  %1309 = load double, ptr %1308, align 8, !tbaa !39
  %1310 = load ptr, ptr %1151, align 8, !tbaa !34
  %1311 = getelementptr inbounds double, ptr %1310, i64 %.151290
  %1312 = load double, ptr %1311, align 8, !tbaa !39
  %1313 = call noundef zeroext i1 @_ZN11alglib_impl8ae_fp_eqEdd(double noundef %1309, double noundef %1312)
  br i1 %1313, label %1314, label %._crit_edge1408

._crit_edge1408:                                  ; preds = %1306
  %.pre1409 = load ptr, ptr %1148, align 8, !tbaa !34
  %.phi.trans.insert1410 = getelementptr inbounds i8, ptr %.pre1409, i64 %.151290
  %.pre1411 = load i8, ptr %.phi.trans.insert1410, align 1, !tbaa !36, !range !37
  br label %1325

1314:                                             ; preds = %1306
  %1315 = load ptr, ptr %1153, align 8, !tbaa !34
  %1316 = add i64 %.151290, %.01202
  %.idx1229 = shl i64 %1316, 4
  %1317 = getelementptr inbounds i8, ptr %1315, i64 %.idx1229
  %1318 = load double, ptr %1317, align 8, !tbaa !39
  %1319 = load double, ptr %1152, align 8, !tbaa !53
  %1320 = load ptr, ptr %1150, align 8, !tbaa !34
  %1321 = getelementptr inbounds double, ptr %1320, i64 %.151290
  %1322 = load double, ptr %1321, align 8, !tbaa !39
  %1323 = fsub double %1296, %1322
  %1324 = call double @llvm.fmuladd.f64(double %1319, double %1323, double %1318)
  store double %1324, ptr %1317, align 8, !tbaa !39
  br label %1384

1325:                                             ; preds = %._crit_edge1408, %1301, %1292
  %1326 = phi i8 [ %.pre1411, %._crit_edge1408 ], [ %1299, %1301 ], [ %1299, %1292 ]
  %1327 = trunc nuw i8 %1326 to i1
  br i1 %1327, label %1328, label %1353

1328:                                             ; preds = %1325
  %1329 = load ptr, ptr %1150, align 8, !tbaa !34
  %1330 = getelementptr inbounds double, ptr %1329, i64 %.151290
  %1331 = load double, ptr %1330, align 8, !tbaa !39
  %1332 = fsub double %1296, %1331
  %1333 = load double, ptr %1152, align 8, !tbaa !53
  %1334 = call double @llvm.fmuladd.f64(double %1332, double %1333, double 1.000000e+00)
  call void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef %1334, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef %3)
  %1335 = load double, ptr %10, align 8, !tbaa !39
  %1336 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1335, ptr noundef %3)
  store double %1336, ptr %10, align 8, !tbaa !39
  %1337 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1338 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1336, double noundef %1337, ptr noundef %3)
  store double %1338, ptr %10, align 8, !tbaa !39
  %1339 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1340 = fdiv double 1.000000e+00, %1339
  %1341 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1338, double noundef %1340, ptr noundef %3)
  store double %1341, ptr %10, align 8, !tbaa !39
  %1342 = load ptr, ptr %1153, align 8, !tbaa !34
  %1343 = add i64 %.151290, %.01202
  %1344 = shl i64 %1343, 1
  %1345 = getelementptr inbounds double, ptr %1342, i64 %1344
  %1346 = load double, ptr %1345, align 8, !tbaa !39
  %1347 = fmul double %1341, %1346
  %1348 = load double, ptr @_ZN11alglib_implL17nlcaul_minlagmultE, align 8, !tbaa !39
  %1349 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !39
  %1350 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %1347, double noundef %1348, double noundef %1349, ptr noundef %3)
  %1351 = load ptr, ptr %1153, align 8, !tbaa !34
  %1352 = getelementptr inbounds double, ptr %1351, i64 %1344
  store double %1350, ptr %1352, align 8, !tbaa !39
  br label %1353

1353:                                             ; preds = %1328, %1325
  %1354 = load ptr, ptr %1149, align 8, !tbaa !34
  %1355 = getelementptr inbounds i8, ptr %1354, i64 %.151290
  %1356 = load i8, ptr %1355, align 1, !tbaa !36, !range !37, !noundef !38
  %1357 = trunc nuw i8 %1356 to i1
  br i1 %1357, label %1358, label %1384

1358:                                             ; preds = %1353
  %1359 = load ptr, ptr %1151, align 8, !tbaa !34
  %1360 = getelementptr inbounds double, ptr %1359, i64 %.151290
  %1361 = load double, ptr %1360, align 8, !tbaa !39
  %1362 = fsub double %1361, %1296
  %1363 = load double, ptr %1152, align 8, !tbaa !53
  %1364 = call double @llvm.fmuladd.f64(double %1362, double %1363, double 1.000000e+00)
  call void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef %1364, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef %3)
  %1365 = load double, ptr %10, align 8, !tbaa !39
  %1366 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1365, ptr noundef %3)
  store double %1366, ptr %10, align 8, !tbaa !39
  %1367 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1368 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1366, double noundef %1367, ptr noundef %3)
  store double %1368, ptr %10, align 8, !tbaa !39
  %1369 = load double, ptr @_ZN11alglib_implL19nlcaul_aulmaxgrowthE, align 8, !tbaa !39
  %1370 = fdiv double 1.000000e+00, %1369
  %1371 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1368, double noundef %1370, ptr noundef %3)
  store double %1371, ptr %10, align 8, !tbaa !39
  %1372 = load ptr, ptr %1153, align 8, !tbaa !34
  %1373 = add i64 %.151290, %.01202
  %1374 = shl i64 %1373, 1
  %1375 = or disjoint i64 %1374, 1
  %1376 = getelementptr inbounds double, ptr %1372, i64 %1375
  %1377 = load double, ptr %1376, align 8, !tbaa !39
  %1378 = fmul double %1371, %1377
  %1379 = load double, ptr @_ZN11alglib_implL17nlcaul_minlagmultE, align 8, !tbaa !39
  %1380 = load double, ptr @_ZN11alglib_implL17nlcaul_maxlagmultE, align 8, !tbaa !39
  %1381 = call noundef double @_ZN11alglib_impl8boundvalEdddPNS_8ae_stateE(double noundef %1378, double noundef %1379, double noundef %1380, ptr noundef %3)
  %1382 = load ptr, ptr %1153, align 8, !tbaa !34
  %1383 = getelementptr inbounds double, ptr %1382, i64 %1375
  store double %1381, ptr %1383, align 8, !tbaa !39
  br label %1384

1384:                                             ; preds = %1314, %1358, %1353
  %exitcond1379.not = icmp eq i64 %1294, %.01200
  br i1 %exitcond1379.not, label %._crit_edge1292, label %1292, !llvm.loop !86

._crit_edge1292:                                  ; preds = %1384, %.preheader1256
  %.51183.lcssa = phi double [ %.31181.lcssa, %.preheader1256 ], [ %1296, %1384 ]
  %1385 = getelementptr inbounds i8, ptr %0, i64 22296
  %1386 = load double, ptr @_ZN11alglib_implL19nlcaul_xbfgsmaxhessE, align 8, !tbaa !39
  %1387 = getelementptr inbounds i8, ptr %0, i64 1968
  %1388 = load double, ptr %1387, align 8, !tbaa !53
  %1389 = fadd double %1388, 1.000000e+00
  %1390 = fmul double %1386, %1389
  %1391 = shl nsw i64 %.01204, 1
  %1392 = getelementptr inbounds i8, ptr %0, i64 5600
  %1393 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1391, ptr noundef nonnull %1392, ptr noundef %3)
  %1394 = fadd double %1393, 1.000000e+00
  %1395 = add i64 %.01200, %.01202
  %1396 = shl i64 %1395, 1
  %1397 = getelementptr inbounds i8, ptr %0, i64 5664
  %1398 = call noundef double @_ZN11alglib_impl8rmaxabsvElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1396, ptr noundef nonnull %1397, ptr noundef %3)
  %1399 = fadd double %1398, 1.000000e+00
  %1400 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %1394, double noundef %1399, ptr noundef %3)
  %1401 = fmul double %1390, %1400
  call void @_ZN11alglib_impl17hessiansetmaxhessEPNS_12xbfgshessianEdPNS_8ae_stateE(ptr noundef nonnull %1385, double noundef %1401, ptr noundef %3)
  %1402 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %3)
  %1403 = load double, ptr %1387, align 8, !tbaa !53
  %1404 = fmul double %1402, %1403
  %1405 = load double, ptr @_ZN11alglib_implL13nlcaul_rhomaxE, align 8, !tbaa !39
  %1406 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1404, double noundef %1405, ptr noundef %3)
  store double %1406, ptr %1387, align 8, !tbaa !53
  %1407 = insertelement <2 x double> %903, double %.31093.lcssa, i64 0
  br i1 %.pre-phi14261451, label %367, label %375

.sink.split1496:                                  ; preds = %1010, %1008, %1001, %996
  %.str.1284.sink = phi ptr [ @.str.1281, %996 ], [ @.str.1282, %1001 ], [ @.str.1283, %1008 ], [ @.str.1284, %1010 ]
  %.sink1493.ph = phi i64 [ 1, %996 ], [ 7, %1001 ], [ 7, %1008 ], [ 8, %1010 ]
  call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull %.str.1284.sink)
  br label %1408

1408:                                             ; preds = %.sink.split1496, %1011, %1010, %1008, %1001, %996
  %.sink1493 = phi i64 [ 1, %996 ], [ 7, %1001 ], [ 7, %1008 ], [ 8, %1010 ], [ 5, %1011 ], [ %.sink1493.ph, %.sink.split1496 ]
  %1409 = getelementptr inbounds i8, ptr %0, i64 31128
  store i64 %.sink1493, ptr %1409, align 8, !tbaa !51
  call void @_ZN11alglib_implL25nlcaul_clearrequestfieldsEPNS_11minaulstateEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef %3)
  %1410 = getelementptr inbounds i8, ptr %0, i64 5000
  call void @_ZN11alglib_implL23nlcaul_aulsendtruepointEPNS_11minaulstateEPKNS_9ae_vectorEPNS_8ae_stateE(ptr noundef nonnull %0, ptr noundef nonnull %1410, ptr noundef %3)
  %1411 = getelementptr inbounds i8, ptr %0, i64 5120
  %1412 = load ptr, ptr %1411, align 8, !tbaa !34
  %1413 = load double, ptr %1412, align 8, !tbaa !39
  %1414 = getelementptr inbounds i8, ptr %0, i64 5976
  %1415 = load ptr, ptr %1414, align 8, !tbaa !34
  %1416 = load double, ptr %1415, align 8, !tbaa !39
  %1417 = fmul double %1413, %1416
  %1418 = getelementptr inbounds i8, ptr %0, i64 1952
  store double %1417, ptr %1418, align 8, !tbaa !52
  %1419 = getelementptr inbounds i8, ptr %0, i64 1962
  store i8 1, ptr %1419, align 2, !tbaa !45
  br label %1432

1420:                                             ; preds = %98
  %1421 = getelementptr inbounds i8, ptr %0, i64 1962
  store i8 0, ptr %1421, align 2, !tbaa !45
  %1422 = trunc nuw i8 %.01196 to i1
  br i1 %1422, label %1423, label %1431

1423:                                             ; preds = %1420
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.774)
  %1424 = getelementptr inbounds i8, ptr %0, i64 5120
  %1425 = load ptr, ptr %1424, align 8, !tbaa !34
  %1426 = load double, ptr %1425, align 8, !tbaa !39
  %1427 = getelementptr inbounds i8, ptr %0, i64 5976
  %1428 = load ptr, ptr %1427, align 8, !tbaa !34
  %1429 = load double, ptr %1428, align 8, !tbaa !39
  %1430 = fmul double %1426, %1429
  tail call void (ptr, ...) @_ZN11alglib_impl8ae_traceEPKcz(ptr noundef nonnull @.str.777, double noundef %1430)
  br label %1431

1431:                                             ; preds = %1423, %1420
  tail call void @_ZN11alglib_impl28smoothnessmonitortracestatusEPKNS_17smoothnessmonitorEbPNS_8ae_stateE(ptr noundef %1, i1 noundef zeroext %1422, ptr noundef %3)
  br label %1528

1432:                                             ; preds = %1408, %796, %722, %666, %302, %._crit_edge1357
  %.sink1495 = phi i32 [ 5, %1408 ], [ 4, %796 ], [ 3, %722 ], [ 2, %666 ], [ 1, %302 ], [ 0, %._crit_edge1357 ]
  %.11205 = phi i64 [ %.01204, %1408 ], [ %.01204, %796 ], [ %.01204, %722 ], [ %.01204, %666 ], [ %.01204, %302 ], [ %103, %._crit_edge1357 ]
  %.11203 = phi i64 [ %.01202, %1408 ], [ %.01202, %796 ], [ %.01202, %722 ], [ %.01202, %666 ], [ %.01202, %302 ], [ %105, %._crit_edge1357 ]
  %.11201 = phi i64 [ %.01200, %1408 ], [ %.01200, %796 ], [ %.01200, %722 ], [ %.01200, %666 ], [ %.01200, %302 ], [ %107, %._crit_edge1357 ]
  %.11199 = phi i64 [ %.01198, %1408 ], [ %.01198, %796 ], [ %.01198, %722 ], [ %.01198, %666 ], [ %.01198, %302 ], [ %108, %._crit_edge1357 ]
  %.11197 = phi i8 [ %.01196, %1408 ], [ %.01196, %796 ], [ %.01196, %722 ], [ %.01196, %666 ], [ %.01196, %302 ], [ %110, %._crit_edge1357 ]
  %.11195 = phi i8 [ %.01194, %1408 ], [ %.01194, %796 ], [ %.01194, %722 ], [ %.01194, %666 ], [ %.01194, %302 ], [ %118, %._crit_edge1357 ]
  %.11193 = phi i8 [ %.01192, %1408 ], [ %.01192, %796 ], [ %.01192, %722 ], [ %.01192, %666 ], [ %.01192, %302 ], [ %117, %._crit_edge1357 ]
  %.21191 = phi double [ %.01189, %1408 ], [ %.01189, %796 ], [ %.11190, %722 ], [ %.11190, %666 ], [ %.01189, %302 ], [ %.01189, %._crit_edge1357 ]
  %.11188 = phi double [ %.01187, %1408 ], [ %.01187, %796 ], [ %694, %722 ], [ %.01187, %666 ], [ %.01187, %302 ], [ %.01187, %._crit_edge1357 ]
  %.61184 = phi double [ %.01178, %1408 ], [ %.01178, %796 ], [ %.21180, %722 ], [ %.21180, %666 ], [ %.01178, %302 ], [ %.01178, %._crit_edge1357 ]
  %.16 = phi i64 [ %.121453, %1408 ], [ %.101177, %796 ], [ %.91176, %722 ], [ %.91176, %666 ], [ %.01167, %302 ], [ %.41171.lcssa, %._crit_edge1357 ]
  %.10 = phi i64 [ %.01157, %1408 ], [ %.01157, %796 ], [ %.91166, %722 ], [ %.91166, %666 ], [ %.01157, %302 ], [ %.01157, %._crit_edge1357 ]
  %.91156 = phi i64 [ %.711541455, %1408 ], [ %.51152, %796 ], [ %.41151, %722 ], [ %.41151, %666 ], [ %.01147, %302 ], [ %.01147, %._crit_edge1357 ]
  %.91146 = phi i64 [ %.711441457, %1408 ], [ %.51142, %796 ], [ %.41141, %722 ], [ %.41141, %666 ], [ %.01137, %302 ], [ %.01137, %._crit_edge1357 ]
  %.9 = phi i64 [ %.611341459, %1408 ], [ %.31131, %796 ], [ %.21130, %722 ], [ %.21130, %666 ], [ %.01128, %302 ], [ %.01128, %._crit_edge1357 ]
  %.61127 = phi double [ %.01121, %1408 ], [ %.01121, %796 ], [ %.51126, %722 ], [ %.51126, %666 ], [ %.01121, %302 ], [ %.01121, %._crit_edge1357 ]
  %.51120 = phi double [ %.01115, %1408 ], [ %.01115, %796 ], [ %.41119, %722 ], [ %.41119, %666 ], [ %.01115, %302 ], [ %.01115, %._crit_edge1357 ]
  %.51114 = phi double [ %.01109, %1408 ], [ %.01109, %796 ], [ %.41113, %722 ], [ %.41113, %666 ], [ %.01109, %302 ], [ %.01109, %._crit_edge1357 ]
  %.8 = phi i8 [ %.71254, %1408 ], [ %.01103, %796 ], [ %.21105, %722 ], [ %.21105, %666 ], [ %.01103, %302 ], [ %.01103, %._crit_edge1357 ]
  %.21102 = phi double [ %.01100, %1408 ], [ %.01100, %796 ], [ %.11101, %722 ], [ %.11101, %666 ], [ %.01100, %302 ], [ %.01100, %._crit_edge1357 ]
  %.51099 = phi double [ %.410981461, %1408 ], [ %.31097, %796 ], [ %.21096, %722 ], [ %.21096, %666 ], [ %.01094, %302 ], [ %.01094, %._crit_edge1357 ]
  %.31084 = phi double [ %.01081, %1408 ], [ %.01081, %796 ], [ %.21083, %722 ], [ %.21083, %666 ], [ %.01081, %302 ], [ %.01081, %._crit_edge1357 ]
  %.31080 = phi double [ %.01077, %1408 ], [ %.01077, %796 ], [ %.21079, %722 ], [ %.21079, %666 ], [ %.01077, %302 ], [ %.01077, %._crit_edge1357 ]
  %.3 = phi double [ %.0, %1408 ], [ %.0, %796 ], [ %.2, %722 ], [ %.2, %666 ], [ %.0, %302 ], [ %.0, %._crit_edge1357 ]
  %1433 = phi <2 x double> [ %903, %1408 ], [ %101, %796 ], [ %662, %722 ], [ %662, %666 ], [ %101, %302 ], [ %101, %._crit_edge1357 ]
  store i32 %.sink1495, ptr %15, align 8, !tbaa !5
  %1434 = getelementptr inbounds i8, ptr %0, i64 31328
  %1435 = load ptr, ptr %1434, align 8, !tbaa !34
  store i64 %.11205, ptr %1435, align 8, !tbaa !35
  %1436 = load ptr, ptr %1434, align 8, !tbaa !34
  %1437 = getelementptr inbounds i8, ptr %1436, i64 8
  store i64 %.11203, ptr %1437, align 8, !tbaa !35
  %1438 = load ptr, ptr %1434, align 8, !tbaa !34
  %1439 = getelementptr inbounds i8, ptr %1438, i64 16
  store i64 %.11201, ptr %1439, align 8, !tbaa !35
  %1440 = load ptr, ptr %1434, align 8, !tbaa !34
  %1441 = getelementptr inbounds i8, ptr %1440, i64 24
  store i64 %.11199, ptr %1441, align 8, !tbaa !35
  %1442 = load ptr, ptr %1434, align 8, !tbaa !34
  %1443 = getelementptr inbounds i8, ptr %1442, i64 32
  store i64 %.16, ptr %1443, align 8, !tbaa !35
  %1444 = load ptr, ptr %1434, align 8, !tbaa !34
  %1445 = getelementptr inbounds i8, ptr %1444, i64 40
  store i64 %.10, ptr %1445, align 8, !tbaa !35
  %1446 = load ptr, ptr %1434, align 8, !tbaa !34
  %1447 = getelementptr inbounds i8, ptr %1446, i64 48
  store i64 %.91156, ptr %1447, align 8, !tbaa !35
  %1448 = load ptr, ptr %1434, align 8, !tbaa !34
  %1449 = getelementptr inbounds i8, ptr %1448, i64 56
  store i64 %.91146, ptr %1449, align 8, !tbaa !35
  %1450 = load ptr, ptr %1434, align 8, !tbaa !34
  %1451 = getelementptr inbounds i8, ptr %1450, i64 64
  store i64 %.9, ptr %1451, align 8, !tbaa !35
  %1452 = load i64, ptr %8, align 8, !tbaa !35
  %1453 = load ptr, ptr %1434, align 8, !tbaa !34
  %1454 = getelementptr inbounds i8, ptr %1453, i64 72
  store i64 %1452, ptr %1454, align 8, !tbaa !35
  %1455 = getelementptr inbounds i8, ptr %0, i64 31392
  %1456 = load ptr, ptr %1455, align 8, !tbaa !34
  %1457 = and i8 %.11197, 1
  store i8 %1457, ptr %1456, align 1, !tbaa !36
  %1458 = load ptr, ptr %1455, align 8, !tbaa !34
  %1459 = getelementptr inbounds i8, ptr %1458, i64 1
  %1460 = and i8 %.11195, 1
  store i8 %1460, ptr %1459, align 1, !tbaa !36
  %1461 = load ptr, ptr %1455, align 8, !tbaa !34
  %1462 = getelementptr inbounds i8, ptr %1461, i64 2
  %1463 = and i8 %.11193, 1
  store i8 %1463, ptr %1462, align 1, !tbaa !36
  %1464 = load ptr, ptr %1455, align 8, !tbaa !34
  %1465 = getelementptr inbounds i8, ptr %1464, i64 3
  %1466 = and i8 %.8, 1
  store i8 %1466, ptr %1465, align 1, !tbaa !36
  %1467 = load ptr, ptr %1455, align 8, !tbaa !34
  %1468 = getelementptr inbounds i8, ptr %1467, i64 4
  store i8 %.01085, ptr %1468, align 1, !tbaa !36
  %1469 = load double, ptr %5, align 8, !tbaa !39
  %1470 = getelementptr inbounds i8, ptr %0, i64 31456
  %1471 = load ptr, ptr %1470, align 8, !tbaa !34
  store double %1469, ptr %1471, align 8, !tbaa !39
  %1472 = load ptr, ptr %1470, align 8, !tbaa !34
  %1473 = getelementptr inbounds i8, ptr %1472, i64 8
  store double %.21191, ptr %1473, align 8, !tbaa !39
  %1474 = load ptr, ptr %1470, align 8, !tbaa !34
  %1475 = getelementptr inbounds i8, ptr %1474, i64 16
  store double %.11188, ptr %1475, align 8, !tbaa !39
  %1476 = load ptr, ptr %1470, align 8, !tbaa !34
  %1477 = getelementptr inbounds i8, ptr %1476, i64 24
  store double %.01186, ptr %1477, align 8, !tbaa !39
  %1478 = load ptr, ptr %1470, align 8, !tbaa !34
  %1479 = getelementptr inbounds i8, ptr %1478, i64 32
  store double %.01185, ptr %1479, align 8, !tbaa !39
  %1480 = load ptr, ptr %1470, align 8, !tbaa !34
  %1481 = getelementptr inbounds i8, ptr %1480, i64 40
  store double %.61184, ptr %1481, align 8, !tbaa !39
  %1482 = load double, ptr %6, align 8, !tbaa !39
  %1483 = load ptr, ptr %1470, align 8, !tbaa !34
  %1484 = getelementptr inbounds i8, ptr %1483, i64 48
  store double %1482, ptr %1484, align 8, !tbaa !39
  %1485 = load double, ptr %7, align 8, !tbaa !39
  %1486 = load ptr, ptr %1470, align 8, !tbaa !34
  %1487 = getelementptr inbounds i8, ptr %1486, i64 56
  store double %1485, ptr %1487, align 8, !tbaa !39
  %1488 = load ptr, ptr %1470, align 8, !tbaa !34
  %1489 = getelementptr inbounds i8, ptr %1488, i64 64
  store double %.61127, ptr %1489, align 8, !tbaa !39
  %1490 = load ptr, ptr %1470, align 8, !tbaa !34
  %1491 = getelementptr inbounds i8, ptr %1490, i64 72
  store double %.51120, ptr %1491, align 8, !tbaa !39
  %1492 = load ptr, ptr %1470, align 8, !tbaa !34
  %1493 = getelementptr inbounds i8, ptr %1492, i64 80
  store double %.51114, ptr %1493, align 8, !tbaa !39
  %1494 = load ptr, ptr %1470, align 8, !tbaa !34
  %1495 = getelementptr inbounds i8, ptr %1494, i64 88
  store double %.21102, ptr %1495, align 8, !tbaa !39
  %1496 = load double, ptr %9, align 8, !tbaa !39
  %1497 = load ptr, ptr %1470, align 8, !tbaa !34
  %1498 = getelementptr inbounds i8, ptr %1497, i64 96
  store double %1496, ptr %1498, align 8, !tbaa !39
  %1499 = load double, ptr %10, align 8, !tbaa !39
  %1500 = load ptr, ptr %1470, align 8, !tbaa !34
  %1501 = getelementptr inbounds i8, ptr %1500, i64 104
  store double %1499, ptr %1501, align 8, !tbaa !39
  %1502 = load double, ptr %11, align 8, !tbaa !39
  %1503 = load ptr, ptr %1470, align 8, !tbaa !34
  %1504 = getelementptr inbounds i8, ptr %1503, i64 112
  store double %1502, ptr %1504, align 8, !tbaa !39
  %1505 = load ptr, ptr %1470, align 8, !tbaa !34
  %1506 = getelementptr inbounds i8, ptr %1505, i64 120
  store double %.51099, ptr %1506, align 8, !tbaa !39
  %1507 = load ptr, ptr %1470, align 8, !tbaa !34
  %1508 = getelementptr inbounds i8, ptr %1507, i64 128
  %1509 = extractelement <2 x double> %1433, i64 0
  store double %1509, ptr %1508, align 8, !tbaa !39
  %1510 = load ptr, ptr %1470, align 8, !tbaa !34
  %1511 = getelementptr inbounds i8, ptr %1510, i64 136
  %1512 = extractelement <2 x double> %1433, i64 1
  store double %1512, ptr %1511, align 8, !tbaa !39
  %1513 = load double, ptr %12, align 8, !tbaa !39
  %1514 = load ptr, ptr %1470, align 8, !tbaa !34
  %1515 = getelementptr inbounds i8, ptr %1514, i64 144
  store double %1513, ptr %1515, align 8, !tbaa !39
  %1516 = load double, ptr %13, align 8, !tbaa !39
  %1517 = load ptr, ptr %1470, align 8, !tbaa !34
  %1518 = getelementptr inbounds i8, ptr %1517, i64 152
  store double %1516, ptr %1518, align 8, !tbaa !39
  %1519 = load double, ptr %14, align 8, !tbaa !39
  %1520 = load ptr, ptr %1470, align 8, !tbaa !34
  %1521 = getelementptr inbounds i8, ptr %1520, i64 160
  store double %1519, ptr %1521, align 8, !tbaa !39
  %1522 = load ptr, ptr %1470, align 8, !tbaa !34
  %1523 = getelementptr inbounds i8, ptr %1522, i64 168
  store double %.31084, ptr %1523, align 8, !tbaa !39
  %1524 = load ptr, ptr %1470, align 8, !tbaa !34
  %1525 = getelementptr inbounds i8, ptr %1524, i64 176
  store double %.31080, ptr %1525, align 8, !tbaa !39
  %1526 = load ptr, ptr %1470, align 8, !tbaa !34
  %1527 = getelementptr inbounds i8, ptr %1526, i64 184
  store double %.3, ptr %1527, align 8, !tbaa !39
  br label %1528

1528:                                             ; preds = %1432, %1431, %806, %675, %300
  %.01206 = phi i1 [ true, %1432 ], [ false, %300 ], [ false, %675 ], [ false, %806 ], [ false, %1431 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #6
  ret i1 %.01206
}

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN11alglib_implL20nlcaul_aulretrievesjEPNS_11minaulstateEPNS_11varsfuncjacES3_PNS_8ae_stateE(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11alglib_impl32inequalityshiftedbarrierfunctionEdPdS0_S0_PNS_8ae_stateE(double noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

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

attributes #0 = { mustprogress 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 nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { 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 #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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { 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, !33, i64 31264}
!6 = !{!"_ZTSN11alglib_impl11minaulstateE", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !10, i64 88, !10, i64 152, !10, i64 216, !10, i64 280, !10, i64 344, !10, i64 408, !14, i64 472, !10, i64 840, !10, i64 904, !10, i64 968, !10, i64 1032, !10, i64 1096, !10, i64 1160, !10, i64 1224, !10, i64 1288, !10, i64 1352, !15, i64 1416, !7, i64 1440, !7, i64 1448, !10, i64 1456, !10, i64 1520, !14, i64 1584, !16, i64 1952, !11, i64 1960, !11, i64 1961, !11, i64 1962, !16, i64 1968, !17, i64 1976, !17, i64 2576, !17, i64 3176, !17, i64 3776, !17, i64 4376, !17, i64 4976, !16, i64 5576, !7, i64 5584, !7, i64 5592, !10, i64 5600, !10, i64 5664, !10, i64 5728, !10, i64 5792, !10, i64 5856, !10, i64 5920, !10, i64 5984, !19, i64 6048, !30, i64 22296, !30, i64 25656, !10, i64 29016, !10, i64 29080, !10, i64 29144, !10, i64 29208, !7, i64 29272, !7, i64 29280, !7, i64 29288, !16, i64 29296, !7, i64 29304, !31, i64 29312, !16, i64 29504, !16, i64 29512, !10, i64 29520, !10, i64 29584, !10, i64 29648, !18, i64 29712, !10, i64 29792, !10, i64 29856, !17, i64 29920, !17, i64 30520, !7, i64 31120, !7, i64 31128, !7, i64 31136, !16, i64 31144, !7, i64 31152, !16, i64 31160, !7, i64 31168, !16, i64 31176, !7, i64 31184, !7, i64 31192, !10, i64 31200, !32, i64 31264}
!7 = !{!"long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSN11alglib_impl9ae_vectorE", !7, i64 0, !7, i64 8, !11, i64 16, !12, i64 24, !8, i64 56}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24}
!13 = !{!"any pointer", !8, i64 0}
!14 = !{!"_ZTSN11alglib_impl12sparsematrixE", !10, i64 0, !10, i64 64, !10, i64 128, !10, i64 192, !10, i64 256, !7, i64 320, !7, i64 328, !7, i64 336, !7, i64 344, !7, i64 352, !7, i64 360}
!15 = !{!"_ZTSN11alglib_impl19nlpstoppingcriteriaE", !16, i64 0, !16, i64 8, !7, i64 16}
!16 = !{!"double", !8, i64 0}
!17 = !{!"_ZTSN11alglib_impl11varsfuncjacE", !7, i64 0, !7, i64 8, !11, i64 16, !10, i64 24, !10, i64 88, !18, i64 152, !14, i64 232}
!18 = !{!"_ZTSN11alglib_impl9ae_matrixE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !11, i64 32, !12, i64 40, !8, i64 72}
!19 = !{!"_ZTSN11alglib_impl20minaulpreconditionerE", !7, i64 0, !7, i64 8, !20, i64 16, !14, i64 15080, !7, i64 15448, !18, i64 15456, !18, i64 15536, !7, i64 15616, !18, i64 15624, !10, i64 15704, !10, i64 15768, !10, i64 15832, !10, i64 15896, !18, i64 15960, !18, i64 16040, !10, i64 16120, !10, i64 16184}
!20 = !{!"_ZTSN11alglib_impl14spcholanalysisE", !7, i64 0, !7, i64 8, !7, i64 16, !11, i64 24, !7, i64 32, !16, i64 40, !16, i64 48, !16, i64 56, !16, i64 64, !10, i64 72, !11, i64 136, !11, i64 137, !11, i64 138, !11, i64 139, !11, i64 140, !10, i64 144, !7, i64 208, !10, i64 216, !10, i64 280, !10, i64 344, !10, i64 408, !10, i64 472, !10, i64 536, !11, i64 600, !10, i64 608, !10, i64 672, !10, i64 736, !10, i64 800, !10, i64 864, !10, i64 928, !11, i64 992, !11, i64 993, !21, i64 1000, !10, i64 1512, !10, i64 1576, !10, i64 1640, !10, i64 1704, !10, i64 1768, !10, i64 1832, !22, i64 1896, !22, i64 2040, !22, i64 2184, !22, i64 2328, !22, i64 2472, !22, i64 2616, !10, i64 2760, !10, i64 2824, !10, i64 2888, !10, i64 2952, !10, i64 3016, !24, i64 3080, !29, i64 7464, !10, i64 13816, !10, i64 13880, !10, i64 13944, !10, i64 14008, !10, i64 14072, !10, i64 14136, !14, i64 14200, !14, i64 14568, !10, i64 14936, !10, i64 15000}
!21 = !{!"_ZTSN11alglib_impl9spcholadjE", !10, i64 0, !10, i64 64, !10, i64 128, !10, i64 192, !10, i64 256, !10, i64 320, !10, i64 384, !10, i64 448}
!22 = !{!"_ZTSN11alglib_impl9ae_nxpoolE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !12, i64 32, !23, i64 64, !12, i64 112}
!23 = !{!"_ZTSN11alglib_impl7ae_lockE", !13, i64 0, !12, i64 8, !11, i64 40}
!24 = !{!"_ZTSN11alglib_impl9amdbufferE", !7, i64 0, !11, i64 8, !11, i64 9, !10, i64 16, !10, i64 80, !10, i64 144, !25, i64 208, !25, i64 568, !25, i64 928, !26, i64 1288, !27, i64 1496, !28, i64 1968, !10, i64 2120, !10, i64 2184, !10, i64 2248, !28, i64 2312, !28, i64 2464, !28, i64 2616, !28, i64 2768, !28, i64 2920, !28, i64 3072, !10, i64 3224, !7, i64 3288, !28, i64 3296, !28, i64 3448, !25, i64 3600, !28, i64 3960, !10, i64 4112, !10, i64 4176, !10, i64 4240, !18, i64 4304}
!25 = !{!"_ZTSN11alglib_impl8amdknsetE", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 80, !10, i64 144, !10, i64 208, !10, i64 272, !7, i64 336, !7, i64 344, !7, i64 352}
!26 = !{!"_ZTSN11alglib_impl11amdllmatrixE", !7, i64 0, !10, i64 8, !10, i64 72, !10, i64 136, !7, i64 200}
!27 = !{!"_ZTSN11alglib_impl12amdvertexsetE", !7, i64 0, !11, i64 8, !7, i64 16, !10, i64 24, !10, i64 88, !10, i64 152, !10, i64 216, !10, i64 280, !10, i64 344, !10, i64 408}
!28 = !{!"_ZTSN11alglib_impl5nisetE", !7, i64 0, !7, i64 8, !10, i64 16, !10, i64 80, !7, i64 144}
!29 = !{!"_ZTSN11alglib_impl18priorityamdbuffersE", !10, i64 0, !10, i64 64, !24, i64 128, !14, i64 4512, !14, i64 4880, !14, i64 5248, !14, i64 5616, !14, i64 5984}
!30 = !{!"_ZTSN11alglib_impl12xbfgshessianE", !7, i64 0, !10, i64 8, !10, i64 72, !7, i64 136, !7, i64 144, !16, i64 152, !16, i64 160, !16, i64 168, !16, i64 176, !16, i64 184, !16, i64 192, !16, i64 200, !7, i64 208, !16, i64 216, !16, i64 224, !18, i64 232, !7, i64 312, !16, i64 320, !16, i64 328, !16, i64 336, !7, i64 344, !16, i64 352, !18, i64 360, !18, i64 440, !18, i64 520, !18, i64 600, !11, i64 680, !7, i64 688, !18, i64 696, !18, i64 776, !11, i64 856, !10, i64 864, !11, i64 928, !7, i64 936, !18, i64 944, !10, i64 1024, !10, i64 1088, !18, i64 1152, !10, i64 1232, !10, i64 1296, !11, i64 1360, !10, i64 1368, !16, i64 1432, !16, i64 1440, !7, i64 1448, !18, i64 1456, !10, i64 1536, !10, i64 1600, !10, i64 1664, !10, i64 1728, !10, i64 1792, !10, i64 1856, !18, i64 1920, !18, i64 2000, !18, i64 2080, !18, i64 2160, !18, i64 2240, !18, i64 2320, !18, i64 2400, !18, i64 2480, !10, i64 2560, !10, i64 2624, !18, i64 2688, !10, i64 2768, !18, i64 2832, !18, i64 2912, !18, i64 2992, !18, i64 3072, !18, i64 3152, !10, i64 3232, !10, i64 3296}
!31 = !{!"_ZTSN11alglib_impl11linminstateE", !11, i64 0, !11, i64 1, !7, i64 8, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !16, i64 48, !16, i64 56, !16, i64 64, !16, i64 72, !16, i64 80, !16, i64 88, !16, i64 96, !16, i64 104, !16, i64 112, !16, i64 120, !16, i64 128, !16, i64 136, !16, i64 144, !16, i64 152, !16, i64 160, !16, i64 168, !16, i64 176, !16, i64 184}
!32 = !{!"_ZTSN11alglib_impl10rcommstateE", !33, i64 0, !10, i64 8, !10, i64 72, !10, i64 136, !10, i64 200}
!33 = !{!"int", !8, i64 0}
!34 = !{!8, !8, i64 0}
!35 = !{!7, !7, i64 0}
!36 = !{!11, !11, i64 0}
!37 = !{i8 0, i8 2}
!38 = !{}
!39 = !{!16, !16, i64 0}
!40 = !{!6, !7, i64 0}
!41 = !{!6, !7, i64 8}
!42 = !{!6, !7, i64 16}
!43 = !{!6, !11, i64 1960}
!44 = !{!6, !11, i64 1961}
!45 = !{!6, !11, i64 1962}
!46 = distinct !{!46, !47}
!47 = !{!"llvm.loop.mustprogress"}
!48 = distinct !{!48, !47}
!49 = distinct !{!49, !47}
!50 = distinct !{!50, !47}
!51 = !{!6, !7, i64 31128}
!52 = !{!6, !16, i64 1952}
!53 = !{!6, !16, i64 1968}
!54 = !{!6, !16, i64 5576}
!55 = !{!6, !7, i64 5584}
!56 = !{!6, !7, i64 5592}
!57 = !{!6, !7, i64 1448}
!58 = !{!6, !7, i64 31120}
!59 = !{!6, !7, i64 29280}
!60 = distinct !{!60, !47}
!61 = distinct !{!61, !62}
!62 = !{!"llvm.loop.unroll.disable"}
!63 = distinct !{!63, !47}
!64 = distinct !{!64, !62}
!65 = distinct !{!65, !47}
!66 = distinct !{!66, !47}
!67 = distinct !{!67, !47}
!68 = !{!6, !16, i64 31160}
!69 = distinct !{!69, !47}
!70 = !{!6, !7, i64 29304}
!71 = !{!6, !16, i64 29504}
!72 = !{!6, !16, i64 29296}
!73 = !{!6, !16, i64 29512}
!74 = !{!6, !7, i64 31192}
!75 = !{!6, !7, i64 31136}
!76 = distinct !{!76, !47}
!77 = !{!13, !13, i64 0}
!78 = distinct !{!78, !47}
!79 = !{!6, !7, i64 29272}
!80 = !{!6, !7, i64 29288}
!81 = !{!6, !7, i64 1440}
!82 = distinct !{!82, !47}
!83 = distinct !{!83, !62}
!84 = distinct !{!84, !47}
!85 = distinct !{!85, !47}
!86 = distinct !{!86, !47}


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