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

@.str.313 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [37 x i8], align 1

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

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

; 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) #2

declare void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) #2

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef, ptr noundef) #2

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) #2

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

declare void @_ZN11alglib_impl11rmatrixgemvElldPKNS_9ae_matrixElllPKNS_9ae_vectorEldPS3_lPNS_8ae_stateE(i64 noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, ptr noundef) #2

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

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

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

declare void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef, i64 noundef, double noundef, ptr noundef, ptr noundef) #2

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

declare void @_ZN11alglib_impl5rgemvElldPKNS_9ae_matrixElPKNS_9ae_vectorEdPS3_PNS_8ae_stateE(i64 noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, ptr noundef, double noundef, ptr noundef, ptr noundef) #2

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

declare noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) #2

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

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

declare noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl8motfevalEPKNS_26multiobjectivetestfunctionEPKNS_9ae_vectorEPS3_bPNS_9ae_matrixEbPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, ptr noundef %2, i1 noundef zeroext %3, ptr noundef %4, i1 noundef zeroext %5, ptr noundef %6) #4 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i8, align 1
  %12 = alloca ptr, align 8
  %13 = alloca i8, align 1
  %14 = alloca ptr, align 8
  %15 = alloca %"struct.alglib_impl::ae_frame", align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  %22 = alloca %"struct.alglib_impl::ae_vector", align 8
  %23 = alloca %"struct.alglib_impl::ae_vector", align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca i32, align 4
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  %37 = zext i1 %3 to i8
  store i8 %37, ptr %11, align 1, !tbaa !9
  store ptr %4, ptr %12, align 8, !tbaa !5
  %38 = zext i1 %5 to i8
  store i8 %38, ptr %13, align 1, !tbaa !9
  store ptr %6, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 64, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 64, 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 8, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  %39 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %39, ptr noundef %15)
  call void @llvm.memset.p0.i64(ptr align 8 %22, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr align 8 %23, i8 0, i64 64, i1 false)
  %40 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %22, i64 noundef 0, i64 noundef 3, ptr noundef %40, i1 noundef zeroext true)
  %41 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef %23, i64 noundef 0, i64 noundef 3, ptr noundef %41, i1 noundef zeroext true)
  %42 = load ptr, ptr %8, align 8, !tbaa !5
  %43 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %42, i32 0, i32 0
  %44 = load i64, ptr %43, align 8, !tbaa !11
  %45 = icmp eq i64 %44, 0
  br i1 %45, label %71, label %46

46:                                               ; preds = %7
  %47 = load ptr, ptr %8, align 8, !tbaa !5
  %48 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %47, i32 0, i32 0
  %49 = load i64, ptr %48, align 8, !tbaa !11
  %50 = icmp eq i64 %49, 1
  br i1 %50, label %71, label %51

51:                                               ; preds = %46
  %52 = load ptr, ptr %8, align 8, !tbaa !5
  %53 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %52, i32 0, i32 0
  %54 = load i64, ptr %53, align 8, !tbaa !11
  %55 = icmp eq i64 %54, 2
  br i1 %55, label %71, label %56

56:                                               ; preds = %51
  %57 = load ptr, ptr %8, align 8, !tbaa !5
  %58 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %57, i32 0, i32 0
  %59 = load i64, ptr %58, align 8, !tbaa !11
  %60 = icmp eq i64 %59, 3
  br i1 %60, label %71, label %61

61:                                               ; preds = %56
  %62 = load ptr, ptr %8, align 8, !tbaa !5
  %63 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %62, i32 0, i32 0
  %64 = load i64, ptr %63, align 8, !tbaa !11
  %65 = icmp eq i64 %64, 50
  br i1 %65, label %71, label %66

66:                                               ; preds = %61
  %67 = load ptr, ptr %8, align 8, !tbaa !5
  %68 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %67, i32 0, i32 0
  %69 = load i64, ptr %68, align 8, !tbaa !11
  %70 = icmp eq i64 %69, 51
  br label %71

71:                                               ; preds = %66, %61, %56, %51, %46, %7
  %72 = phi i1 [ true, %61 ], [ true, %56 ], [ true, %51 ], [ true, %46 ], [ true, %7 ], [ %70, %66 ]
  %73 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %72, ptr noundef @.str.313, ptr noundef %73)
  %74 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %75 = trunc i8 %74 to i1
  br i1 %75, label %76, label %88

76:                                               ; preds = %71
  %77 = load ptr, ptr %10, align 8, !tbaa !5
  %78 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %77, i32 0, i32 0
  %79 = load i64, ptr %78, align 8, !tbaa !19
  %80 = load ptr, ptr %8, align 8, !tbaa !5
  %81 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %80, i32 0, i32 3
  %82 = load i64, ptr %81, align 8, !tbaa !20
  %83 = load ptr, ptr %8, align 8, !tbaa !5
  %84 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %83, i32 0, i32 30
  %85 = load i64, ptr %84, align 8, !tbaa !21
  %86 = add nsw i64 %82, %85
  %87 = icmp sge i64 %79, %86
  br label %88

88:                                               ; preds = %76, %71
  %89 = phi i1 [ true, %71 ], [ %87, %76 ]
  %90 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %89, ptr noundef @.str.314, ptr noundef %90)
  %91 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %92 = trunc i8 %91 to i1
  br i1 %92, label %93, label %105

93:                                               ; preds = %88
  %94 = load ptr, ptr %12, align 8, !tbaa !5
  %95 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %94, i32 0, i32 0
  %96 = load i64, ptr %95, align 8, !tbaa !22
  %97 = load ptr, ptr %8, align 8, !tbaa !5
  %98 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %97, i32 0, i32 3
  %99 = load i64, ptr %98, align 8, !tbaa !20
  %100 = load ptr, ptr %8, align 8, !tbaa !5
  %101 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %100, i32 0, i32 30
  %102 = load i64, ptr %101, align 8, !tbaa !21
  %103 = add nsw i64 %99, %102
  %104 = icmp sge i64 %96, %103
  br label %105

105:                                              ; preds = %93, %88
  %106 = phi i1 [ true, %88 ], [ %104, %93 ]
  %107 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %106, ptr noundef @.str.315, ptr noundef %107)
  %108 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %109 = trunc i8 %108 to i1
  br i1 %109, label %110, label %118

110:                                              ; preds = %105
  %111 = load ptr, ptr %12, align 8, !tbaa !5
  %112 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %111, i32 0, i32 1
  %113 = load i64, ptr %112, align 8, !tbaa !23
  %114 = load ptr, ptr %8, align 8, !tbaa !5
  %115 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %114, i32 0, i32 2
  %116 = load i64, ptr %115, align 8, !tbaa !24
  %117 = icmp sge i64 %113, %116
  br label %118

118:                                              ; preds = %110, %105
  %119 = phi i1 [ true, %105 ], [ %117, %110 ]
  %120 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %119, ptr noundef @.str.315, ptr noundef %120)
  %121 = load ptr, ptr %8, align 8, !tbaa !5
  %122 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %121, i32 0, i32 2
  %123 = load i64, ptr %122, align 8, !tbaa !24
  store i64 %123, ptr %19, align 8, !tbaa !25
  %124 = load ptr, ptr %8, align 8, !tbaa !5
  %125 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %124, i32 0, i32 3
  %126 = load i64, ptr %125, align 8, !tbaa !20
  store i64 %126, ptr %20, align 8, !tbaa !25
  %127 = load ptr, ptr %8, align 8, !tbaa !5
  %128 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %127, i32 0, i32 0
  %129 = load i64, ptr %128, align 8, !tbaa !11
  %130 = icmp eq i64 %129, 0
  br i1 %130, label %131, label %529

131:                                              ; preds = %118
  %132 = load ptr, ptr %8, align 8, !tbaa !5
  %133 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %132, i32 0, i32 12
  %134 = load i8, ptr %133, align 8, !tbaa !26, !range !17, !noundef !18
  %135 = trunc i8 %134 to i1
  %136 = xor i1 %135, true
  %137 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %136, ptr noundef @.str.316, ptr noundef %137)
  store i64 0, ptr %18, align 8, !tbaa !25
  br label %138

138:                                              ; preds = %327, %131
  %139 = load i64, ptr %18, align 8, !tbaa !25
  %140 = load i64, ptr %20, align 8, !tbaa !25
  %141 = sub nsw i64 %140, 1
  %142 = icmp sle i64 %139, %141
  br i1 %142, label %143, label %330

143:                                              ; preds = %138
  %144 = load i64, ptr %18, align 8, !tbaa !25
  store i64 %144, ptr %21, align 8, !tbaa !25
  %145 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %146 = trunc i8 %145 to i1
  br i1 %146, label %147, label %160

147:                                              ; preds = %143
  %148 = load ptr, ptr %8, align 8, !tbaa !5
  %149 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %148, i32 0, i32 14
  %150 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %149, i32 0, i32 4
  %151 = load ptr, ptr %150, align 8, !tbaa !27
  %152 = load i64, ptr %18, align 8, !tbaa !25
  %153 = getelementptr inbounds double, ptr %151, i64 %152
  %154 = load double, ptr %153, align 8, !tbaa !28
  %155 = load ptr, ptr %10, align 8, !tbaa !5
  %156 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %155, i32 0, i32 4
  %157 = load ptr, ptr %156, align 8, !tbaa !27
  %158 = load i64, ptr %21, align 8, !tbaa !25
  %159 = getelementptr inbounds double, ptr %157, i64 %158
  store double %154, ptr %159, align 8, !tbaa !28
  br label %160

160:                                              ; preds = %147, %143
  %161 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %162 = trunc i8 %161 to i1
  br i1 %162, label %163, label %168

163:                                              ; preds = %160
  %164 = load i64, ptr %19, align 8, !tbaa !25
  %165 = load ptr, ptr %12, align 8, !tbaa !5
  %166 = load i64, ptr %21, align 8, !tbaa !25
  %167 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %164, double noundef 0.000000e+00, ptr noundef %165, i64 noundef %166, ptr noundef %167)
  br label %168

168:                                              ; preds = %163, %160
  %169 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %170 = trunc i8 %169 to i1
  br i1 %170, label %171, label %191

171:                                              ; preds = %168
  %172 = load ptr, ptr %10, align 8, !tbaa !5
  %173 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %172, i32 0, i32 4
  %174 = load ptr, ptr %173, align 8, !tbaa !27
  %175 = load i64, ptr %21, align 8, !tbaa !25
  %176 = getelementptr inbounds double, ptr %174, i64 %175
  %177 = load double, ptr %176, align 8, !tbaa !28
  %178 = load i64, ptr %19, align 8, !tbaa !25
  %179 = load ptr, ptr %9, align 8, !tbaa !5
  %180 = load ptr, ptr %8, align 8, !tbaa !5
  %181 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %180, i32 0, i32 15
  %182 = load i64, ptr %18, align 8, !tbaa !25
  %183 = load ptr, ptr %14, align 8, !tbaa !5
  %184 = call noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %178, ptr noundef %179, ptr noundef %181, i64 noundef %182, ptr noundef %183)
  %185 = fadd double %177, %184
  %186 = load ptr, ptr %10, align 8, !tbaa !5
  %187 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %186, i32 0, i32 4
  %188 = load ptr, ptr %187, align 8, !tbaa !27
  %189 = load i64, ptr %21, align 8, !tbaa !25
  %190 = getelementptr inbounds double, ptr %188, i64 %189
  store double %185, ptr %190, align 8, !tbaa !28
  br label %191

191:                                              ; preds = %171, %168
  %192 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %193 = trunc i8 %192 to i1
  br i1 %193, label %194, label %202

194:                                              ; preds = %191
  %195 = load i64, ptr %19, align 8, !tbaa !25
  %196 = load ptr, ptr %8, align 8, !tbaa !5
  %197 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %196, i32 0, i32 15
  %198 = load i64, ptr %18, align 8, !tbaa !25
  %199 = load ptr, ptr %12, align 8, !tbaa !5
  %200 = load i64, ptr %21, align 8, !tbaa !25
  %201 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl6raddrrEldPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %195, double noundef 1.000000e+00, ptr noundef %197, i64 noundef %198, ptr noundef %199, i64 noundef %200, ptr noundef %201)
  br label %202

202:                                              ; preds = %194, %191
  %203 = load i64, ptr %19, align 8, !tbaa !25
  %204 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %203, ptr noundef %22, ptr noundef %204)
  %205 = load i64, ptr %19, align 8, !tbaa !25
  %206 = load i64, ptr %19, align 8, !tbaa !25
  %207 = load ptr, ptr %8, align 8, !tbaa !5
  %208 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %207, i32 0, i32 16
  %209 = load i64, ptr %18, align 8, !tbaa !25
  %210 = load i64, ptr %19, align 8, !tbaa !25
  %211 = mul nsw i64 %209, %210
  %212 = load ptr, ptr %9, align 8, !tbaa !5
  %213 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmatrixgemvElldPKNS_9ae_matrixElllPKNS_9ae_vectorEldPS3_lPNS_8ae_stateE(i64 noundef %205, i64 noundef %206, double noundef 1.000000e+00, ptr noundef %208, i64 noundef %211, i64 noundef 0, i64 noundef 0, ptr noundef %212, i64 noundef 0, double noundef 0.000000e+00, ptr noundef %22, i64 noundef 0, ptr noundef %213)
  %214 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %215 = trunc i8 %214 to i1
  br i1 %215, label %216, label %233

216:                                              ; preds = %202
  %217 = load ptr, ptr %10, align 8, !tbaa !5
  %218 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %217, i32 0, i32 4
  %219 = load ptr, ptr %218, align 8, !tbaa !27
  %220 = load i64, ptr %21, align 8, !tbaa !25
  %221 = getelementptr inbounds double, ptr %219, i64 %220
  %222 = load double, ptr %221, align 8, !tbaa !28
  %223 = load i64, ptr %19, align 8, !tbaa !25
  %224 = load ptr, ptr %9, align 8, !tbaa !5
  %225 = load ptr, ptr %14, align 8, !tbaa !5
  %226 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %223, ptr noundef %224, ptr noundef %22, ptr noundef %225)
  %227 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %226, double %222)
  %228 = load ptr, ptr %10, align 8, !tbaa !5
  %229 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %228, i32 0, i32 4
  %230 = load ptr, ptr %229, align 8, !tbaa !27
  %231 = load i64, ptr %21, align 8, !tbaa !25
  %232 = getelementptr inbounds double, ptr %230, i64 %231
  store double %227, ptr %232, align 8, !tbaa !28
  br label %233

233:                                              ; preds = %216, %202
  %234 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %235 = trunc i8 %234 to i1
  br i1 %235, label %236, label %241

236:                                              ; preds = %233
  %237 = load i64, ptr %19, align 8, !tbaa !25
  %238 = load ptr, ptr %12, align 8, !tbaa !5
  %239 = load i64, ptr %21, align 8, !tbaa !25
  %240 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl6raddvrEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %237, double noundef 1.000000e+00, ptr noundef %22, ptr noundef %238, i64 noundef %239, ptr noundef %240)
  br label %241

241:                                              ; preds = %236, %233
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %242

242:                                              ; preds = %323, %241
  %243 = load i64, ptr %16, align 8, !tbaa !25
  %244 = load i64, ptr %19, align 8, !tbaa !25
  %245 = sub nsw i64 %244, 1
  %246 = icmp sle i64 %243, %245
  br i1 %246, label %247, label %326

247:                                              ; preds = %242
  %248 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %249 = trunc i8 %248 to i1
  br i1 %249, label %250, label %281

250:                                              ; preds = %247
  %251 = load ptr, ptr %10, align 8, !tbaa !5
  %252 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %251, i32 0, i32 4
  %253 = load ptr, ptr %252, align 8, !tbaa !27
  %254 = load i64, ptr %21, align 8, !tbaa !25
  %255 = getelementptr inbounds double, ptr %253, i64 %254
  %256 = load double, ptr %255, align 8, !tbaa !28
  %257 = load ptr, ptr %8, align 8, !tbaa !5
  %258 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %257, i32 0, i32 17
  %259 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %258, i32 0, i32 6
  %260 = load ptr, ptr %259, align 8, !tbaa !27
  %261 = load i64, ptr %18, align 8, !tbaa !25
  %262 = getelementptr inbounds ptr, ptr %260, i64 %261
  %263 = load ptr, ptr %262, align 8, !tbaa !5
  %264 = load i64, ptr %16, align 8, !tbaa !25
  %265 = getelementptr inbounds double, ptr %263, i64 %264
  %266 = load double, ptr %265, align 8, !tbaa !28
  %267 = load ptr, ptr %9, align 8, !tbaa !5
  %268 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %267, i32 0, i32 4
  %269 = load ptr, ptr %268, align 8, !tbaa !27
  %270 = load i64, ptr %16, align 8, !tbaa !25
  %271 = getelementptr inbounds double, ptr %269, i64 %270
  %272 = load double, ptr %271, align 8, !tbaa !28
  %273 = load ptr, ptr %14, align 8, !tbaa !5
  %274 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %272, double noundef 4.000000e+00, ptr noundef %273)
  %275 = call double @llvm.fmuladd.f64(double %266, double %274, double %256)
  %276 = load ptr, ptr %10, align 8, !tbaa !5
  %277 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %276, i32 0, i32 4
  %278 = load ptr, ptr %277, align 8, !tbaa !27
  %279 = load i64, ptr %21, align 8, !tbaa !25
  %280 = getelementptr inbounds double, ptr %278, i64 %279
  store double %275, ptr %280, align 8, !tbaa !28
  br label %281

281:                                              ; preds = %250, %247
  %282 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %283 = trunc i8 %282 to i1
  br i1 %283, label %284, label %322

284:                                              ; preds = %281
  %285 = load ptr, ptr %12, align 8, !tbaa !5
  %286 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %285, i32 0, i32 6
  %287 = load ptr, ptr %286, align 8, !tbaa !27
  %288 = load i64, ptr %21, align 8, !tbaa !25
  %289 = getelementptr inbounds ptr, ptr %287, i64 %288
  %290 = load ptr, ptr %289, align 8, !tbaa !5
  %291 = load i64, ptr %16, align 8, !tbaa !25
  %292 = getelementptr inbounds double, ptr %290, i64 %291
  %293 = load double, ptr %292, align 8, !tbaa !28
  %294 = load ptr, ptr %8, align 8, !tbaa !5
  %295 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %294, i32 0, i32 17
  %296 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %295, i32 0, i32 6
  %297 = load ptr, ptr %296, align 8, !tbaa !27
  %298 = load i64, ptr %18, align 8, !tbaa !25
  %299 = getelementptr inbounds ptr, ptr %297, i64 %298
  %300 = load ptr, ptr %299, align 8, !tbaa !5
  %301 = load i64, ptr %16, align 8, !tbaa !25
  %302 = getelementptr inbounds double, ptr %300, i64 %301
  %303 = load double, ptr %302, align 8, !tbaa !28
  %304 = fmul double %303, 4.000000e+00
  %305 = load ptr, ptr %9, align 8, !tbaa !5
  %306 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %305, i32 0, i32 4
  %307 = load ptr, ptr %306, align 8, !tbaa !27
  %308 = load i64, ptr %16, align 8, !tbaa !25
  %309 = getelementptr inbounds double, ptr %307, i64 %308
  %310 = load double, ptr %309, align 8, !tbaa !28
  %311 = load ptr, ptr %14, align 8, !tbaa !5
  %312 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %310, double noundef 3.000000e+00, ptr noundef %311)
  %313 = call double @llvm.fmuladd.f64(double %304, double %312, double %293)
  %314 = load ptr, ptr %12, align 8, !tbaa !5
  %315 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %314, i32 0, i32 6
  %316 = load ptr, ptr %315, align 8, !tbaa !27
  %317 = load i64, ptr %21, align 8, !tbaa !25
  %318 = getelementptr inbounds ptr, ptr %316, i64 %317
  %319 = load ptr, ptr %318, align 8, !tbaa !5
  %320 = load i64, ptr %16, align 8, !tbaa !25
  %321 = getelementptr inbounds double, ptr %319, i64 %320
  store double %313, ptr %321, align 8, !tbaa !28
  br label %322

322:                                              ; preds = %284, %281
  br label %323

323:                                              ; preds = %322
  %324 = load i64, ptr %16, align 8, !tbaa !25
  %325 = add nsw i64 %324, 1
  store i64 %325, ptr %16, align 8, !tbaa !25
  br label %242, !llvm.loop !30

326:                                              ; preds = %242
  br label %327

327:                                              ; preds = %326
  %328 = load i64, ptr %18, align 8, !tbaa !25
  %329 = add nsw i64 %328, 1
  store i64 %329, ptr %18, align 8, !tbaa !25
  br label %138, !llvm.loop !32

330:                                              ; preds = %138
  store i64 0, ptr %18, align 8, !tbaa !25
  br label %331

331:                                              ; preds = %524, %330
  %332 = load i64, ptr %18, align 8, !tbaa !25
  %333 = load ptr, ptr %8, align 8, !tbaa !5
  %334 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %333, i32 0, i32 30
  %335 = load i64, ptr %334, align 8, !tbaa !21
  %336 = sub nsw i64 %335, 1
  %337 = icmp sle i64 %332, %336
  br i1 %337, label %338, label %527

338:                                              ; preds = %331
  %339 = load i64, ptr %20, align 8, !tbaa !25
  %340 = load i64, ptr %18, align 8, !tbaa !25
  %341 = add nsw i64 %339, %340
  store i64 %341, ptr %21, align 8, !tbaa !25
  %342 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %343 = trunc i8 %342 to i1
  br i1 %343, label %344, label %357

344:                                              ; preds = %338
  %345 = load ptr, ptr %8, align 8, !tbaa !5
  %346 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %345, i32 0, i32 24
  %347 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %346, i32 0, i32 4
  %348 = load ptr, ptr %347, align 8, !tbaa !27
  %349 = load i64, ptr %18, align 8, !tbaa !25
  %350 = getelementptr inbounds double, ptr %348, i64 %349
  %351 = load double, ptr %350, align 8, !tbaa !28
  %352 = load ptr, ptr %10, align 8, !tbaa !5
  %353 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %352, i32 0, i32 4
  %354 = load ptr, ptr %353, align 8, !tbaa !27
  %355 = load i64, ptr %21, align 8, !tbaa !25
  %356 = getelementptr inbounds double, ptr %354, i64 %355
  store double %351, ptr %356, align 8, !tbaa !28
  br label %357

357:                                              ; preds = %344, %338
  %358 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %359 = trunc i8 %358 to i1
  br i1 %359, label %360, label %365

360:                                              ; preds = %357
  %361 = load i64, ptr %19, align 8, !tbaa !25
  %362 = load ptr, ptr %12, align 8, !tbaa !5
  %363 = load i64, ptr %21, align 8, !tbaa !25
  %364 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %361, double noundef 0.000000e+00, ptr noundef %362, i64 noundef %363, ptr noundef %364)
  br label %365

365:                                              ; preds = %360, %357
  %366 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %367 = trunc i8 %366 to i1
  br i1 %367, label %368, label %388

368:                                              ; preds = %365
  %369 = load ptr, ptr %10, align 8, !tbaa !5
  %370 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %369, i32 0, i32 4
  %371 = load ptr, ptr %370, align 8, !tbaa !27
  %372 = load i64, ptr %21, align 8, !tbaa !25
  %373 = getelementptr inbounds double, ptr %371, i64 %372
  %374 = load double, ptr %373, align 8, !tbaa !28
  %375 = load i64, ptr %19, align 8, !tbaa !25
  %376 = load ptr, ptr %9, align 8, !tbaa !5
  %377 = load ptr, ptr %8, align 8, !tbaa !5
  %378 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %377, i32 0, i32 25
  %379 = load i64, ptr %18, align 8, !tbaa !25
  %380 = load ptr, ptr %14, align 8, !tbaa !5
  %381 = call noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %375, ptr noundef %376, ptr noundef %378, i64 noundef %379, ptr noundef %380)
  %382 = fadd double %374, %381
  %383 = load ptr, ptr %10, align 8, !tbaa !5
  %384 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %383, i32 0, i32 4
  %385 = load ptr, ptr %384, align 8, !tbaa !27
  %386 = load i64, ptr %21, align 8, !tbaa !25
  %387 = getelementptr inbounds double, ptr %385, i64 %386
  store double %382, ptr %387, align 8, !tbaa !28
  br label %388

388:                                              ; preds = %368, %365
  %389 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %390 = trunc i8 %389 to i1
  br i1 %390, label %391, label %399

391:                                              ; preds = %388
  %392 = load i64, ptr %19, align 8, !tbaa !25
  %393 = load ptr, ptr %8, align 8, !tbaa !5
  %394 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %393, i32 0, i32 25
  %395 = load i64, ptr %18, align 8, !tbaa !25
  %396 = load ptr, ptr %12, align 8, !tbaa !5
  %397 = load i64, ptr %21, align 8, !tbaa !25
  %398 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl6raddrrEldPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %392, double noundef 1.000000e+00, ptr noundef %394, i64 noundef %395, ptr noundef %396, i64 noundef %397, ptr noundef %398)
  br label %399

399:                                              ; preds = %391, %388
  %400 = load i64, ptr %19, align 8, !tbaa !25
  %401 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %400, ptr noundef %22, ptr noundef %401)
  %402 = load i64, ptr %19, align 8, !tbaa !25
  %403 = load i64, ptr %19, align 8, !tbaa !25
  %404 = load ptr, ptr %8, align 8, !tbaa !5
  %405 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %404, i32 0, i32 26
  %406 = load i64, ptr %18, align 8, !tbaa !25
  %407 = load i64, ptr %19, align 8, !tbaa !25
  %408 = mul nsw i64 %406, %407
  %409 = load ptr, ptr %9, align 8, !tbaa !5
  %410 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl11rmatrixgemvElldPKNS_9ae_matrixElllPKNS_9ae_vectorEldPS3_lPNS_8ae_stateE(i64 noundef %402, i64 noundef %403, double noundef 1.000000e+00, ptr noundef %405, i64 noundef %408, i64 noundef 0, i64 noundef 0, ptr noundef %409, i64 noundef 0, double noundef 0.000000e+00, ptr noundef %22, i64 noundef 0, ptr noundef %410)
  %411 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %412 = trunc i8 %411 to i1
  br i1 %412, label %413, label %430

413:                                              ; preds = %399
  %414 = load ptr, ptr %10, align 8, !tbaa !5
  %415 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %414, i32 0, i32 4
  %416 = load ptr, ptr %415, align 8, !tbaa !27
  %417 = load i64, ptr %21, align 8, !tbaa !25
  %418 = getelementptr inbounds double, ptr %416, i64 %417
  %419 = load double, ptr %418, align 8, !tbaa !28
  %420 = load i64, ptr %19, align 8, !tbaa !25
  %421 = load ptr, ptr %9, align 8, !tbaa !5
  %422 = load ptr, ptr %14, align 8, !tbaa !5
  %423 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %420, ptr noundef %421, ptr noundef %22, ptr noundef %422)
  %424 = call double @llvm.fmuladd.f64(double 5.000000e-01, double %423, double %419)
  %425 = load ptr, ptr %10, align 8, !tbaa !5
  %426 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %425, i32 0, i32 4
  %427 = load ptr, ptr %426, align 8, !tbaa !27
  %428 = load i64, ptr %21, align 8, !tbaa !25
  %429 = getelementptr inbounds double, ptr %427, i64 %428
  store double %424, ptr %429, align 8, !tbaa !28
  br label %430

430:                                              ; preds = %413, %399
  %431 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %432 = trunc i8 %431 to i1
  br i1 %432, label %433, label %438

433:                                              ; preds = %430
  %434 = load i64, ptr %19, align 8, !tbaa !25
  %435 = load ptr, ptr %12, align 8, !tbaa !5
  %436 = load i64, ptr %21, align 8, !tbaa !25
  %437 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl6raddvrEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %434, double noundef 1.000000e+00, ptr noundef %22, ptr noundef %435, i64 noundef %436, ptr noundef %437)
  br label %438

438:                                              ; preds = %433, %430
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %439

439:                                              ; preds = %520, %438
  %440 = load i64, ptr %16, align 8, !tbaa !25
  %441 = load i64, ptr %19, align 8, !tbaa !25
  %442 = sub nsw i64 %441, 1
  %443 = icmp sle i64 %440, %442
  br i1 %443, label %444, label %523

444:                                              ; preds = %439
  %445 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %446 = trunc i8 %445 to i1
  br i1 %446, label %447, label %478

447:                                              ; preds = %444
  %448 = load ptr, ptr %10, align 8, !tbaa !5
  %449 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %448, i32 0, i32 4
  %450 = load ptr, ptr %449, align 8, !tbaa !27
  %451 = load i64, ptr %21, align 8, !tbaa !25
  %452 = getelementptr inbounds double, ptr %450, i64 %451
  %453 = load double, ptr %452, align 8, !tbaa !28
  %454 = load ptr, ptr %8, align 8, !tbaa !5
  %455 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %454, i32 0, i32 27
  %456 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %455, i32 0, i32 6
  %457 = load ptr, ptr %456, align 8, !tbaa !27
  %458 = load i64, ptr %18, align 8, !tbaa !25
  %459 = getelementptr inbounds ptr, ptr %457, i64 %458
  %460 = load ptr, ptr %459, align 8, !tbaa !5
  %461 = load i64, ptr %16, align 8, !tbaa !25
  %462 = getelementptr inbounds double, ptr %460, i64 %461
  %463 = load double, ptr %462, align 8, !tbaa !28
  %464 = load ptr, ptr %9, align 8, !tbaa !5
  %465 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %464, i32 0, i32 4
  %466 = load ptr, ptr %465, align 8, !tbaa !27
  %467 = load i64, ptr %16, align 8, !tbaa !25
  %468 = getelementptr inbounds double, ptr %466, i64 %467
  %469 = load double, ptr %468, align 8, !tbaa !28
  %470 = load ptr, ptr %14, align 8, !tbaa !5
  %471 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %469, double noundef 4.000000e+00, ptr noundef %470)
  %472 = call double @llvm.fmuladd.f64(double %463, double %471, double %453)
  %473 = load ptr, ptr %10, align 8, !tbaa !5
  %474 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %473, i32 0, i32 4
  %475 = load ptr, ptr %474, align 8, !tbaa !27
  %476 = load i64, ptr %21, align 8, !tbaa !25
  %477 = getelementptr inbounds double, ptr %475, i64 %476
  store double %472, ptr %477, align 8, !tbaa !28
  br label %478

478:                                              ; preds = %447, %444
  %479 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %480 = trunc i8 %479 to i1
  br i1 %480, label %481, label %519

481:                                              ; preds = %478
  %482 = load ptr, ptr %12, align 8, !tbaa !5
  %483 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %482, i32 0, i32 6
  %484 = load ptr, ptr %483, align 8, !tbaa !27
  %485 = load i64, ptr %21, align 8, !tbaa !25
  %486 = getelementptr inbounds ptr, ptr %484, i64 %485
  %487 = load ptr, ptr %486, align 8, !tbaa !5
  %488 = load i64, ptr %16, align 8, !tbaa !25
  %489 = getelementptr inbounds double, ptr %487, i64 %488
  %490 = load double, ptr %489, align 8, !tbaa !28
  %491 = load ptr, ptr %8, align 8, !tbaa !5
  %492 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %491, i32 0, i32 27
  %493 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %492, i32 0, i32 6
  %494 = load ptr, ptr %493, align 8, !tbaa !27
  %495 = load i64, ptr %18, align 8, !tbaa !25
  %496 = getelementptr inbounds ptr, ptr %494, i64 %495
  %497 = load ptr, ptr %496, align 8, !tbaa !5
  %498 = load i64, ptr %16, align 8, !tbaa !25
  %499 = getelementptr inbounds double, ptr %497, i64 %498
  %500 = load double, ptr %499, align 8, !tbaa !28
  %501 = fmul double %500, 4.000000e+00
  %502 = load ptr, ptr %9, align 8, !tbaa !5
  %503 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %502, i32 0, i32 4
  %504 = load ptr, ptr %503, align 8, !tbaa !27
  %505 = load i64, ptr %16, align 8, !tbaa !25
  %506 = getelementptr inbounds double, ptr %504, i64 %505
  %507 = load double, ptr %506, align 8, !tbaa !28
  %508 = load ptr, ptr %14, align 8, !tbaa !5
  %509 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %507, double noundef 3.000000e+00, ptr noundef %508)
  %510 = call double @llvm.fmuladd.f64(double %501, double %509, double %490)
  %511 = load ptr, ptr %12, align 8, !tbaa !5
  %512 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %511, i32 0, i32 6
  %513 = load ptr, ptr %512, align 8, !tbaa !27
  %514 = load i64, ptr %21, align 8, !tbaa !25
  %515 = getelementptr inbounds ptr, ptr %513, i64 %514
  %516 = load ptr, ptr %515, align 8, !tbaa !5
  %517 = load i64, ptr %16, align 8, !tbaa !25
  %518 = getelementptr inbounds double, ptr %516, i64 %517
  store double %510, ptr %518, align 8, !tbaa !28
  br label %519

519:                                              ; preds = %481, %478
  br label %520

520:                                              ; preds = %519
  %521 = load i64, ptr %16, align 8, !tbaa !25
  %522 = add nsw i64 %521, 1
  store i64 %522, ptr %16, align 8, !tbaa !25
  br label %439, !llvm.loop !33

523:                                              ; preds = %439
  br label %524

524:                                              ; preds = %523
  %525 = load i64, ptr %18, align 8, !tbaa !25
  %526 = add nsw i64 %525, 1
  store i64 %526, ptr %18, align 8, !tbaa !25
  br label %331, !llvm.loop !34

527:                                              ; preds = %331
  %528 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %528)
  store i32 1, ptr %36, align 4
  br label %5101

529:                                              ; preds = %118
  %530 = load ptr, ptr %8, align 8, !tbaa !5
  %531 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %530, i32 0, i32 0
  %532 = load i64, ptr %531, align 8, !tbaa !11
  %533 = icmp eq i64 %532, 1
  br i1 %533, label %534, label %1005

534:                                              ; preds = %529
  %535 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %536 = trunc i8 %535 to i1
  %537 = xor i1 %536, true
  %538 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %537, ptr noundef @.str.317, ptr noundef %538)
  %539 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %540 = trunc i8 %539 to i1
  br i1 %540, label %543, label %541

541:                                              ; preds = %534
  %542 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %542)
  store i32 1, ptr %36, align 4
  br label %5101

543:                                              ; preds = %534
  %544 = load ptr, ptr %8, align 8, !tbaa !5
  %545 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %544, i32 0, i32 2
  %546 = load i64, ptr %545, align 8, !tbaa !24
  %547 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %546, ptr noundef %23, ptr noundef %547)
  %548 = load ptr, ptr %8, align 8, !tbaa !5
  %549 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %548, i32 0, i32 12
  %550 = load i8, ptr %549, align 8, !tbaa !26, !range !17, !noundef !18
  %551 = trunc i8 %550 to i1
  br i1 %551, label %552, label %563

552:                                              ; preds = %543
  %553 = load ptr, ptr %8, align 8, !tbaa !5
  %554 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %553, i32 0, i32 2
  %555 = load i64, ptr %554, align 8, !tbaa !24
  %556 = load ptr, ptr %8, align 8, !tbaa !5
  %557 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %556, i32 0, i32 2
  %558 = load i64, ptr %557, align 8, !tbaa !24
  %559 = load ptr, ptr %8, align 8, !tbaa !5
  %560 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %559, i32 0, i32 13
  %561 = load ptr, ptr %9, align 8, !tbaa !5
  %562 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rgemvElldPKNS_9ae_matrixElPKNS_9ae_vectorEdPS3_PNS_8ae_stateE(i64 noundef %555, i64 noundef %558, double noundef 1.000000e+00, ptr noundef %560, i64 noundef 0, ptr noundef %561, double noundef 0.000000e+00, ptr noundef %23, ptr noundef %562)
  br label %569

563:                                              ; preds = %543
  %564 = load ptr, ptr %8, align 8, !tbaa !5
  %565 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %564, i32 0, i32 2
  %566 = load i64, ptr %565, align 8, !tbaa !24
  %567 = load ptr, ptr %9, align 8, !tbaa !5
  %568 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %566, ptr noundef %567, ptr noundef %23, ptr noundef %568)
  br label %569

569:                                              ; preds = %563, %552
  %570 = load ptr, ptr %10, align 8, !tbaa !5
  %571 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %570, i32 0, i32 4
  %572 = load ptr, ptr %571, align 8, !tbaa !27
  %573 = getelementptr inbounds double, ptr %572, i64 0
  store double 0.000000e+00, ptr %573, align 8, !tbaa !28
  %574 = load ptr, ptr %8, align 8, !tbaa !5
  %575 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %574, i32 0, i32 1
  %576 = load i64, ptr %575, align 8, !tbaa !35
  %577 = icmp eq i64 %576, 0
  br i1 %577, label %578, label %609

578:                                              ; preds = %569
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %579

579:                                              ; preds = %604, %578
  %580 = load i64, ptr %16, align 8, !tbaa !25
  %581 = load ptr, ptr %8, align 8, !tbaa !5
  %582 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %581, i32 0, i32 2
  %583 = load i64, ptr %582, align 8, !tbaa !24
  %584 = sub nsw i64 %583, 1
  %585 = icmp sle i64 %580, %584
  br i1 %585, label %586, label %607

586:                                              ; preds = %579
  %587 = load ptr, ptr %10, align 8, !tbaa !5
  %588 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %587, i32 0, i32 4
  %589 = load ptr, ptr %588, align 8, !tbaa !27
  %590 = getelementptr inbounds double, ptr %589, i64 0
  %591 = load double, ptr %590, align 8, !tbaa !28
  %592 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %593 = load ptr, ptr %592, align 8, !tbaa !27
  %594 = load i64, ptr %16, align 8, !tbaa !25
  %595 = getelementptr inbounds double, ptr %593, i64 %594
  %596 = load double, ptr %595, align 8, !tbaa !28
  %597 = load ptr, ptr %14, align 8, !tbaa !5
  %598 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %596, ptr noundef %597)
  %599 = fadd double %591, %598
  %600 = load ptr, ptr %10, align 8, !tbaa !5
  %601 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %600, i32 0, i32 4
  %602 = load ptr, ptr %601, align 8, !tbaa !27
  %603 = getelementptr inbounds double, ptr %602, i64 0
  store double %599, ptr %603, align 8, !tbaa !28
  br label %604

604:                                              ; preds = %586
  %605 = load i64, ptr %16, align 8, !tbaa !25
  %606 = add nsw i64 %605, 1
  store i64 %606, ptr %16, align 8, !tbaa !25
  br label %579, !llvm.loop !36

607:                                              ; preds = %579
  %608 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %608)
  store i32 1, ptr %36, align 4
  br label %5101

609:                                              ; preds = %569
  %610 = load ptr, ptr %8, align 8, !tbaa !5
  %611 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %610, i32 0, i32 1
  %612 = load i64, ptr %611, align 8, !tbaa !35
  %613 = icmp eq i64 %612, 1
  br i1 %613, label %614, label %653

614:                                              ; preds = %609
  store double 0.000000e+00, ptr %24, align 8, !tbaa !28
  store double 1.000000e+00, ptr %25, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %615

615:                                              ; preds = %641, %614
  %616 = load i64, ptr %16, align 8, !tbaa !25
  %617 = load ptr, ptr %8, align 8, !tbaa !5
  %618 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %617, i32 0, i32 2
  %619 = load i64, ptr %618, align 8, !tbaa !24
  %620 = sub nsw i64 %619, 1
  %621 = icmp sle i64 %616, %620
  br i1 %621, label %622, label %644

622:                                              ; preds = %615
  %623 = load double, ptr %24, align 8, !tbaa !28
  %624 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %625 = load ptr, ptr %624, align 8, !tbaa !27
  %626 = load i64, ptr %16, align 8, !tbaa !25
  %627 = getelementptr inbounds double, ptr %625, i64 %626
  %628 = load double, ptr %627, align 8, !tbaa !28
  %629 = load ptr, ptr %14, align 8, !tbaa !5
  %630 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %628, ptr noundef %629)
  %631 = fadd double %623, %630
  store double %631, ptr %24, align 8, !tbaa !28
  %632 = load double, ptr %25, align 8, !tbaa !28
  %633 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %634 = load ptr, ptr %633, align 8, !tbaa !27
  %635 = load i64, ptr %16, align 8, !tbaa !25
  %636 = getelementptr inbounds double, ptr %634, i64 %635
  %637 = load double, ptr %636, align 8, !tbaa !28
  %638 = load ptr, ptr %14, align 8, !tbaa !5
  %639 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %637, ptr noundef %638)
  %640 = fmul double %632, %639
  store double %640, ptr %25, align 8, !tbaa !28
  br label %641

641:                                              ; preds = %622
  %642 = load i64, ptr %16, align 8, !tbaa !25
  %643 = add nsw i64 %642, 1
  store i64 %643, ptr %16, align 8, !tbaa !25
  br label %615, !llvm.loop !37

644:                                              ; preds = %615
  %645 = load double, ptr %24, align 8, !tbaa !28
  %646 = load double, ptr %25, align 8, !tbaa !28
  %647 = fadd double %645, %646
  %648 = load ptr, ptr %10, align 8, !tbaa !5
  %649 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %648, i32 0, i32 4
  %650 = load ptr, ptr %649, align 8, !tbaa !27
  %651 = getelementptr inbounds double, ptr %650, i64 0
  store double %647, ptr %651, align 8, !tbaa !28
  %652 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %652)
  store i32 1, ptr %36, align 4
  br label %5101

653:                                              ; preds = %609
  %654 = load ptr, ptr %8, align 8, !tbaa !5
  %655 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %654, i32 0, i32 1
  %656 = load i64, ptr %655, align 8, !tbaa !35
  %657 = icmp eq i64 %656, 2
  br i1 %657, label %658, label %701

658:                                              ; preds = %653
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %659

659:                                              ; preds = %696, %658
  %660 = load i64, ptr %16, align 8, !tbaa !25
  %661 = load ptr, ptr %8, align 8, !tbaa !5
  %662 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %661, i32 0, i32 2
  %663 = load i64, ptr %662, align 8, !tbaa !24
  %664 = sub nsw i64 %663, 1
  %665 = icmp sle i64 %660, %664
  br i1 %665, label %666, label %699

666:                                              ; preds = %659
  store double 0.000000e+00, ptr %26, align 8, !tbaa !28
  store i64 0, ptr %17, align 8, !tbaa !25
  br label %667

667:                                              ; preds = %679, %666
  %668 = load i64, ptr %17, align 8, !tbaa !25
  %669 = load i64, ptr %16, align 8, !tbaa !25
  %670 = icmp sle i64 %668, %669
  br i1 %670, label %671, label %682

671:                                              ; preds = %667
  %672 = load double, ptr %26, align 8, !tbaa !28
  %673 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %674 = load ptr, ptr %673, align 8, !tbaa !27
  %675 = load i64, ptr %16, align 8, !tbaa !25
  %676 = getelementptr inbounds double, ptr %674, i64 %675
  %677 = load double, ptr %676, align 8, !tbaa !28
  %678 = fadd double %672, %677
  store double %678, ptr %26, align 8, !tbaa !28
  br label %679

679:                                              ; preds = %671
  %680 = load i64, ptr %17, align 8, !tbaa !25
  %681 = add nsw i64 %680, 1
  store i64 %681, ptr %17, align 8, !tbaa !25
  br label %667, !llvm.loop !38

682:                                              ; preds = %667
  %683 = load ptr, ptr %10, align 8, !tbaa !5
  %684 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %683, i32 0, i32 4
  %685 = load ptr, ptr %684, align 8, !tbaa !27
  %686 = getelementptr inbounds double, ptr %685, i64 0
  %687 = load double, ptr %686, align 8, !tbaa !28
  %688 = load double, ptr %26, align 8, !tbaa !28
  %689 = load ptr, ptr %14, align 8, !tbaa !5
  %690 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %688, ptr noundef %689)
  %691 = fadd double %687, %690
  %692 = load ptr, ptr %10, align 8, !tbaa !5
  %693 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %692, i32 0, i32 4
  %694 = load ptr, ptr %693, align 8, !tbaa !27
  %695 = getelementptr inbounds double, ptr %694, i64 0
  store double %691, ptr %695, align 8, !tbaa !28
  br label %696

696:                                              ; preds = %682
  %697 = load i64, ptr %16, align 8, !tbaa !25
  %698 = add nsw i64 %697, 1
  store i64 %698, ptr %16, align 8, !tbaa !25
  br label %659, !llvm.loop !39

699:                                              ; preds = %659
  %700 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %700)
  store i32 1, ptr %36, align 4
  br label %5101

701:                                              ; preds = %653
  %702 = load ptr, ptr %8, align 8, !tbaa !5
  %703 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %702, i32 0, i32 1
  %704 = load i64, ptr %703, align 8, !tbaa !35
  %705 = icmp eq i64 %704, 3
  br i1 %705, label %706, label %738

706:                                              ; preds = %701
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %707

707:                                              ; preds = %733, %706
  %708 = load i64, ptr %16, align 8, !tbaa !25
  %709 = load ptr, ptr %8, align 8, !tbaa !5
  %710 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %709, i32 0, i32 2
  %711 = load i64, ptr %710, align 8, !tbaa !24
  %712 = sub nsw i64 %711, 1
  %713 = icmp sle i64 %708, %712
  br i1 %713, label %714, label %736

714:                                              ; preds = %707
  %715 = load ptr, ptr %10, align 8, !tbaa !5
  %716 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %715, i32 0, i32 4
  %717 = load ptr, ptr %716, align 8, !tbaa !27
  %718 = getelementptr inbounds double, ptr %717, i64 0
  %719 = load double, ptr %718, align 8, !tbaa !28
  %720 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %721 = load ptr, ptr %720, align 8, !tbaa !27
  %722 = load i64, ptr %16, align 8, !tbaa !25
  %723 = getelementptr inbounds double, ptr %721, i64 %722
  %724 = load double, ptr %723, align 8, !tbaa !28
  %725 = load ptr, ptr %14, align 8, !tbaa !5
  %726 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %724, ptr noundef %725)
  %727 = load ptr, ptr %14, align 8, !tbaa !5
  %728 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %719, double noundef %726, ptr noundef %727)
  %729 = load ptr, ptr %10, align 8, !tbaa !5
  %730 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %729, i32 0, i32 4
  %731 = load ptr, ptr %730, align 8, !tbaa !27
  %732 = getelementptr inbounds double, ptr %731, i64 0
  store double %728, ptr %732, align 8, !tbaa !28
  br label %733

733:                                              ; preds = %714
  %734 = load i64, ptr %16, align 8, !tbaa !25
  %735 = add nsw i64 %734, 1
  store i64 %735, ptr %16, align 8, !tbaa !25
  br label %707, !llvm.loop !40

736:                                              ; preds = %707
  %737 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %737)
  store i32 1, ptr %36, align 4
  br label %5101

738:                                              ; preds = %701
  %739 = load ptr, ptr %8, align 8, !tbaa !5
  %740 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %739, i32 0, i32 1
  %741 = load i64, ptr %740, align 8, !tbaa !35
  %742 = icmp eq i64 %741, 4
  br i1 %742, label %743, label %796

743:                                              ; preds = %738
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %744

744:                                              ; preds = %791, %743
  %745 = load i64, ptr %16, align 8, !tbaa !25
  %746 = load ptr, ptr %8, align 8, !tbaa !5
  %747 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %746, i32 0, i32 2
  %748 = load i64, ptr %747, align 8, !tbaa !24
  %749 = sub nsw i64 %748, 2
  %750 = icmp sle i64 %745, %749
  br i1 %750, label %751, label %794

751:                                              ; preds = %744
  %752 = load ptr, ptr %10, align 8, !tbaa !5
  %753 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %752, i32 0, i32 4
  %754 = load ptr, ptr %753, align 8, !tbaa !27
  %755 = getelementptr inbounds double, ptr %754, i64 0
  %756 = load double, ptr %755, align 8, !tbaa !28
  %757 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %758 = load ptr, ptr %757, align 8, !tbaa !27
  %759 = load i64, ptr %16, align 8, !tbaa !25
  %760 = add nsw i64 %759, 1
  %761 = getelementptr inbounds double, ptr %758, i64 %760
  %762 = load double, ptr %761, align 8, !tbaa !28
  %763 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %764 = load ptr, ptr %763, align 8, !tbaa !27
  %765 = load i64, ptr %16, align 8, !tbaa !25
  %766 = getelementptr inbounds double, ptr %764, i64 %765
  %767 = load double, ptr %766, align 8, !tbaa !28
  %768 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %769 = load ptr, ptr %768, align 8, !tbaa !27
  %770 = load i64, ptr %16, align 8, !tbaa !25
  %771 = getelementptr inbounds double, ptr %769, i64 %770
  %772 = load double, ptr %771, align 8, !tbaa !28
  %773 = fneg double %767
  %774 = call double @llvm.fmuladd.f64(double %773, double %772, double %762)
  %775 = load ptr, ptr %14, align 8, !tbaa !5
  %776 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %774, ptr noundef %775)
  %777 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %778 = load ptr, ptr %777, align 8, !tbaa !27
  %779 = load i64, ptr %16, align 8, !tbaa !25
  %780 = getelementptr inbounds double, ptr %778, i64 %779
  %781 = load double, ptr %780, align 8, !tbaa !28
  %782 = fsub double %781, 1.000000e+00
  %783 = load ptr, ptr %14, align 8, !tbaa !5
  %784 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %782, ptr noundef %783)
  %785 = call double @llvm.fmuladd.f64(double 1.000000e+02, double %776, double %784)
  %786 = fadd double %756, %785
  %787 = load ptr, ptr %10, align 8, !tbaa !5
  %788 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %787, i32 0, i32 4
  %789 = load ptr, ptr %788, align 8, !tbaa !27
  %790 = getelementptr inbounds double, ptr %789, i64 0
  store double %786, ptr %790, align 8, !tbaa !28
  br label %791

791:                                              ; preds = %751
  %792 = load i64, ptr %16, align 8, !tbaa !25
  %793 = add nsw i64 %792, 1
  store i64 %793, ptr %16, align 8, !tbaa !25
  br label %744, !llvm.loop !41

794:                                              ; preds = %744
  %795 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %795)
  store i32 1, ptr %36, align 4
  br label %5101

796:                                              ; preds = %738
  %797 = load ptr, ptr %8, align 8, !tbaa !5
  %798 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %797, i32 0, i32 1
  %799 = load i64, ptr %798, align 8, !tbaa !35
  %800 = icmp eq i64 %799, 5
  br i1 %800, label %801, label %816

801:                                              ; preds = %796
  %802 = load ptr, ptr %8, align 8, !tbaa !5
  %803 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %802, i32 0, i32 2
  %804 = load i64, ptr %803, align 8, !tbaa !24
  %805 = load ptr, ptr %14, align 8, !tbaa !5
  %806 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %804, ptr noundef %23, ptr noundef %805)
  store double %806, ptr %26, align 8, !tbaa !28
  %807 = load double, ptr %26, align 8, !tbaa !28
  %808 = load double, ptr %26, align 8, !tbaa !28
  %809 = fadd double %808, 1.000000e+00
  %810 = fdiv double %807, %809
  %811 = load ptr, ptr %10, align 8, !tbaa !5
  %812 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %811, i32 0, i32 4
  %813 = load ptr, ptr %812, align 8, !tbaa !27
  %814 = getelementptr inbounds double, ptr %813, i64 0
  store double %810, ptr %814, align 8, !tbaa !28
  %815 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %815)
  store i32 1, ptr %36, align 4
  br label %5101

816:                                              ; preds = %796
  %817 = load ptr, ptr %8, align 8, !tbaa !5
  %818 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %817, i32 0, i32 1
  %819 = load i64, ptr %818, align 8, !tbaa !35
  %820 = icmp eq i64 %819, 6
  br i1 %820, label %821, label %838

821:                                              ; preds = %816
  %822 = load ptr, ptr %8, align 8, !tbaa !5
  %823 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %822, i32 0, i32 2
  %824 = load i64, ptr %823, align 8, !tbaa !24
  %825 = load ptr, ptr %14, align 8, !tbaa !5
  %826 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %824, ptr noundef %23, ptr noundef %825)
  %827 = load ptr, ptr %14, align 8, !tbaa !5
  %828 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %826, ptr noundef %827)
  store double %828, ptr %26, align 8, !tbaa !28
  %829 = load double, ptr %26, align 8, !tbaa !28
  %830 = load double, ptr %26, align 8, !tbaa !28
  %831 = fadd double %830, 1.000000e+00
  %832 = fdiv double %829, %831
  %833 = load ptr, ptr %10, align 8, !tbaa !5
  %834 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %833, i32 0, i32 4
  %835 = load ptr, ptr %834, align 8, !tbaa !27
  %836 = getelementptr inbounds double, ptr %835, i64 0
  store double %832, ptr %836, align 8, !tbaa !28
  %837 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %837)
  store i32 1, ptr %36, align 4
  br label %5101

838:                                              ; preds = %816
  %839 = load ptr, ptr %8, align 8, !tbaa !5
  %840 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %839, i32 0, i32 1
  %841 = load i64, ptr %840, align 8, !tbaa !35
  %842 = icmp eq i64 %841, 7
  br i1 %842, label %843, label %859

843:                                              ; preds = %838
  %844 = load ptr, ptr %8, align 8, !tbaa !5
  %845 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %844, i32 0, i32 2
  %846 = load i64, ptr %845, align 8, !tbaa !24
  %847 = load ptr, ptr %14, align 8, !tbaa !5
  %848 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %846, ptr noundef %23, ptr noundef %847)
  store double %848, ptr %26, align 8, !tbaa !28
  %849 = load double, ptr %26, align 8, !tbaa !28
  %850 = load double, ptr %26, align 8, !tbaa !28
  %851 = load ptr, ptr %14, align 8, !tbaa !5
  %852 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %850, ptr noundef %851)
  %853 = fadd double %849, %852
  %854 = load ptr, ptr %10, align 8, !tbaa !5
  %855 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %854, i32 0, i32 4
  %856 = load ptr, ptr %855, align 8, !tbaa !27
  %857 = getelementptr inbounds double, ptr %856, i64 0
  store double %853, ptr %857, align 8, !tbaa !28
  %858 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %858)
  store i32 1, ptr %36, align 4
  br label %5101

859:                                              ; preds = %838
  %860 = load ptr, ptr %8, align 8, !tbaa !5
  %861 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %860, i32 0, i32 1
  %862 = load i64, ptr %861, align 8, !tbaa !35
  %863 = icmp eq i64 %862, 8
  br i1 %863, label %864, label %898

864:                                              ; preds = %859
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %865

865:                                              ; preds = %893, %864
  %866 = load i64, ptr %16, align 8, !tbaa !25
  %867 = load ptr, ptr %8, align 8, !tbaa !5
  %868 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %867, i32 0, i32 2
  %869 = load i64, ptr %868, align 8, !tbaa !24
  %870 = sub nsw i64 %869, 1
  %871 = icmp sle i64 %866, %870
  br i1 %871, label %872, label %896

872:                                              ; preds = %865
  %873 = load ptr, ptr %10, align 8, !tbaa !5
  %874 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %873, i32 0, i32 4
  %875 = load ptr, ptr %874, align 8, !tbaa !27
  %876 = getelementptr inbounds double, ptr %875, i64 0
  %877 = load double, ptr %876, align 8, !tbaa !28
  %878 = load i64, ptr %16, align 8, !tbaa !25
  %879 = add nsw i64 %878, 1
  %880 = sitofp i64 %879 to double
  %881 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %882 = load ptr, ptr %881, align 8, !tbaa !27
  %883 = load i64, ptr %16, align 8, !tbaa !25
  %884 = getelementptr inbounds double, ptr %882, i64 %883
  %885 = load double, ptr %884, align 8, !tbaa !28
  %886 = load ptr, ptr %14, align 8, !tbaa !5
  %887 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %885, ptr noundef %886)
  %888 = call double @llvm.fmuladd.f64(double %880, double %887, double %877)
  %889 = load ptr, ptr %10, align 8, !tbaa !5
  %890 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %889, i32 0, i32 4
  %891 = load ptr, ptr %890, align 8, !tbaa !27
  %892 = getelementptr inbounds double, ptr %891, i64 0
  store double %888, ptr %892, align 8, !tbaa !28
  br label %893

893:                                              ; preds = %872
  %894 = load i64, ptr %16, align 8, !tbaa !25
  %895 = add nsw i64 %894, 1
  store i64 %895, ptr %16, align 8, !tbaa !25
  br label %865, !llvm.loop !42

896:                                              ; preds = %865
  %897 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %897)
  store i32 1, ptr %36, align 4
  br label %5101

898:                                              ; preds = %859
  %899 = load ptr, ptr %8, align 8, !tbaa !5
  %900 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %899, i32 0, i32 1
  %901 = load i64, ptr %900, align 8, !tbaa !35
  %902 = icmp eq i64 %901, 9
  br i1 %902, label %903, label %937

903:                                              ; preds = %898
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %904

904:                                              ; preds = %932, %903
  %905 = load i64, ptr %16, align 8, !tbaa !25
  %906 = load ptr, ptr %8, align 8, !tbaa !5
  %907 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %906, i32 0, i32 2
  %908 = load i64, ptr %907, align 8, !tbaa !24
  %909 = sub nsw i64 %908, 1
  %910 = icmp sle i64 %905, %909
  br i1 %910, label %911, label %935

911:                                              ; preds = %904
  %912 = load ptr, ptr %10, align 8, !tbaa !5
  %913 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %912, i32 0, i32 4
  %914 = load ptr, ptr %913, align 8, !tbaa !27
  %915 = getelementptr inbounds double, ptr %914, i64 0
  %916 = load double, ptr %915, align 8, !tbaa !28
  %917 = load i64, ptr %16, align 8, !tbaa !25
  %918 = add nsw i64 %917, 1
  %919 = sitofp i64 %918 to double
  %920 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %921 = load ptr, ptr %920, align 8, !tbaa !27
  %922 = load i64, ptr %16, align 8, !tbaa !25
  %923 = getelementptr inbounds double, ptr %921, i64 %922
  %924 = load double, ptr %923, align 8, !tbaa !28
  %925 = load ptr, ptr %14, align 8, !tbaa !5
  %926 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %924, ptr noundef %925)
  %927 = call double @llvm.fmuladd.f64(double %919, double %926, double %916)
  %928 = load ptr, ptr %10, align 8, !tbaa !5
  %929 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %928, i32 0, i32 4
  %930 = load ptr, ptr %929, align 8, !tbaa !27
  %931 = getelementptr inbounds double, ptr %930, i64 0
  store double %927, ptr %931, align 8, !tbaa !28
  br label %932

932:                                              ; preds = %911
  %933 = load i64, ptr %16, align 8, !tbaa !25
  %934 = add nsw i64 %933, 1
  store i64 %934, ptr %16, align 8, !tbaa !25
  br label %904, !llvm.loop !43

935:                                              ; preds = %904
  %936 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %936)
  store i32 1, ptr %36, align 4
  br label %5101

937:                                              ; preds = %898
  %938 = load ptr, ptr %8, align 8, !tbaa !5
  %939 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %938, i32 0, i32 1
  %940 = load i64, ptr %939, align 8, !tbaa !35
  %941 = icmp eq i64 %940, 10
  br i1 %941, label %942, label %1003

942:                                              ; preds = %937
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %943

943:                                              ; preds = %998, %942
  %944 = load i64, ptr %16, align 8, !tbaa !25
  %945 = load ptr, ptr %8, align 8, !tbaa !5
  %946 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %945, i32 0, i32 2
  %947 = load i64, ptr %946, align 8, !tbaa !24
  %948 = sub nsw i64 %947, 2
  %949 = icmp sle i64 %944, %948
  br i1 %949, label %950, label %1001

950:                                              ; preds = %943
  %951 = load ptr, ptr %10, align 8, !tbaa !5
  %952 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %951, i32 0, i32 4
  %953 = load ptr, ptr %952, align 8, !tbaa !27
  %954 = getelementptr inbounds double, ptr %953, i64 0
  %955 = load double, ptr %954, align 8, !tbaa !28
  %956 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %957 = load ptr, ptr %956, align 8, !tbaa !27
  %958 = load i64, ptr %16, align 8, !tbaa !25
  %959 = getelementptr inbounds double, ptr %957, i64 %958
  %960 = load double, ptr %959, align 8, !tbaa !28
  %961 = load ptr, ptr %14, align 8, !tbaa !5
  %962 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %960, ptr noundef %961)
  %963 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %964 = load ptr, ptr %963, align 8, !tbaa !27
  %965 = load i64, ptr %16, align 8, !tbaa !25
  %966 = add nsw i64 %965, 1
  %967 = getelementptr inbounds double, ptr %964, i64 %966
  %968 = load double, ptr %967, align 8, !tbaa !28
  %969 = load ptr, ptr %14, align 8, !tbaa !5
  %970 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %968, ptr noundef %969)
  %971 = fadd double %970, 1.000000e+00
  %972 = load ptr, ptr %14, align 8, !tbaa !5
  %973 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %962, double noundef %971, ptr noundef %972)
  %974 = fadd double %955, %973
  %975 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %976 = load ptr, ptr %975, align 8, !tbaa !27
  %977 = load i64, ptr %16, align 8, !tbaa !25
  %978 = add nsw i64 %977, 1
  %979 = getelementptr inbounds double, ptr %976, i64 %978
  %980 = load double, ptr %979, align 8, !tbaa !28
  %981 = load ptr, ptr %14, align 8, !tbaa !5
  %982 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %980, ptr noundef %981)
  %983 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %984 = load ptr, ptr %983, align 8, !tbaa !27
  %985 = load i64, ptr %16, align 8, !tbaa !25
  %986 = getelementptr inbounds double, ptr %984, i64 %985
  %987 = load double, ptr %986, align 8, !tbaa !28
  %988 = load ptr, ptr %14, align 8, !tbaa !5
  %989 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %987, ptr noundef %988)
  %990 = fadd double %989, 1.000000e+00
  %991 = load ptr, ptr %14, align 8, !tbaa !5
  %992 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %982, double noundef %990, ptr noundef %991)
  %993 = fadd double %974, %992
  %994 = load ptr, ptr %10, align 8, !tbaa !5
  %995 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %994, i32 0, i32 4
  %996 = load ptr, ptr %995, align 8, !tbaa !27
  %997 = getelementptr inbounds double, ptr %996, i64 0
  store double %993, ptr %997, align 8, !tbaa !28
  br label %998

998:                                              ; preds = %950
  %999 = load i64, ptr %16, align 8, !tbaa !25
  %1000 = add nsw i64 %999, 1
  store i64 %1000, ptr %16, align 8, !tbaa !25
  br label %943, !llvm.loop !44

1001:                                             ; preds = %943
  %1002 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1002)
  store i32 1, ptr %36, align 4
  br label %5101

1003:                                             ; preds = %937
  %1004 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.318, ptr noundef %1004)
  br label %1005

1005:                                             ; preds = %1003, %529
  %1006 = load ptr, ptr %8, align 8, !tbaa !5
  %1007 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1006, i32 0, i32 0
  %1008 = load i64, ptr %1007, align 8, !tbaa !11
  %1009 = icmp eq i64 %1008, 2
  br i1 %1009, label %1010, label %1812

1010:                                             ; preds = %1005
  %1011 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %1012 = trunc i8 %1011 to i1
  %1013 = xor i1 %1012, true
  %1014 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %1013, ptr noundef @.str.319, ptr noundef %1014)
  %1015 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %1016 = trunc i8 %1015 to i1
  br i1 %1016, label %1019, label %1017

1017:                                             ; preds = %1010
  %1018 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1018)
  store i32 1, ptr %36, align 4
  br label %5101

1019:                                             ; preds = %1010
  %1020 = load ptr, ptr %8, align 8, !tbaa !5
  %1021 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1020, i32 0, i32 2
  %1022 = load i64, ptr %1021, align 8, !tbaa !24
  %1023 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %1022, ptr noundef %23, ptr noundef %1023)
  %1024 = load ptr, ptr %8, align 8, !tbaa !5
  %1025 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1024, i32 0, i32 12
  %1026 = load i8, ptr %1025, align 8, !tbaa !26, !range !17, !noundef !18
  %1027 = trunc i8 %1026 to i1
  br i1 %1027, label %1028, label %1039

1028:                                             ; preds = %1019
  %1029 = load ptr, ptr %8, align 8, !tbaa !5
  %1030 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1029, i32 0, i32 2
  %1031 = load i64, ptr %1030, align 8, !tbaa !24
  %1032 = load ptr, ptr %8, align 8, !tbaa !5
  %1033 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1032, i32 0, i32 2
  %1034 = load i64, ptr %1033, align 8, !tbaa !24
  %1035 = load ptr, ptr %8, align 8, !tbaa !5
  %1036 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1035, i32 0, i32 13
  %1037 = load ptr, ptr %9, align 8, !tbaa !5
  %1038 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rgemvElldPKNS_9ae_matrixElPKNS_9ae_vectorEdPS3_PNS_8ae_stateE(i64 noundef %1031, i64 noundef %1034, double noundef 1.000000e+00, ptr noundef %1036, i64 noundef 0, ptr noundef %1037, double noundef 0.000000e+00, ptr noundef %23, ptr noundef %1038)
  br label %1045

1039:                                             ; preds = %1019
  %1040 = load ptr, ptr %8, align 8, !tbaa !5
  %1041 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1040, i32 0, i32 2
  %1042 = load i64, ptr %1041, align 8, !tbaa !24
  %1043 = load ptr, ptr %9, align 8, !tbaa !5
  %1044 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %1042, ptr noundef %1043, ptr noundef %23, ptr noundef %1044)
  br label %1045

1045:                                             ; preds = %1039, %1028
  %1046 = load ptr, ptr %10, align 8, !tbaa !5
  %1047 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1046, i32 0, i32 4
  %1048 = load ptr, ptr %1047, align 8, !tbaa !27
  %1049 = getelementptr inbounds double, ptr %1048, i64 0
  store double 0.000000e+00, ptr %1049, align 8, !tbaa !28
  %1050 = load ptr, ptr %8, align 8, !tbaa !5
  %1051 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1050, i32 0, i32 1
  %1052 = load i64, ptr %1051, align 8, !tbaa !35
  %1053 = icmp eq i64 %1052, 0
  br i1 %1053, label %1054, label %1095

1054:                                             ; preds = %1045
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %1055

1055:                                             ; preds = %1090, %1054
  %1056 = load i64, ptr %16, align 8, !tbaa !25
  %1057 = load ptr, ptr %8, align 8, !tbaa !5
  %1058 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1057, i32 0, i32 2
  %1059 = load i64, ptr %1058, align 8, !tbaa !24
  %1060 = sub nsw i64 %1059, 1
  %1061 = icmp sle i64 %1056, %1060
  br i1 %1061, label %1062, label %1093

1062:                                             ; preds = %1055
  %1063 = load ptr, ptr %10, align 8, !tbaa !5
  %1064 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1063, i32 0, i32 4
  %1065 = load ptr, ptr %1064, align 8, !tbaa !27
  %1066 = getelementptr inbounds double, ptr %1065, i64 0
  %1067 = load double, ptr %1066, align 8, !tbaa !28
  %1068 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1069 = load ptr, ptr %1068, align 8, !tbaa !27
  %1070 = load i64, ptr %16, align 8, !tbaa !25
  %1071 = getelementptr inbounds double, ptr %1069, i64 %1070
  %1072 = load double, ptr %1071, align 8, !tbaa !28
  %1073 = load ptr, ptr %14, align 8, !tbaa !5
  %1074 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1072, ptr noundef %1073)
  %1075 = fadd double %1067, %1074
  %1076 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1077 = load ptr, ptr %1076, align 8, !tbaa !27
  %1078 = load i64, ptr %16, align 8, !tbaa !25
  %1079 = getelementptr inbounds double, ptr %1077, i64 %1078
  %1080 = load double, ptr %1079, align 8, !tbaa !28
  %1081 = fmul double 0x401921FB54442D18, %1080
  %1082 = load ptr, ptr %14, align 8, !tbaa !5
  %1083 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %1081, ptr noundef %1082)
  %1084 = call double @llvm.fmuladd.f64(double -1.000000e+01, double %1083, double %1075)
  %1085 = fadd double %1084, 1.000000e+01
  %1086 = load ptr, ptr %10, align 8, !tbaa !5
  %1087 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1086, i32 0, i32 4
  %1088 = load ptr, ptr %1087, align 8, !tbaa !27
  %1089 = getelementptr inbounds double, ptr %1088, i64 0
  store double %1085, ptr %1089, align 8, !tbaa !28
  br label %1090

1090:                                             ; preds = %1062
  %1091 = load i64, ptr %16, align 8, !tbaa !25
  %1092 = add nsw i64 %1091, 1
  store i64 %1092, ptr %16, align 8, !tbaa !25
  br label %1055, !llvm.loop !45

1093:                                             ; preds = %1055
  %1094 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1094)
  store i32 1, ptr %36, align 4
  br label %5101

1095:                                             ; preds = %1045
  %1096 = load ptr, ptr %8, align 8, !tbaa !5
  %1097 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1096, i32 0, i32 1
  %1098 = load i64, ptr %1097, align 8, !tbaa !35
  %1099 = icmp eq i64 %1098, 1
  br i1 %1099, label %1100, label %1197

1100:                                             ; preds = %1095
  store double 0.000000e+00, ptr %26, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %1101

1101:                                             ; preds = %1118, %1100
  %1102 = load i64, ptr %16, align 8, !tbaa !25
  %1103 = load ptr, ptr %8, align 8, !tbaa !5
  %1104 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1103, i32 0, i32 2
  %1105 = load i64, ptr %1104, align 8, !tbaa !24
  %1106 = sub nsw i64 %1105, 1
  %1107 = icmp sle i64 %1102, %1106
  br i1 %1107, label %1108, label %1121

1108:                                             ; preds = %1101
  %1109 = load double, ptr %26, align 8, !tbaa !28
  %1110 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1111 = load ptr, ptr %1110, align 8, !tbaa !27
  %1112 = load i64, ptr %16, align 8, !tbaa !25
  %1113 = getelementptr inbounds double, ptr %1111, i64 %1112
  %1114 = load double, ptr %1113, align 8, !tbaa !28
  %1115 = load ptr, ptr %14, align 8, !tbaa !5
  %1116 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1114, ptr noundef %1115)
  %1117 = fadd double %1109, %1116
  store double %1117, ptr %26, align 8, !tbaa !28
  br label %1118

1118:                                             ; preds = %1108
  %1119 = load i64, ptr %16, align 8, !tbaa !25
  %1120 = add nsw i64 %1119, 1
  store i64 %1120, ptr %16, align 8, !tbaa !25
  br label %1101, !llvm.loop !46

1121:                                             ; preds = %1101
  %1122 = load ptr, ptr %10, align 8, !tbaa !5
  %1123 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1122, i32 0, i32 4
  %1124 = load ptr, ptr %1123, align 8, !tbaa !27
  %1125 = getelementptr inbounds double, ptr %1124, i64 0
  %1126 = load double, ptr %1125, align 8, !tbaa !28
  %1127 = load double, ptr %26, align 8, !tbaa !28
  %1128 = load ptr, ptr %8, align 8, !tbaa !5
  %1129 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1128, i32 0, i32 2
  %1130 = load i64, ptr %1129, align 8, !tbaa !24
  %1131 = sitofp i64 %1130 to double
  %1132 = fdiv double %1127, %1131
  %1133 = load ptr, ptr %14, align 8, !tbaa !5
  %1134 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1132, ptr noundef %1133)
  %1135 = fmul double -2.000000e-01, %1134
  %1136 = load ptr, ptr %14, align 8, !tbaa !5
  %1137 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1135, ptr noundef %1136)
  %1138 = call double @llvm.fmuladd.f64(double -2.000000e+01, double %1137, double %1126)
  %1139 = load ptr, ptr %10, align 8, !tbaa !5
  %1140 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1139, i32 0, i32 4
  %1141 = load ptr, ptr %1140, align 8, !tbaa !27
  %1142 = getelementptr inbounds double, ptr %1141, i64 0
  store double %1138, ptr %1142, align 8, !tbaa !28
  store double 0.000000e+00, ptr %26, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %1143

1143:                                             ; preds = %1161, %1121
  %1144 = load i64, ptr %16, align 8, !tbaa !25
  %1145 = load ptr, ptr %8, align 8, !tbaa !5
  %1146 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1145, i32 0, i32 2
  %1147 = load i64, ptr %1146, align 8, !tbaa !24
  %1148 = sub nsw i64 %1147, 1
  %1149 = icmp sle i64 %1144, %1148
  br i1 %1149, label %1150, label %1164

1150:                                             ; preds = %1143
  %1151 = load double, ptr %26, align 8, !tbaa !28
  %1152 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1153 = load ptr, ptr %1152, align 8, !tbaa !27
  %1154 = load i64, ptr %16, align 8, !tbaa !25
  %1155 = getelementptr inbounds double, ptr %1153, i64 %1154
  %1156 = load double, ptr %1155, align 8, !tbaa !28
  %1157 = fmul double 0x401921FB54442D18, %1156
  %1158 = load ptr, ptr %14, align 8, !tbaa !5
  %1159 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %1157, ptr noundef %1158)
  %1160 = fadd double %1151, %1159
  store double %1160, ptr %26, align 8, !tbaa !28
  br label %1161

1161:                                             ; preds = %1150
  %1162 = load i64, ptr %16, align 8, !tbaa !25
  %1163 = add nsw i64 %1162, 1
  store i64 %1163, ptr %16, align 8, !tbaa !25
  br label %1143, !llvm.loop !47

1164:                                             ; preds = %1143
  %1165 = load ptr, ptr %10, align 8, !tbaa !5
  %1166 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1165, i32 0, i32 4
  %1167 = load ptr, ptr %1166, align 8, !tbaa !27
  %1168 = getelementptr inbounds double, ptr %1167, i64 0
  %1169 = load double, ptr %1168, align 8, !tbaa !28
  %1170 = load double, ptr %26, align 8, !tbaa !28
  %1171 = load ptr, ptr %8, align 8, !tbaa !5
  %1172 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1171, i32 0, i32 2
  %1173 = load i64, ptr %1172, align 8, !tbaa !24
  %1174 = sitofp i64 %1173 to double
  %1175 = fdiv double %1170, %1174
  %1176 = load ptr, ptr %14, align 8, !tbaa !5
  %1177 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1175, ptr noundef %1176)
  %1178 = fsub double %1169, %1177
  %1179 = load ptr, ptr %10, align 8, !tbaa !5
  %1180 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1179, i32 0, i32 4
  %1181 = load ptr, ptr %1180, align 8, !tbaa !27
  %1182 = getelementptr inbounds double, ptr %1181, i64 0
  store double %1178, ptr %1182, align 8, !tbaa !28
  %1183 = load ptr, ptr %10, align 8, !tbaa !5
  %1184 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1183, i32 0, i32 4
  %1185 = load ptr, ptr %1184, align 8, !tbaa !27
  %1186 = getelementptr inbounds double, ptr %1185, i64 0
  %1187 = load double, ptr %1186, align 8, !tbaa !28
  %1188 = fadd double %1187, 2.000000e+01
  %1189 = load ptr, ptr %14, align 8, !tbaa !5
  %1190 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef 1.000000e+00, ptr noundef %1189)
  %1191 = fadd double %1188, %1190
  %1192 = load ptr, ptr %10, align 8, !tbaa !5
  %1193 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1192, i32 0, i32 4
  %1194 = load ptr, ptr %1193, align 8, !tbaa !27
  %1195 = getelementptr inbounds double, ptr %1194, i64 0
  store double %1191, ptr %1195, align 8, !tbaa !28
  %1196 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1196)
  store i32 1, ptr %36, align 4
  br label %5101

1197:                                             ; preds = %1095
  %1198 = load ptr, ptr %8, align 8, !tbaa !5
  %1199 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1198, i32 0, i32 1
  %1200 = load i64, ptr %1199, align 8, !tbaa !35
  %1201 = icmp eq i64 %1200, 2
  br i1 %1201, label %1202, label %1242

1202:                                             ; preds = %1197
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %1203

1203:                                             ; preds = %1237, %1202
  %1204 = load i64, ptr %16, align 8, !tbaa !25
  %1205 = load ptr, ptr %8, align 8, !tbaa !5
  %1206 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1205, i32 0, i32 2
  %1207 = load i64, ptr %1206, align 8, !tbaa !24
  %1208 = sub nsw i64 %1207, 1
  %1209 = icmp sle i64 %1204, %1208
  br i1 %1209, label %1210, label %1240

1210:                                             ; preds = %1203
  %1211 = load ptr, ptr %10, align 8, !tbaa !5
  %1212 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1211, i32 0, i32 4
  %1213 = load ptr, ptr %1212, align 8, !tbaa !27
  %1214 = getelementptr inbounds double, ptr %1213, i64 0
  %1215 = load double, ptr %1214, align 8, !tbaa !28
  %1216 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1217 = load ptr, ptr %1216, align 8, !tbaa !27
  %1218 = load i64, ptr %16, align 8, !tbaa !25
  %1219 = getelementptr inbounds double, ptr %1217, i64 %1218
  %1220 = load double, ptr %1219, align 8, !tbaa !28
  %1221 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1222 = load ptr, ptr %1221, align 8, !tbaa !27
  %1223 = load i64, ptr %16, align 8, !tbaa !25
  %1224 = getelementptr inbounds double, ptr %1222, i64 %1223
  %1225 = load double, ptr %1224, align 8, !tbaa !28
  %1226 = load ptr, ptr %14, align 8, !tbaa !5
  %1227 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %1225, ptr noundef %1226)
  %1228 = fadd double 1.000000e-01, %1227
  %1229 = fmul double %1220, %1228
  %1230 = load ptr, ptr %14, align 8, !tbaa !5
  %1231 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1229, ptr noundef %1230)
  %1232 = fadd double %1215, %1231
  %1233 = load ptr, ptr %10, align 8, !tbaa !5
  %1234 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1233, i32 0, i32 4
  %1235 = load ptr, ptr %1234, align 8, !tbaa !27
  %1236 = getelementptr inbounds double, ptr %1235, i64 0
  store double %1232, ptr %1236, align 8, !tbaa !28
  br label %1237

1237:                                             ; preds = %1210
  %1238 = load i64, ptr %16, align 8, !tbaa !25
  %1239 = add nsw i64 %1238, 1
  store i64 %1239, ptr %16, align 8, !tbaa !25
  br label %1203, !llvm.loop !48

1240:                                             ; preds = %1203
  %1241 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1241)
  store i32 1, ptr %36, align 4
  br label %5101

1242:                                             ; preds = %1197
  %1243 = load ptr, ptr %8, align 8, !tbaa !5
  %1244 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1243, i32 0, i32 1
  %1245 = load i64, ptr %1244, align 8, !tbaa !35
  %1246 = icmp eq i64 %1245, 3
  br i1 %1246, label %1247, label %1295

1247:                                             ; preds = %1242
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %1248

1248:                                             ; preds = %1290, %1247
  %1249 = load i64, ptr %16, align 8, !tbaa !25
  %1250 = load ptr, ptr %8, align 8, !tbaa !5
  %1251 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1250, i32 0, i32 2
  %1252 = load i64, ptr %1251, align 8, !tbaa !24
  %1253 = sub nsw i64 %1252, 1
  %1254 = icmp sle i64 %1249, %1253
  br i1 %1254, label %1255, label %1293

1255:                                             ; preds = %1248
  %1256 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1257 = load ptr, ptr %1256, align 8, !tbaa !27
  %1258 = load i64, ptr %16, align 8, !tbaa !25
  %1259 = getelementptr inbounds double, ptr %1257, i64 %1258
  %1260 = load double, ptr %1259, align 8, !tbaa !28
  %1261 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %1260, double noundef 0.000000e+00)
  br i1 %1261, label %1262, label %1289

1262:                                             ; preds = %1255
  %1263 = load ptr, ptr %10, align 8, !tbaa !5
  %1264 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1263, i32 0, i32 4
  %1265 = load ptr, ptr %1264, align 8, !tbaa !27
  %1266 = getelementptr inbounds double, ptr %1265, i64 0
  %1267 = load double, ptr %1266, align 8, !tbaa !28
  %1268 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1269 = load ptr, ptr %1268, align 8, !tbaa !27
  %1270 = load i64, ptr %16, align 8, !tbaa !25
  %1271 = getelementptr inbounds double, ptr %1269, i64 %1270
  %1272 = load double, ptr %1271, align 8, !tbaa !28
  %1273 = load ptr, ptr %14, align 8, !tbaa !5
  %1274 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1272, double noundef 6.000000e+00, ptr noundef %1273)
  %1275 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1276 = load ptr, ptr %1275, align 8, !tbaa !27
  %1277 = load i64, ptr %16, align 8, !tbaa !25
  %1278 = getelementptr inbounds double, ptr %1276, i64 %1277
  %1279 = load double, ptr %1278, align 8, !tbaa !28
  %1280 = fdiv double 1.000000e+00, %1279
  %1281 = load ptr, ptr %14, align 8, !tbaa !5
  %1282 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %1280, ptr noundef %1281)
  %1283 = fadd double 2.000000e+00, %1282
  %1284 = call double @llvm.fmuladd.f64(double %1274, double %1283, double %1267)
  %1285 = load ptr, ptr %10, align 8, !tbaa !5
  %1286 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1285, i32 0, i32 4
  %1287 = load ptr, ptr %1286, align 8, !tbaa !27
  %1288 = getelementptr inbounds double, ptr %1287, i64 0
  store double %1284, ptr %1288, align 8, !tbaa !28
  br label %1289

1289:                                             ; preds = %1262, %1255
  br label %1290

1290:                                             ; preds = %1289
  %1291 = load i64, ptr %16, align 8, !tbaa !25
  %1292 = add nsw i64 %1291, 1
  store i64 %1292, ptr %16, align 8, !tbaa !25
  br label %1248, !llvm.loop !49

1293:                                             ; preds = %1248
  %1294 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1294)
  store i32 1, ptr %36, align 4
  br label %5101

1295:                                             ; preds = %1242
  %1296 = load ptr, ptr %8, align 8, !tbaa !5
  %1297 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1296, i32 0, i32 1
  %1298 = load i64, ptr %1297, align 8, !tbaa !35
  %1299 = icmp eq i64 %1298, 4
  br i1 %1299, label %1300, label %1371

1300:                                             ; preds = %1295
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %1301

1301:                                             ; preds = %1327, %1300
  %1302 = load i64, ptr %16, align 8, !tbaa !25
  %1303 = load ptr, ptr %8, align 8, !tbaa !5
  %1304 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1303, i32 0, i32 2
  %1305 = load i64, ptr %1304, align 8, !tbaa !24
  %1306 = sub nsw i64 %1305, 1
  %1307 = icmp sle i64 %1302, %1306
  br i1 %1307, label %1308, label %1330

1308:                                             ; preds = %1301
  %1309 = load ptr, ptr %10, align 8, !tbaa !5
  %1310 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1309, i32 0, i32 4
  %1311 = load ptr, ptr %1310, align 8, !tbaa !27
  %1312 = getelementptr inbounds double, ptr %1311, i64 0
  %1313 = load double, ptr %1312, align 8, !tbaa !28
  %1314 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1315 = load ptr, ptr %1314, align 8, !tbaa !27
  %1316 = load i64, ptr %16, align 8, !tbaa !25
  %1317 = getelementptr inbounds double, ptr %1315, i64 %1316
  %1318 = load double, ptr %1317, align 8, !tbaa !28
  %1319 = load ptr, ptr %14, align 8, !tbaa !5
  %1320 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1318, ptr noundef %1319)
  %1321 = fdiv double %1320, 4.000000e+03
  %1322 = fadd double %1313, %1321
  %1323 = load ptr, ptr %10, align 8, !tbaa !5
  %1324 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1323, i32 0, i32 4
  %1325 = load ptr, ptr %1324, align 8, !tbaa !27
  %1326 = getelementptr inbounds double, ptr %1325, i64 0
  store double %1322, ptr %1326, align 8, !tbaa !28
  br label %1327

1327:                                             ; preds = %1308
  %1328 = load i64, ptr %16, align 8, !tbaa !25
  %1329 = add nsw i64 %1328, 1
  store i64 %1329, ptr %16, align 8, !tbaa !25
  br label %1301, !llvm.loop !50

1330:                                             ; preds = %1301
  store double 1.000000e+00, ptr %26, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %1331

1331:                                             ; preds = %1354, %1330
  %1332 = load i64, ptr %16, align 8, !tbaa !25
  %1333 = load ptr, ptr %8, align 8, !tbaa !5
  %1334 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1333, i32 0, i32 2
  %1335 = load i64, ptr %1334, align 8, !tbaa !24
  %1336 = sub nsw i64 %1335, 1
  %1337 = icmp sle i64 %1332, %1336
  br i1 %1337, label %1338, label %1357

1338:                                             ; preds = %1331
  %1339 = load double, ptr %26, align 8, !tbaa !28
  %1340 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1341 = load ptr, ptr %1340, align 8, !tbaa !27
  %1342 = load i64, ptr %16, align 8, !tbaa !25
  %1343 = getelementptr inbounds double, ptr %1341, i64 %1342
  %1344 = load double, ptr %1343, align 8, !tbaa !28
  %1345 = load i64, ptr %16, align 8, !tbaa !25
  %1346 = add nsw i64 %1345, 1
  %1347 = sitofp i64 %1346 to double
  %1348 = load ptr, ptr %14, align 8, !tbaa !5
  %1349 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1347, ptr noundef %1348)
  %1350 = fdiv double %1344, %1349
  %1351 = load ptr, ptr %14, align 8, !tbaa !5
  %1352 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %1350, ptr noundef %1351)
  %1353 = fmul double %1339, %1352
  store double %1353, ptr %26, align 8, !tbaa !28
  br label %1354

1354:                                             ; preds = %1338
  %1355 = load i64, ptr %16, align 8, !tbaa !25
  %1356 = add nsw i64 %1355, 1
  store i64 %1356, ptr %16, align 8, !tbaa !25
  br label %1331, !llvm.loop !51

1357:                                             ; preds = %1331
  %1358 = load ptr, ptr %10, align 8, !tbaa !5
  %1359 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1358, i32 0, i32 4
  %1360 = load ptr, ptr %1359, align 8, !tbaa !27
  %1361 = getelementptr inbounds double, ptr %1360, i64 0
  %1362 = load double, ptr %1361, align 8, !tbaa !28
  %1363 = load double, ptr %26, align 8, !tbaa !28
  %1364 = fsub double 1.000000e+00, %1363
  %1365 = fadd double %1362, %1364
  %1366 = load ptr, ptr %10, align 8, !tbaa !5
  %1367 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1366, i32 0, i32 4
  %1368 = load ptr, ptr %1367, align 8, !tbaa !27
  %1369 = getelementptr inbounds double, ptr %1368, i64 0
  store double %1365, ptr %1369, align 8, !tbaa !28
  %1370 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1370)
  store i32 1, ptr %36, align 4
  br label %5101

1371:                                             ; preds = %1295
  %1372 = load ptr, ptr %8, align 8, !tbaa !5
  %1373 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1372, i32 0, i32 1
  %1374 = load i64, ptr %1373, align 8, !tbaa !35
  %1375 = icmp eq i64 %1374, 5
  br i1 %1375, label %1376, label %1441

1376:                                             ; preds = %1371
  %1377 = load ptr, ptr %10, align 8, !tbaa !5
  %1378 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1377, i32 0, i32 4
  %1379 = load ptr, ptr %1378, align 8, !tbaa !27
  %1380 = getelementptr inbounds double, ptr %1379, i64 0
  store double 0.000000e+00, ptr %1380, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %1381

1381:                                             ; preds = %1436, %1376
  %1382 = load i64, ptr %16, align 8, !tbaa !25
  %1383 = load ptr, ptr %8, align 8, !tbaa !5
  %1384 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1383, i32 0, i32 2
  %1385 = load i64, ptr %1384, align 8, !tbaa !24
  %1386 = sub nsw i64 %1385, 2
  %1387 = icmp sle i64 %1382, %1386
  br i1 %1387, label %1388, label %1439

1388:                                             ; preds = %1381
  %1389 = load ptr, ptr %10, align 8, !tbaa !5
  %1390 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1389, i32 0, i32 4
  %1391 = load ptr, ptr %1390, align 8, !tbaa !27
  %1392 = getelementptr inbounds double, ptr %1391, i64 0
  %1393 = load double, ptr %1392, align 8, !tbaa !28
  %1394 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1395 = load ptr, ptr %1394, align 8, !tbaa !27
  %1396 = load i64, ptr %16, align 8, !tbaa !25
  %1397 = getelementptr inbounds double, ptr %1395, i64 %1396
  %1398 = load double, ptr %1397, align 8, !tbaa !28
  %1399 = load ptr, ptr %14, align 8, !tbaa !5
  %1400 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1398, ptr noundef %1399)
  %1401 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1402 = load ptr, ptr %1401, align 8, !tbaa !27
  %1403 = load i64, ptr %16, align 8, !tbaa !25
  %1404 = add nsw i64 %1403, 1
  %1405 = getelementptr inbounds double, ptr %1402, i64 %1404
  %1406 = load double, ptr %1405, align 8, !tbaa !28
  %1407 = load ptr, ptr %14, align 8, !tbaa !5
  %1408 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1406, ptr noundef %1407)
  %1409 = fadd double %1408, 1.000000e+00
  %1410 = load ptr, ptr %14, align 8, !tbaa !5
  %1411 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1400, double noundef %1409, ptr noundef %1410)
  %1412 = fadd double %1393, %1411
  %1413 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1414 = load ptr, ptr %1413, align 8, !tbaa !27
  %1415 = load i64, ptr %16, align 8, !tbaa !25
  %1416 = add nsw i64 %1415, 1
  %1417 = getelementptr inbounds double, ptr %1414, i64 %1416
  %1418 = load double, ptr %1417, align 8, !tbaa !28
  %1419 = load ptr, ptr %14, align 8, !tbaa !5
  %1420 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1418, ptr noundef %1419)
  %1421 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1422 = load ptr, ptr %1421, align 8, !tbaa !27
  %1423 = load i64, ptr %16, align 8, !tbaa !25
  %1424 = getelementptr inbounds double, ptr %1422, i64 %1423
  %1425 = load double, ptr %1424, align 8, !tbaa !28
  %1426 = load ptr, ptr %14, align 8, !tbaa !5
  %1427 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1425, ptr noundef %1426)
  %1428 = fadd double %1427, 1.000000e+00
  %1429 = load ptr, ptr %14, align 8, !tbaa !5
  %1430 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1420, double noundef %1428, ptr noundef %1429)
  %1431 = fadd double %1412, %1430
  %1432 = load ptr, ptr %10, align 8, !tbaa !5
  %1433 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1432, i32 0, i32 4
  %1434 = load ptr, ptr %1433, align 8, !tbaa !27
  %1435 = getelementptr inbounds double, ptr %1434, i64 0
  store double %1431, ptr %1435, align 8, !tbaa !28
  br label %1436

1436:                                             ; preds = %1388
  %1437 = load i64, ptr %16, align 8, !tbaa !25
  %1438 = add nsw i64 %1437, 1
  store i64 %1438, ptr %16, align 8, !tbaa !25
  br label %1381, !llvm.loop !52

1439:                                             ; preds = %1381
  %1440 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1440)
  store i32 1, ptr %36, align 4
  br label %5101

1441:                                             ; preds = %1371
  %1442 = load ptr, ptr %8, align 8, !tbaa !5
  %1443 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1442, i32 0, i32 1
  %1444 = load i64, ptr %1443, align 8, !tbaa !35
  %1445 = icmp eq i64 %1444, 6
  br i1 %1445, label %1446, label %1525

1446:                                             ; preds = %1441
  %1447 = load ptr, ptr %10, align 8, !tbaa !5
  %1448 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1447, i32 0, i32 4
  %1449 = load ptr, ptr %1448, align 8, !tbaa !27
  %1450 = getelementptr inbounds double, ptr %1449, i64 0
  store double 0.000000e+00, ptr %1450, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %1451

1451:                                             ; preds = %1520, %1446
  %1452 = load i64, ptr %16, align 8, !tbaa !25
  %1453 = load ptr, ptr %8, align 8, !tbaa !5
  %1454 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1453, i32 0, i32 2
  %1455 = load i64, ptr %1454, align 8, !tbaa !24
  %1456 = sub nsw i64 %1455, 2
  %1457 = icmp sle i64 %1452, %1456
  br i1 %1457, label %1458, label %1523

1458:                                             ; preds = %1451
  %1459 = load ptr, ptr %10, align 8, !tbaa !5
  %1460 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1459, i32 0, i32 4
  %1461 = load ptr, ptr %1460, align 8, !tbaa !27
  %1462 = getelementptr inbounds double, ptr %1461, i64 0
  %1463 = load double, ptr %1462, align 8, !tbaa !28
  %1464 = fadd double %1463, 5.000000e-01
  %1465 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1466 = load ptr, ptr %1465, align 8, !tbaa !27
  %1467 = load i64, ptr %16, align 8, !tbaa !25
  %1468 = getelementptr inbounds double, ptr %1466, i64 %1467
  %1469 = load double, ptr %1468, align 8, !tbaa !28
  %1470 = fmul double 1.000000e+02, %1469
  %1471 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1472 = load ptr, ptr %1471, align 8, !tbaa !27
  %1473 = load i64, ptr %16, align 8, !tbaa !25
  %1474 = getelementptr inbounds double, ptr %1472, i64 %1473
  %1475 = load double, ptr %1474, align 8, !tbaa !28
  %1476 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1477 = load ptr, ptr %1476, align 8, !tbaa !27
  %1478 = load i64, ptr %16, align 8, !tbaa !25
  %1479 = add nsw i64 %1478, 1
  %1480 = getelementptr inbounds double, ptr %1477, i64 %1479
  %1481 = load double, ptr %1480, align 8, !tbaa !28
  %1482 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1483 = load ptr, ptr %1482, align 8, !tbaa !27
  %1484 = load i64, ptr %16, align 8, !tbaa !25
  %1485 = add nsw i64 %1484, 1
  %1486 = getelementptr inbounds double, ptr %1483, i64 %1485
  %1487 = load double, ptr %1486, align 8, !tbaa !28
  %1488 = fmul double %1481, %1487
  %1489 = call double @llvm.fmuladd.f64(double %1470, double %1475, double %1488)
  %1490 = load ptr, ptr %14, align 8, !tbaa !5
  %1491 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1489, ptr noundef %1490)
  %1492 = load ptr, ptr %14, align 8, !tbaa !5
  %1493 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %1491, ptr noundef %1492)
  %1494 = load ptr, ptr %14, align 8, !tbaa !5
  %1495 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1493, ptr noundef %1494)
  %1496 = fsub double %1495, 5.000000e-01
  %1497 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1498 = load ptr, ptr %1497, align 8, !tbaa !27
  %1499 = load i64, ptr %16, align 8, !tbaa !25
  %1500 = getelementptr inbounds double, ptr %1498, i64 %1499
  %1501 = load double, ptr %1500, align 8, !tbaa !28
  %1502 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1503 = load ptr, ptr %1502, align 8, !tbaa !27
  %1504 = load i64, ptr %16, align 8, !tbaa !25
  %1505 = add nsw i64 %1504, 1
  %1506 = getelementptr inbounds double, ptr %1503, i64 %1505
  %1507 = load double, ptr %1506, align 8, !tbaa !28
  %1508 = fsub double %1501, %1507
  %1509 = load ptr, ptr %14, align 8, !tbaa !5
  %1510 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1508, ptr noundef %1509)
  %1511 = load ptr, ptr %14, align 8, !tbaa !5
  %1512 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1510, ptr noundef %1511)
  %1513 = call double @llvm.fmuladd.f64(double 1.000000e-03, double %1512, double 1.000000e+00)
  %1514 = fdiv double %1496, %1513
  %1515 = fadd double %1464, %1514
  %1516 = load ptr, ptr %10, align 8, !tbaa !5
  %1517 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1516, i32 0, i32 4
  %1518 = load ptr, ptr %1517, align 8, !tbaa !27
  %1519 = getelementptr inbounds double, ptr %1518, i64 0
  store double %1515, ptr %1519, align 8, !tbaa !28
  br label %1520

1520:                                             ; preds = %1458
  %1521 = load i64, ptr %16, align 8, !tbaa !25
  %1522 = add nsw i64 %1521, 1
  store i64 %1522, ptr %16, align 8, !tbaa !25
  br label %1451, !llvm.loop !53

1523:                                             ; preds = %1451
  %1524 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1524)
  store i32 1, ptr %36, align 4
  br label %5101

1525:                                             ; preds = %1441
  %1526 = load ptr, ptr %8, align 8, !tbaa !5
  %1527 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1526, i32 0, i32 1
  %1528 = load i64, ptr %1527, align 8, !tbaa !35
  %1529 = icmp eq i64 %1528, 7
  br i1 %1529, label %1530, label %1660

1530:                                             ; preds = %1525
  %1531 = load ptr, ptr %10, align 8, !tbaa !5
  %1532 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1531, i32 0, i32 4
  %1533 = load ptr, ptr %1532, align 8, !tbaa !27
  %1534 = getelementptr inbounds double, ptr %1533, i64 0
  store double 0.000000e+00, ptr %1534, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %1535

1535:                                             ; preds = %1655, %1530
  %1536 = load i64, ptr %16, align 8, !tbaa !25
  %1537 = load ptr, ptr %8, align 8, !tbaa !5
  %1538 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1537, i32 0, i32 2
  %1539 = load i64, ptr %1538, align 8, !tbaa !24
  %1540 = sub nsw i64 %1539, 1
  %1541 = icmp sle i64 %1536, %1540
  br i1 %1541, label %1542, label %1658

1542:                                             ; preds = %1535
  %1543 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1544 = load ptr, ptr %1543, align 8, !tbaa !27
  %1545 = load i64, ptr %16, align 8, !tbaa !25
  %1546 = sub nsw i64 %1545, 1
  %1547 = load ptr, ptr %8, align 8, !tbaa !5
  %1548 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1547, i32 0, i32 2
  %1549 = load i64, ptr %1548, align 8, !tbaa !24
  %1550 = add nsw i64 %1546, %1549
  %1551 = load ptr, ptr %8, align 8, !tbaa !5
  %1552 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1551, i32 0, i32 2
  %1553 = load i64, ptr %1552, align 8, !tbaa !24
  %1554 = srem i64 %1550, %1553
  %1555 = getelementptr inbounds double, ptr %1544, i64 %1554
  %1556 = load double, ptr %1555, align 8, !tbaa !28
  %1557 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1558 = load ptr, ptr %1557, align 8, !tbaa !27
  %1559 = load i64, ptr %16, align 8, !tbaa !25
  %1560 = getelementptr inbounds double, ptr %1558, i64 %1559
  %1561 = load double, ptr %1560, align 8, !tbaa !28
  %1562 = load ptr, ptr %14, align 8, !tbaa !5
  %1563 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %1561, ptr noundef %1562)
  %1564 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1565 = load ptr, ptr %1564, align 8, !tbaa !27
  %1566 = load i64, ptr %16, align 8, !tbaa !25
  %1567 = add nsw i64 %1566, 1
  %1568 = load ptr, ptr %8, align 8, !tbaa !5
  %1569 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1568, i32 0, i32 2
  %1570 = load i64, ptr %1569, align 8, !tbaa !24
  %1571 = srem i64 %1567, %1570
  %1572 = getelementptr inbounds double, ptr %1565, i64 %1571
  %1573 = load double, ptr %1572, align 8, !tbaa !28
  %1574 = load ptr, ptr %14, align 8, !tbaa !5
  %1575 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %1573, ptr noundef %1574)
  %1576 = call double @llvm.fmuladd.f64(double %1556, double %1563, double %1575)
  store double %1576, ptr %33, align 8, !tbaa !28
  %1577 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1578 = load ptr, ptr %1577, align 8, !tbaa !27
  %1579 = load i64, ptr %16, align 8, !tbaa !25
  %1580 = sub nsw i64 %1579, 1
  %1581 = load ptr, ptr %8, align 8, !tbaa !5
  %1582 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1581, i32 0, i32 2
  %1583 = load i64, ptr %1582, align 8, !tbaa !24
  %1584 = add nsw i64 %1580, %1583
  %1585 = load ptr, ptr %8, align 8, !tbaa !5
  %1586 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1585, i32 0, i32 2
  %1587 = load i64, ptr %1586, align 8, !tbaa !24
  %1588 = srem i64 %1584, %1587
  %1589 = getelementptr inbounds double, ptr %1578, i64 %1588
  %1590 = load double, ptr %1589, align 8, !tbaa !28
  %1591 = load ptr, ptr %14, align 8, !tbaa !5
  %1592 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1590, ptr noundef %1591)
  %1593 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1594 = load ptr, ptr %1593, align 8, !tbaa !27
  %1595 = load i64, ptr %16, align 8, !tbaa !25
  %1596 = getelementptr inbounds double, ptr %1594, i64 %1595
  %1597 = load double, ptr %1596, align 8, !tbaa !28
  %1598 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %1597, double %1592)
  %1599 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1600 = load ptr, ptr %1599, align 8, !tbaa !27
  %1601 = load i64, ptr %16, align 8, !tbaa !25
  %1602 = add nsw i64 %1601, 1
  %1603 = load ptr, ptr %8, align 8, !tbaa !5
  %1604 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1603, i32 0, i32 2
  %1605 = load i64, ptr %1604, align 8, !tbaa !24
  %1606 = srem i64 %1602, %1605
  %1607 = getelementptr inbounds double, ptr %1600, i64 %1606
  %1608 = load double, ptr %1607, align 8, !tbaa !28
  %1609 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %1608, double %1598)
  %1610 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1611 = load ptr, ptr %1610, align 8, !tbaa !27
  %1612 = load i64, ptr %16, align 8, !tbaa !25
  %1613 = getelementptr inbounds double, ptr %1611, i64 %1612
  %1614 = load double, ptr %1613, align 8, !tbaa !28
  %1615 = load ptr, ptr %14, align 8, !tbaa !5
  %1616 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %1614, ptr noundef %1615)
  %1617 = fsub double %1609, %1616
  %1618 = fadd double %1617, 1.000000e+00
  store double %1618, ptr %34, align 8, !tbaa !28
  %1619 = load ptr, ptr %10, align 8, !tbaa !5
  %1620 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1619, i32 0, i32 4
  %1621 = load ptr, ptr %1620, align 8, !tbaa !27
  %1622 = getelementptr inbounds double, ptr %1621, i64 0
  %1623 = load double, ptr %1622, align 8, !tbaa !28
  %1624 = load i64, ptr %16, align 8, !tbaa !25
  %1625 = add nsw i64 %1624, 1
  %1626 = sitofp i64 %1625 to double
  %1627 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1628 = load ptr, ptr %1627, align 8, !tbaa !27
  %1629 = load i64, ptr %16, align 8, !tbaa !25
  %1630 = getelementptr inbounds double, ptr %1628, i64 %1629
  %1631 = load double, ptr %1630, align 8, !tbaa !28
  %1632 = load ptr, ptr %14, align 8, !tbaa !5
  %1633 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1631, ptr noundef %1632)
  %1634 = load double, ptr %33, align 8, !tbaa !28
  %1635 = load ptr, ptr %14, align 8, !tbaa !5
  %1636 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %1634, ptr noundef %1635)
  %1637 = load ptr, ptr %14, align 8, !tbaa !5
  %1638 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1636, ptr noundef %1637)
  %1639 = call double @llvm.fmuladd.f64(double 2.000000e+01, double %1638, double %1633)
  %1640 = load i64, ptr %16, align 8, !tbaa !25
  %1641 = add nsw i64 %1640, 1
  %1642 = sitofp i64 %1641 to double
  %1643 = load double, ptr %34, align 8, !tbaa !28
  %1644 = fmul double %1642, %1643
  %1645 = load double, ptr %34, align 8, !tbaa !28
  %1646 = call double @llvm.fmuladd.f64(double %1644, double %1645, double 1.000000e+00)
  %1647 = load ptr, ptr %14, align 8, !tbaa !5
  %1648 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef %1646, ptr noundef %1647)
  %1649 = fadd double %1639, %1648
  %1650 = call double @llvm.fmuladd.f64(double %1626, double %1649, double %1623)
  %1651 = load ptr, ptr %10, align 8, !tbaa !5
  %1652 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1651, i32 0, i32 4
  %1653 = load ptr, ptr %1652, align 8, !tbaa !27
  %1654 = getelementptr inbounds double, ptr %1653, i64 0
  store double %1650, ptr %1654, align 8, !tbaa !28
  br label %1655

1655:                                             ; preds = %1542
  %1656 = load i64, ptr %16, align 8, !tbaa !25
  %1657 = add nsw i64 %1656, 1
  store i64 %1657, ptr %16, align 8, !tbaa !25
  br label %1535, !llvm.loop !54

1658:                                             ; preds = %1535
  %1659 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1659)
  store i32 1, ptr %36, align 4
  br label %5101

1660:                                             ; preds = %1525
  %1661 = load ptr, ptr %8, align 8, !tbaa !5
  %1662 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1661, i32 0, i32 1
  %1663 = load i64, ptr %1662, align 8, !tbaa !35
  %1664 = icmp eq i64 %1663, 8
  br i1 %1664, label %1665, label %1751

1665:                                             ; preds = %1660
  %1666 = load ptr, ptr %10, align 8, !tbaa !5
  %1667 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1666, i32 0, i32 4
  %1668 = load ptr, ptr %1667, align 8, !tbaa !27
  %1669 = getelementptr inbounds double, ptr %1668, i64 0
  store double 0.000000e+00, ptr %1669, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %1670

1670:                                             ; preds = %1746, %1665
  %1671 = load i64, ptr %16, align 8, !tbaa !25
  %1672 = load ptr, ptr %8, align 8, !tbaa !5
  %1673 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1672, i32 0, i32 2
  %1674 = load i64, ptr %1673, align 8, !tbaa !24
  %1675 = sub nsw i64 %1674, 2
  %1676 = icmp sle i64 %1671, %1675
  br i1 %1676, label %1677, label %1749

1677:                                             ; preds = %1670
  %1678 = load ptr, ptr %10, align 8, !tbaa !5
  %1679 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1678, i32 0, i32 4
  %1680 = load ptr, ptr %1679, align 8, !tbaa !27
  %1681 = getelementptr inbounds double, ptr %1680, i64 0
  %1682 = load double, ptr %1681, align 8, !tbaa !28
  %1683 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1684 = load ptr, ptr %1683, align 8, !tbaa !27
  %1685 = load i64, ptr %16, align 8, !tbaa !25
  %1686 = add nsw i64 %1685, 1
  %1687 = getelementptr inbounds double, ptr %1684, i64 %1686
  %1688 = load double, ptr %1687, align 8, !tbaa !28
  %1689 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1690 = load ptr, ptr %1689, align 8, !tbaa !27
  %1691 = load i64, ptr %16, align 8, !tbaa !25
  %1692 = add nsw i64 %1691, 1
  %1693 = getelementptr inbounds double, ptr %1690, i64 %1692
  %1694 = load double, ptr %1693, align 8, !tbaa !28
  %1695 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1696 = load ptr, ptr %1695, align 8, !tbaa !27
  %1697 = load i64, ptr %16, align 8, !tbaa !25
  %1698 = getelementptr inbounds double, ptr %1696, i64 %1697
  %1699 = load double, ptr %1698, align 8, !tbaa !28
  %1700 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1701 = load ptr, ptr %1700, align 8, !tbaa !27
  %1702 = load i64, ptr %16, align 8, !tbaa !25
  %1703 = getelementptr inbounds double, ptr %1701, i64 %1702
  %1704 = load double, ptr %1703, align 8, !tbaa !28
  %1705 = fmul double %1699, %1704
  %1706 = call double @llvm.fmuladd.f64(double %1688, double %1694, double %1705)
  %1707 = load ptr, ptr %14, align 8, !tbaa !5
  %1708 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1706, double noundef 2.500000e-01, ptr noundef %1707)
  %1709 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1710 = load ptr, ptr %1709, align 8, !tbaa !27
  %1711 = load i64, ptr %16, align 8, !tbaa !25
  %1712 = add nsw i64 %1711, 1
  %1713 = getelementptr inbounds double, ptr %1710, i64 %1712
  %1714 = load double, ptr %1713, align 8, !tbaa !28
  %1715 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1716 = load ptr, ptr %1715, align 8, !tbaa !27
  %1717 = load i64, ptr %16, align 8, !tbaa !25
  %1718 = add nsw i64 %1717, 1
  %1719 = getelementptr inbounds double, ptr %1716, i64 %1718
  %1720 = load double, ptr %1719, align 8, !tbaa !28
  %1721 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1722 = load ptr, ptr %1721, align 8, !tbaa !27
  %1723 = load i64, ptr %16, align 8, !tbaa !25
  %1724 = getelementptr inbounds double, ptr %1722, i64 %1723
  %1725 = load double, ptr %1724, align 8, !tbaa !28
  %1726 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1727 = load ptr, ptr %1726, align 8, !tbaa !27
  %1728 = load i64, ptr %16, align 8, !tbaa !25
  %1729 = getelementptr inbounds double, ptr %1727, i64 %1728
  %1730 = load double, ptr %1729, align 8, !tbaa !28
  %1731 = fmul double %1725, %1730
  %1732 = call double @llvm.fmuladd.f64(double %1714, double %1720, double %1731)
  %1733 = load ptr, ptr %14, align 8, !tbaa !5
  %1734 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1732, double noundef 1.000000e-01, ptr noundef %1733)
  %1735 = fmul double 5.000000e+01, %1734
  %1736 = load ptr, ptr %14, align 8, !tbaa !5
  %1737 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %1735, ptr noundef %1736)
  %1738 = load ptr, ptr %14, align 8, !tbaa !5
  %1739 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1737, ptr noundef %1738)
  %1740 = fadd double %1739, 1.000000e-01
  %1741 = call double @llvm.fmuladd.f64(double %1708, double %1740, double %1682)
  %1742 = load ptr, ptr %10, align 8, !tbaa !5
  %1743 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1742, i32 0, i32 4
  %1744 = load ptr, ptr %1743, align 8, !tbaa !27
  %1745 = getelementptr inbounds double, ptr %1744, i64 0
  store double %1741, ptr %1745, align 8, !tbaa !28
  br label %1746

1746:                                             ; preds = %1677
  %1747 = load i64, ptr %16, align 8, !tbaa !25
  %1748 = add nsw i64 %1747, 1
  store i64 %1748, ptr %16, align 8, !tbaa !25
  br label %1670, !llvm.loop !55

1749:                                             ; preds = %1670
  %1750 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1750)
  store i32 1, ptr %36, align 4
  br label %5101

1751:                                             ; preds = %1660
  %1752 = load ptr, ptr %8, align 8, !tbaa !5
  %1753 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1752, i32 0, i32 1
  %1754 = load i64, ptr %1753, align 8, !tbaa !35
  %1755 = icmp eq i64 %1754, 9
  br i1 %1755, label %1756, label %1809

1756:                                             ; preds = %1751
  %1757 = load ptr, ptr %10, align 8, !tbaa !5
  %1758 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1757, i32 0, i32 4
  %1759 = load ptr, ptr %1758, align 8, !tbaa !27
  %1760 = getelementptr inbounds double, ptr %1759, i64 0
  store double 1.000000e+00, ptr %1760, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %1761

1761:                                             ; preds = %1804, %1756
  %1762 = load i64, ptr %16, align 8, !tbaa !25
  %1763 = load ptr, ptr %8, align 8, !tbaa !5
  %1764 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1763, i32 0, i32 2
  %1765 = load i64, ptr %1764, align 8, !tbaa !24
  %1766 = sub nsw i64 %1765, 1
  %1767 = icmp sle i64 %1762, %1766
  br i1 %1767, label %1768, label %1807

1768:                                             ; preds = %1761
  %1769 = load ptr, ptr %10, align 8, !tbaa !5
  %1770 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1769, i32 0, i32 4
  %1771 = load ptr, ptr %1770, align 8, !tbaa !27
  %1772 = getelementptr inbounds double, ptr %1771, i64 0
  %1773 = load double, ptr %1772, align 8, !tbaa !28
  %1774 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1775 = load ptr, ptr %1774, align 8, !tbaa !27
  %1776 = load i64, ptr %16, align 8, !tbaa !25
  %1777 = getelementptr inbounds double, ptr %1775, i64 %1776
  %1778 = load double, ptr %1777, align 8, !tbaa !28
  %1779 = fmul double 1.000000e+01, %1778
  %1780 = load ptr, ptr %14, align 8, !tbaa !5
  %1781 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %1779, ptr noundef %1780)
  %1782 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %23, i32 0, i32 4
  %1783 = load ptr, ptr %1782, align 8, !tbaa !27
  %1784 = load i64, ptr %16, align 8, !tbaa !25
  %1785 = getelementptr inbounds double, ptr %1783, i64 %1784
  %1786 = load double, ptr %1785, align 8, !tbaa !28
  %1787 = load ptr, ptr %14, align 8, !tbaa !5
  %1788 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1786, ptr noundef %1787)
  %1789 = fneg double %1788
  %1790 = fdiv double %1789, 2.000000e+00
  %1791 = load ptr, ptr %14, align 8, !tbaa !5
  %1792 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1790, ptr noundef %1791)
  %1793 = fmul double %1781, %1792
  %1794 = load ptr, ptr %8, align 8, !tbaa !5
  %1795 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1794, i32 0, i32 2
  %1796 = load i64, ptr %1795, align 8, !tbaa !24
  %1797 = sitofp i64 %1796 to double
  %1798 = fdiv double %1793, %1797
  %1799 = fsub double %1773, %1798
  %1800 = load ptr, ptr %10, align 8, !tbaa !5
  %1801 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1800, i32 0, i32 4
  %1802 = load ptr, ptr %1801, align 8, !tbaa !27
  %1803 = getelementptr inbounds double, ptr %1802, i64 0
  store double %1799, ptr %1803, align 8, !tbaa !28
  br label %1804

1804:                                             ; preds = %1768
  %1805 = load i64, ptr %16, align 8, !tbaa !25
  %1806 = add nsw i64 %1805, 1
  store i64 %1806, ptr %16, align 8, !tbaa !25
  br label %1761, !llvm.loop !56

1807:                                             ; preds = %1761
  %1808 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1808)
  store i32 1, ptr %36, align 4
  br label %5101

1809:                                             ; preds = %1751
  %1810 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.320, ptr noundef %1810)
  %1811 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.320, ptr noundef %1811)
  br label %1812

1812:                                             ; preds = %1809, %1005
  %1813 = load ptr, ptr %8, align 8, !tbaa !5
  %1814 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1813, i32 0, i32 0
  %1815 = load i64, ptr %1814, align 8, !tbaa !11
  %1816 = icmp eq i64 %1815, 50
  br i1 %1816, label %1817, label %4489

1817:                                             ; preds = %1812
  %1818 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %1819 = trunc i8 %1818 to i1
  br i1 %1819, label %1825, label %1820

1820:                                             ; preds = %1817
  %1821 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %1822 = trunc i8 %1821 to i1
  br i1 %1822, label %1825, label %1823

1823:                                             ; preds = %1820
  %1824 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1824)
  store i32 1, ptr %36, align 4
  br label %5101

1825:                                             ; preds = %1820, %1817
  %1826 = load ptr, ptr %8, align 8, !tbaa !5
  %1827 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1826, i32 0, i32 1
  %1828 = load i64, ptr %1827, align 8, !tbaa !35
  %1829 = icmp eq i64 %1828, 0
  br i1 %1829, label %1830, label %1949

1830:                                             ; preds = %1825
  %1831 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %1832 = trunc i8 %1831 to i1
  br i1 %1832, label %1833, label %1886

1833:                                             ; preds = %1830
  %1834 = load ptr, ptr %9, align 8, !tbaa !5
  %1835 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1834, i32 0, i32 4
  %1836 = load ptr, ptr %1835, align 8, !tbaa !27
  %1837 = getelementptr inbounds double, ptr %1836, i64 1
  %1838 = load double, ptr %1837, align 8, !tbaa !28
  %1839 = load ptr, ptr %9, align 8, !tbaa !5
  %1840 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1839, i32 0, i32 4
  %1841 = load ptr, ptr %1840, align 8, !tbaa !27
  %1842 = getelementptr inbounds double, ptr %1841, i64 0
  %1843 = load double, ptr %1842, align 8, !tbaa !28
  %1844 = load ptr, ptr %14, align 8, !tbaa !5
  %1845 = call noundef double @_ZN11alglib_impl7ae_coshEdPNS_8ae_stateE(double noundef %1843, ptr noundef %1844)
  %1846 = fsub double %1838, %1845
  %1847 = load ptr, ptr %10, align 8, !tbaa !5
  %1848 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1847, i32 0, i32 4
  %1849 = load ptr, ptr %1848, align 8, !tbaa !27
  %1850 = getelementptr inbounds double, ptr %1849, i64 0
  store double %1846, ptr %1850, align 8, !tbaa !28
  %1851 = load ptr, ptr %9, align 8, !tbaa !5
  %1852 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1851, i32 0, i32 4
  %1853 = load ptr, ptr %1852, align 8, !tbaa !27
  %1854 = getelementptr inbounds double, ptr %1853, i64 1
  %1855 = load double, ptr %1854, align 8, !tbaa !28
  %1856 = load ptr, ptr %9, align 8, !tbaa !5
  %1857 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1856, i32 0, i32 4
  %1858 = load ptr, ptr %1857, align 8, !tbaa !27
  %1859 = getelementptr inbounds double, ptr %1858, i64 0
  %1860 = load double, ptr %1859, align 8, !tbaa !28
  %1861 = load ptr, ptr %14, align 8, !tbaa !5
  %1862 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %1860, ptr noundef %1861)
  %1863 = fsub double %1855, %1862
  %1864 = load ptr, ptr %10, align 8, !tbaa !5
  %1865 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1864, i32 0, i32 4
  %1866 = load ptr, ptr %1865, align 8, !tbaa !27
  %1867 = getelementptr inbounds double, ptr %1866, i64 1
  store double %1863, ptr %1867, align 8, !tbaa !28
  %1868 = load ptr, ptr %9, align 8, !tbaa !5
  %1869 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1868, i32 0, i32 4
  %1870 = load ptr, ptr %1869, align 8, !tbaa !27
  %1871 = getelementptr inbounds double, ptr %1870, i64 1
  %1872 = load double, ptr %1871, align 8, !tbaa !28
  %1873 = load ptr, ptr %9, align 8, !tbaa !5
  %1874 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1873, i32 0, i32 4
  %1875 = load ptr, ptr %1874, align 8, !tbaa !27
  %1876 = getelementptr inbounds double, ptr %1875, i64 0
  %1877 = load double, ptr %1876, align 8, !tbaa !28
  %1878 = load ptr, ptr %14, align 8, !tbaa !5
  %1879 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1877, ptr noundef %1878)
  %1880 = fsub double %1872, %1879
  %1881 = fsub double %1880, 1.000000e+00
  %1882 = load ptr, ptr %10, align 8, !tbaa !5
  %1883 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1882, i32 0, i32 4
  %1884 = load ptr, ptr %1883, align 8, !tbaa !27
  %1885 = getelementptr inbounds double, ptr %1884, i64 2
  store double %1881, ptr %1885, align 8, !tbaa !28
  br label %1886

1886:                                             ; preds = %1833, %1830
  %1887 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %1888 = trunc i8 %1887 to i1
  br i1 %1888, label %1889, label %1947

1889:                                             ; preds = %1886
  %1890 = load ptr, ptr %9, align 8, !tbaa !5
  %1891 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1890, i32 0, i32 4
  %1892 = load ptr, ptr %1891, align 8, !tbaa !27
  %1893 = getelementptr inbounds double, ptr %1892, i64 0
  %1894 = load double, ptr %1893, align 8, !tbaa !28
  %1895 = load ptr, ptr %14, align 8, !tbaa !5
  %1896 = call noundef double @_ZN11alglib_impl7ae_sinhEdPNS_8ae_stateE(double noundef %1894, ptr noundef %1895)
  %1897 = fneg double %1896
  %1898 = load ptr, ptr %12, align 8, !tbaa !5
  %1899 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1898, i32 0, i32 6
  %1900 = load ptr, ptr %1899, align 8, !tbaa !27
  %1901 = getelementptr inbounds ptr, ptr %1900, i64 0
  %1902 = load ptr, ptr %1901, align 8, !tbaa !5
  %1903 = getelementptr inbounds double, ptr %1902, i64 0
  store double %1897, ptr %1903, align 8, !tbaa !28
  %1904 = load ptr, ptr %12, align 8, !tbaa !5
  %1905 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1904, i32 0, i32 6
  %1906 = load ptr, ptr %1905, align 8, !tbaa !27
  %1907 = getelementptr inbounds ptr, ptr %1906, i64 0
  %1908 = load ptr, ptr %1907, align 8, !tbaa !5
  %1909 = getelementptr inbounds double, ptr %1908, i64 1
  store double 1.000000e+00, ptr %1909, align 8, !tbaa !28
  %1910 = load ptr, ptr %9, align 8, !tbaa !5
  %1911 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1910, i32 0, i32 4
  %1912 = load ptr, ptr %1911, align 8, !tbaa !27
  %1913 = getelementptr inbounds double, ptr %1912, i64 0
  %1914 = load double, ptr %1913, align 8, !tbaa !28
  %1915 = load ptr, ptr %14, align 8, !tbaa !5
  %1916 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %1914, ptr noundef %1915)
  %1917 = load ptr, ptr %12, align 8, !tbaa !5
  %1918 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1917, i32 0, i32 6
  %1919 = load ptr, ptr %1918, align 8, !tbaa !27
  %1920 = getelementptr inbounds ptr, ptr %1919, i64 1
  %1921 = load ptr, ptr %1920, align 8, !tbaa !5
  %1922 = getelementptr inbounds double, ptr %1921, i64 0
  store double %1916, ptr %1922, align 8, !tbaa !28
  %1923 = load ptr, ptr %12, align 8, !tbaa !5
  %1924 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1923, i32 0, i32 6
  %1925 = load ptr, ptr %1924, align 8, !tbaa !27
  %1926 = getelementptr inbounds ptr, ptr %1925, i64 1
  %1927 = load ptr, ptr %1926, align 8, !tbaa !5
  %1928 = getelementptr inbounds double, ptr %1927, i64 1
  store double 1.000000e+00, ptr %1928, align 8, !tbaa !28
  %1929 = load ptr, ptr %9, align 8, !tbaa !5
  %1930 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1929, i32 0, i32 4
  %1931 = load ptr, ptr %1930, align 8, !tbaa !27
  %1932 = getelementptr inbounds double, ptr %1931, i64 0
  %1933 = load double, ptr %1932, align 8, !tbaa !28
  %1934 = fmul double -2.000000e+00, %1933
  %1935 = load ptr, ptr %12, align 8, !tbaa !5
  %1936 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1935, i32 0, i32 6
  %1937 = load ptr, ptr %1936, align 8, !tbaa !27
  %1938 = getelementptr inbounds ptr, ptr %1937, i64 2
  %1939 = load ptr, ptr %1938, align 8, !tbaa !5
  %1940 = getelementptr inbounds double, ptr %1939, i64 0
  store double %1934, ptr %1940, align 8, !tbaa !28
  %1941 = load ptr, ptr %12, align 8, !tbaa !5
  %1942 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %1941, i32 0, i32 6
  %1943 = load ptr, ptr %1942, align 8, !tbaa !27
  %1944 = getelementptr inbounds ptr, ptr %1943, i64 2
  %1945 = load ptr, ptr %1944, align 8, !tbaa !5
  %1946 = getelementptr inbounds double, ptr %1945, i64 1
  store double 1.000000e+00, ptr %1946, align 8, !tbaa !28
  br label %1947

1947:                                             ; preds = %1889, %1886
  %1948 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %1948)
  store i32 1, ptr %36, align 4
  br label %5101

1949:                                             ; preds = %1825
  %1950 = load ptr, ptr %8, align 8, !tbaa !5
  %1951 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %1950, i32 0, i32 1
  %1952 = load i64, ptr %1951, align 8, !tbaa !35
  %1953 = icmp eq i64 %1952, 1
  br i1 %1953, label %1954, label %2114

1954:                                             ; preds = %1949
  %1955 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %1956 = trunc i8 %1955 to i1
  br i1 %1956, label %1957, label %2030

1957:                                             ; preds = %1954
  %1958 = load ptr, ptr %9, align 8, !tbaa !5
  %1959 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1958, i32 0, i32 4
  %1960 = load ptr, ptr %1959, align 8, !tbaa !27
  %1961 = getelementptr inbounds double, ptr %1960, i64 1
  %1962 = load double, ptr %1961, align 8, !tbaa !28
  %1963 = load ptr, ptr %9, align 8, !tbaa !5
  %1964 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1963, i32 0, i32 4
  %1965 = load ptr, ptr %1964, align 8, !tbaa !27
  %1966 = getelementptr inbounds double, ptr %1965, i64 0
  %1967 = load double, ptr %1966, align 8, !tbaa !28
  %1968 = fadd double %1967, 1.000000e+00
  %1969 = load ptr, ptr %14, align 8, !tbaa !5
  %1970 = call noundef double @_ZN11alglib_impl7ae_coshEdPNS_8ae_stateE(double noundef %1968, ptr noundef %1969)
  %1971 = fsub double %1962, %1970
  %1972 = fadd double %1971, 1.000000e+00
  %1973 = load ptr, ptr %10, align 8, !tbaa !5
  %1974 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1973, i32 0, i32 4
  %1975 = load ptr, ptr %1974, align 8, !tbaa !27
  %1976 = getelementptr inbounds double, ptr %1975, i64 0
  store double %1972, ptr %1976, align 8, !tbaa !28
  %1977 = load ptr, ptr %9, align 8, !tbaa !5
  %1978 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1977, i32 0, i32 4
  %1979 = load ptr, ptr %1978, align 8, !tbaa !27
  %1980 = getelementptr inbounds double, ptr %1979, i64 1
  %1981 = load double, ptr %1980, align 8, !tbaa !28
  %1982 = load ptr, ptr %9, align 8, !tbaa !5
  %1983 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1982, i32 0, i32 4
  %1984 = load ptr, ptr %1983, align 8, !tbaa !27
  %1985 = getelementptr inbounds double, ptr %1984, i64 0
  %1986 = load double, ptr %1985, align 8, !tbaa !28
  %1987 = load ptr, ptr %14, align 8, !tbaa !5
  %1988 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %1986, ptr noundef %1987)
  %1989 = fsub double %1981, %1988
  %1990 = load ptr, ptr %9, align 8, !tbaa !5
  %1991 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1990, i32 0, i32 4
  %1992 = load ptr, ptr %1991, align 8, !tbaa !27
  %1993 = getelementptr inbounds double, ptr %1992, i64 0
  %1994 = load double, ptr %1993, align 8, !tbaa !28
  %1995 = load ptr, ptr %14, align 8, !tbaa !5
  %1996 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %1994, ptr noundef %1995)
  %1997 = fsub double %1989, %1996
  %1998 = load ptr, ptr %10, align 8, !tbaa !5
  %1999 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %1998, i32 0, i32 4
  %2000 = load ptr, ptr %1999, align 8, !tbaa !27
  %2001 = getelementptr inbounds double, ptr %2000, i64 1
  store double %1997, ptr %2001, align 8, !tbaa !28
  %2002 = load ptr, ptr %9, align 8, !tbaa !5
  %2003 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2002, i32 0, i32 4
  %2004 = load ptr, ptr %2003, align 8, !tbaa !27
  %2005 = getelementptr inbounds double, ptr %2004, i64 1
  %2006 = load double, ptr %2005, align 8, !tbaa !28
  %2007 = load ptr, ptr %14, align 8, !tbaa !5
  %2008 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2006, ptr noundef %2007)
  %2009 = load ptr, ptr %9, align 8, !tbaa !5
  %2010 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2009, i32 0, i32 4
  %2011 = load ptr, ptr %2010, align 8, !tbaa !27
  %2012 = getelementptr inbounds double, ptr %2011, i64 0
  %2013 = load double, ptr %2012, align 8, !tbaa !28
  %2014 = fsub double %2008, %2013
  %2015 = fadd double %2014, 1.000000e+00
  %2016 = load ptr, ptr %10, align 8, !tbaa !5
  %2017 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2016, i32 0, i32 4
  %2018 = load ptr, ptr %2017, align 8, !tbaa !27
  %2019 = getelementptr inbounds double, ptr %2018, i64 2
  store double %2015, ptr %2019, align 8, !tbaa !28
  %2020 = load ptr, ptr %9, align 8, !tbaa !5
  %2021 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2020, i32 0, i32 4
  %2022 = load ptr, ptr %2021, align 8, !tbaa !27
  %2023 = getelementptr inbounds double, ptr %2022, i64 0
  %2024 = load double, ptr %2023, align 8, !tbaa !28
  %2025 = fadd double %2024, 1.000000e+00
  %2026 = load ptr, ptr %10, align 8, !tbaa !5
  %2027 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2026, i32 0, i32 4
  %2028 = load ptr, ptr %2027, align 8, !tbaa !27
  %2029 = getelementptr inbounds double, ptr %2028, i64 3
  store double %2025, ptr %2029, align 8, !tbaa !28
  br label %2030

2030:                                             ; preds = %1957, %1954
  %2031 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %2032 = trunc i8 %2031 to i1
  br i1 %2032, label %2033, label %2112

2033:                                             ; preds = %2030
  %2034 = load ptr, ptr %9, align 8, !tbaa !5
  %2035 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2034, i32 0, i32 4
  %2036 = load ptr, ptr %2035, align 8, !tbaa !27
  %2037 = getelementptr inbounds double, ptr %2036, i64 0
  %2038 = load double, ptr %2037, align 8, !tbaa !28
  %2039 = fadd double %2038, 1.000000e+00
  %2040 = load ptr, ptr %14, align 8, !tbaa !5
  %2041 = call noundef double @_ZN11alglib_impl7ae_sinhEdPNS_8ae_stateE(double noundef %2039, ptr noundef %2040)
  %2042 = fneg double %2041
  %2043 = load ptr, ptr %12, align 8, !tbaa !5
  %2044 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2043, i32 0, i32 6
  %2045 = load ptr, ptr %2044, align 8, !tbaa !27
  %2046 = getelementptr inbounds ptr, ptr %2045, i64 0
  %2047 = load ptr, ptr %2046, align 8, !tbaa !5
  %2048 = getelementptr inbounds double, ptr %2047, i64 0
  store double %2042, ptr %2048, align 8, !tbaa !28
  %2049 = load ptr, ptr %12, align 8, !tbaa !5
  %2050 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2049, i32 0, i32 6
  %2051 = load ptr, ptr %2050, align 8, !tbaa !27
  %2052 = getelementptr inbounds ptr, ptr %2051, i64 0
  %2053 = load ptr, ptr %2052, align 8, !tbaa !5
  %2054 = getelementptr inbounds double, ptr %2053, i64 1
  store double 1.000000e+00, ptr %2054, align 8, !tbaa !28
  %2055 = load ptr, ptr %9, align 8, !tbaa !5
  %2056 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2055, i32 0, i32 4
  %2057 = load ptr, ptr %2056, align 8, !tbaa !27
  %2058 = getelementptr inbounds double, ptr %2057, i64 0
  %2059 = load double, ptr %2058, align 8, !tbaa !28
  %2060 = load ptr, ptr %14, align 8, !tbaa !5
  %2061 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %2059, ptr noundef %2060)
  %2062 = load ptr, ptr %9, align 8, !tbaa !5
  %2063 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2062, i32 0, i32 4
  %2064 = load ptr, ptr %2063, align 8, !tbaa !27
  %2065 = getelementptr inbounds double, ptr %2064, i64 0
  %2066 = load double, ptr %2065, align 8, !tbaa !28
  %2067 = load ptr, ptr %14, align 8, !tbaa !5
  %2068 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %2066, ptr noundef %2067)
  %2069 = fsub double %2061, %2068
  %2070 = load ptr, ptr %12, align 8, !tbaa !5
  %2071 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2070, i32 0, i32 6
  %2072 = load ptr, ptr %2071, align 8, !tbaa !27
  %2073 = getelementptr inbounds ptr, ptr %2072, i64 1
  %2074 = load ptr, ptr %2073, align 8, !tbaa !5
  %2075 = getelementptr inbounds double, ptr %2074, i64 0
  store double %2069, ptr %2075, align 8, !tbaa !28
  %2076 = load ptr, ptr %12, align 8, !tbaa !5
  %2077 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2076, i32 0, i32 6
  %2078 = load ptr, ptr %2077, align 8, !tbaa !27
  %2079 = getelementptr inbounds ptr, ptr %2078, i64 1
  %2080 = load ptr, ptr %2079, align 8, !tbaa !5
  %2081 = getelementptr inbounds double, ptr %2080, i64 1
  store double 1.000000e+00, ptr %2081, align 8, !tbaa !28
  %2082 = load ptr, ptr %12, align 8, !tbaa !5
  %2083 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2082, i32 0, i32 6
  %2084 = load ptr, ptr %2083, align 8, !tbaa !27
  %2085 = getelementptr inbounds ptr, ptr %2084, i64 2
  %2086 = load ptr, ptr %2085, align 8, !tbaa !5
  %2087 = getelementptr inbounds double, ptr %2086, i64 0
  store double -1.000000e+00, ptr %2087, align 8, !tbaa !28
  %2088 = load ptr, ptr %9, align 8, !tbaa !5
  %2089 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2088, i32 0, i32 4
  %2090 = load ptr, ptr %2089, align 8, !tbaa !27
  %2091 = getelementptr inbounds double, ptr %2090, i64 1
  %2092 = load double, ptr %2091, align 8, !tbaa !28
  %2093 = fmul double 2.000000e+00, %2092
  %2094 = load ptr, ptr %12, align 8, !tbaa !5
  %2095 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2094, i32 0, i32 6
  %2096 = load ptr, ptr %2095, align 8, !tbaa !27
  %2097 = getelementptr inbounds ptr, ptr %2096, i64 2
  %2098 = load ptr, ptr %2097, align 8, !tbaa !5
  %2099 = getelementptr inbounds double, ptr %2098, i64 1
  store double %2093, ptr %2099, align 8, !tbaa !28
  %2100 = load ptr, ptr %12, align 8, !tbaa !5
  %2101 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2100, i32 0, i32 6
  %2102 = load ptr, ptr %2101, align 8, !tbaa !27
  %2103 = getelementptr inbounds ptr, ptr %2102, i64 3
  %2104 = load ptr, ptr %2103, align 8, !tbaa !5
  %2105 = getelementptr inbounds double, ptr %2104, i64 0
  store double 1.000000e+00, ptr %2105, align 8, !tbaa !28
  %2106 = load ptr, ptr %12, align 8, !tbaa !5
  %2107 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2106, i32 0, i32 6
  %2108 = load ptr, ptr %2107, align 8, !tbaa !27
  %2109 = getelementptr inbounds ptr, ptr %2108, i64 3
  %2110 = load ptr, ptr %2109, align 8, !tbaa !5
  %2111 = getelementptr inbounds double, ptr %2110, i64 1
  store double 0.000000e+00, ptr %2111, align 8, !tbaa !28
  br label %2112

2112:                                             ; preds = %2033, %2030
  %2113 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2113)
  store i32 1, ptr %36, align 4
  br label %5101

2114:                                             ; preds = %1949
  %2115 = load ptr, ptr %8, align 8, !tbaa !5
  %2116 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %2115, i32 0, i32 1
  %2117 = load i64, ptr %2116, align 8, !tbaa !35
  %2118 = icmp eq i64 %2117, 2
  br i1 %2118, label %2119, label %2225

2119:                                             ; preds = %2114
  %2120 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %2121 = trunc i8 %2120 to i1
  br i1 %2121, label %2122, label %2165

2122:                                             ; preds = %2119
  %2123 = load ptr, ptr %9, align 8, !tbaa !5
  %2124 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2123, i32 0, i32 4
  %2125 = load ptr, ptr %2124, align 8, !tbaa !27
  %2126 = getelementptr inbounds double, ptr %2125, i64 0
  %2127 = load double, ptr %2126, align 8, !tbaa !28
  %2128 = fadd double %2127, 1.500000e+00
  %2129 = load ptr, ptr %10, align 8, !tbaa !5
  %2130 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2129, i32 0, i32 4
  %2131 = load ptr, ptr %2130, align 8, !tbaa !27
  %2132 = getelementptr inbounds double, ptr %2131, i64 0
  store double %2128, ptr %2132, align 8, !tbaa !28
  %2133 = load ptr, ptr %9, align 8, !tbaa !5
  %2134 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2133, i32 0, i32 4
  %2135 = load ptr, ptr %2134, align 8, !tbaa !27
  %2136 = getelementptr inbounds double, ptr %2135, i64 1
  %2137 = load double, ptr %2136, align 8, !tbaa !28
  %2138 = load ptr, ptr %10, align 8, !tbaa !5
  %2139 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2138, i32 0, i32 4
  %2140 = load ptr, ptr %2139, align 8, !tbaa !27
  %2141 = getelementptr inbounds double, ptr %2140, i64 1
  store double %2137, ptr %2141, align 8, !tbaa !28
  %2142 = load ptr, ptr %14, align 8, !tbaa !5
  %2143 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+01, ptr noundef %2142)
  %2144 = load ptr, ptr %9, align 8, !tbaa !5
  %2145 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2144, i32 0, i32 4
  %2146 = load ptr, ptr %2145, align 8, !tbaa !27
  %2147 = getelementptr inbounds double, ptr %2146, i64 0
  %2148 = load double, ptr %2147, align 8, !tbaa !28
  %2149 = load ptr, ptr %14, align 8, !tbaa !5
  %2150 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2148, ptr noundef %2149)
  %2151 = load ptr, ptr %9, align 8, !tbaa !5
  %2152 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2151, i32 0, i32 4
  %2153 = load ptr, ptr %2152, align 8, !tbaa !27
  %2154 = getelementptr inbounds double, ptr %2153, i64 1
  %2155 = load double, ptr %2154, align 8, !tbaa !28
  %2156 = load ptr, ptr %14, align 8, !tbaa !5
  %2157 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2155, ptr noundef %2156)
  %2158 = fadd double %2150, %2157
  %2159 = fsub double %2158, 1.000000e+00
  %2160 = fmul double %2143, %2159
  %2161 = load ptr, ptr %10, align 8, !tbaa !5
  %2162 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2161, i32 0, i32 4
  %2163 = load ptr, ptr %2162, align 8, !tbaa !27
  %2164 = getelementptr inbounds double, ptr %2163, i64 2
  store double %2160, ptr %2164, align 8, !tbaa !28
  br label %2165

2165:                                             ; preds = %2122, %2119
  %2166 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %2167 = trunc i8 %2166 to i1
  br i1 %2167, label %2168, label %2223

2168:                                             ; preds = %2165
  %2169 = load ptr, ptr %12, align 8, !tbaa !5
  %2170 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2169, i32 0, i32 6
  %2171 = load ptr, ptr %2170, align 8, !tbaa !27
  %2172 = getelementptr inbounds ptr, ptr %2171, i64 0
  %2173 = load ptr, ptr %2172, align 8, !tbaa !5
  %2174 = getelementptr inbounds double, ptr %2173, i64 0
  store double 1.000000e+00, ptr %2174, align 8, !tbaa !28
  %2175 = load ptr, ptr %12, align 8, !tbaa !5
  %2176 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2175, i32 0, i32 6
  %2177 = load ptr, ptr %2176, align 8, !tbaa !27
  %2178 = getelementptr inbounds ptr, ptr %2177, i64 0
  %2179 = load ptr, ptr %2178, align 8, !tbaa !5
  %2180 = getelementptr inbounds double, ptr %2179, i64 1
  store double 0.000000e+00, ptr %2180, align 8, !tbaa !28
  %2181 = load ptr, ptr %12, align 8, !tbaa !5
  %2182 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2181, i32 0, i32 6
  %2183 = load ptr, ptr %2182, align 8, !tbaa !27
  %2184 = getelementptr inbounds ptr, ptr %2183, i64 1
  %2185 = load ptr, ptr %2184, align 8, !tbaa !5
  %2186 = getelementptr inbounds double, ptr %2185, i64 0
  store double 0.000000e+00, ptr %2186, align 8, !tbaa !28
  %2187 = load ptr, ptr %12, align 8, !tbaa !5
  %2188 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2187, i32 0, i32 6
  %2189 = load ptr, ptr %2188, align 8, !tbaa !27
  %2190 = getelementptr inbounds ptr, ptr %2189, i64 1
  %2191 = load ptr, ptr %2190, align 8, !tbaa !5
  %2192 = getelementptr inbounds double, ptr %2191, i64 1
  store double 1.000000e+00, ptr %2192, align 8, !tbaa !28
  %2193 = load ptr, ptr %14, align 8, !tbaa !5
  %2194 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+01, ptr noundef %2193)
  %2195 = fmul double %2194, 2.000000e+00
  %2196 = load ptr, ptr %9, align 8, !tbaa !5
  %2197 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2196, i32 0, i32 4
  %2198 = load ptr, ptr %2197, align 8, !tbaa !27
  %2199 = getelementptr inbounds double, ptr %2198, i64 0
  %2200 = load double, ptr %2199, align 8, !tbaa !28
  %2201 = fmul double %2195, %2200
  %2202 = load ptr, ptr %12, align 8, !tbaa !5
  %2203 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2202, i32 0, i32 6
  %2204 = load ptr, ptr %2203, align 8, !tbaa !27
  %2205 = getelementptr inbounds ptr, ptr %2204, i64 2
  %2206 = load ptr, ptr %2205, align 8, !tbaa !5
  %2207 = getelementptr inbounds double, ptr %2206, i64 0
  store double %2201, ptr %2207, align 8, !tbaa !28
  %2208 = load ptr, ptr %14, align 8, !tbaa !5
  %2209 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+01, ptr noundef %2208)
  %2210 = fmul double %2209, 2.000000e+00
  %2211 = load ptr, ptr %9, align 8, !tbaa !5
  %2212 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2211, i32 0, i32 4
  %2213 = load ptr, ptr %2212, align 8, !tbaa !27
  %2214 = getelementptr inbounds double, ptr %2213, i64 1
  %2215 = load double, ptr %2214, align 8, !tbaa !28
  %2216 = fmul double %2210, %2215
  %2217 = load ptr, ptr %12, align 8, !tbaa !5
  %2218 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2217, i32 0, i32 6
  %2219 = load ptr, ptr %2218, align 8, !tbaa !27
  %2220 = getelementptr inbounds ptr, ptr %2219, i64 2
  %2221 = load ptr, ptr %2220, align 8, !tbaa !5
  %2222 = getelementptr inbounds double, ptr %2221, i64 1
  store double %2216, ptr %2222, align 8, !tbaa !28
  br label %2223

2223:                                             ; preds = %2168, %2165
  %2224 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2224)
  store i32 1, ptr %36, align 4
  br label %5101

2225:                                             ; preds = %2114
  %2226 = load ptr, ptr %8, align 8, !tbaa !5
  %2227 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %2226, i32 0, i32 1
  %2228 = load i64, ptr %2227, align 8, !tbaa !35
  %2229 = icmp eq i64 %2228, 3
  br i1 %2229, label %2230, label %2321

2230:                                             ; preds = %2225
  %2231 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %2232 = trunc i8 %2231 to i1
  br i1 %2232, label %2233, label %2269

2233:                                             ; preds = %2230
  %2234 = load ptr, ptr %9, align 8, !tbaa !5
  %2235 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2234, i32 0, i32 4
  %2236 = load ptr, ptr %2235, align 8, !tbaa !27
  %2237 = getelementptr inbounds double, ptr %2236, i64 0
  %2238 = load double, ptr %2237, align 8, !tbaa !28
  %2239 = fsub double %2238, 1.000000e+06
  %2240 = load ptr, ptr %10, align 8, !tbaa !5
  %2241 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2240, i32 0, i32 4
  %2242 = load ptr, ptr %2241, align 8, !tbaa !27
  %2243 = getelementptr inbounds double, ptr %2242, i64 0
  store double %2239, ptr %2243, align 8, !tbaa !28
  %2244 = load ptr, ptr %9, align 8, !tbaa !5
  %2245 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2244, i32 0, i32 4
  %2246 = load ptr, ptr %2245, align 8, !tbaa !27
  %2247 = getelementptr inbounds double, ptr %2246, i64 1
  %2248 = load double, ptr %2247, align 8, !tbaa !28
  %2249 = fsub double %2248, 2.000000e-06
  %2250 = load ptr, ptr %10, align 8, !tbaa !5
  %2251 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2250, i32 0, i32 4
  %2252 = load ptr, ptr %2251, align 8, !tbaa !27
  %2253 = getelementptr inbounds double, ptr %2252, i64 1
  store double %2249, ptr %2253, align 8, !tbaa !28
  %2254 = load ptr, ptr %9, align 8, !tbaa !5
  %2255 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2254, i32 0, i32 4
  %2256 = load ptr, ptr %2255, align 8, !tbaa !27
  %2257 = getelementptr inbounds double, ptr %2256, i64 0
  %2258 = load double, ptr %2257, align 8, !tbaa !28
  %2259 = load ptr, ptr %9, align 8, !tbaa !5
  %2260 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2259, i32 0, i32 4
  %2261 = load ptr, ptr %2260, align 8, !tbaa !27
  %2262 = getelementptr inbounds double, ptr %2261, i64 1
  %2263 = load double, ptr %2262, align 8, !tbaa !28
  %2264 = call double @llvm.fmuladd.f64(double %2258, double %2263, double -2.000000e+00)
  %2265 = load ptr, ptr %10, align 8, !tbaa !5
  %2266 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2265, i32 0, i32 4
  %2267 = load ptr, ptr %2266, align 8, !tbaa !27
  %2268 = getelementptr inbounds double, ptr %2267, i64 2
  store double %2264, ptr %2268, align 8, !tbaa !28
  br label %2269

2269:                                             ; preds = %2233, %2230
  %2270 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %2271 = trunc i8 %2270 to i1
  br i1 %2271, label %2272, label %2319

2272:                                             ; preds = %2269
  %2273 = load ptr, ptr %12, align 8, !tbaa !5
  %2274 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2273, i32 0, i32 6
  %2275 = load ptr, ptr %2274, align 8, !tbaa !27
  %2276 = getelementptr inbounds ptr, ptr %2275, i64 0
  %2277 = load ptr, ptr %2276, align 8, !tbaa !5
  %2278 = getelementptr inbounds double, ptr %2277, i64 0
  store double 1.000000e+00, ptr %2278, align 8, !tbaa !28
  %2279 = load ptr, ptr %12, align 8, !tbaa !5
  %2280 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2279, i32 0, i32 6
  %2281 = load ptr, ptr %2280, align 8, !tbaa !27
  %2282 = getelementptr inbounds ptr, ptr %2281, i64 0
  %2283 = load ptr, ptr %2282, align 8, !tbaa !5
  %2284 = getelementptr inbounds double, ptr %2283, i64 1
  store double 0.000000e+00, ptr %2284, align 8, !tbaa !28
  %2285 = load ptr, ptr %12, align 8, !tbaa !5
  %2286 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2285, i32 0, i32 6
  %2287 = load ptr, ptr %2286, align 8, !tbaa !27
  %2288 = getelementptr inbounds ptr, ptr %2287, i64 1
  %2289 = load ptr, ptr %2288, align 8, !tbaa !5
  %2290 = getelementptr inbounds double, ptr %2289, i64 0
  store double 0.000000e+00, ptr %2290, align 8, !tbaa !28
  %2291 = load ptr, ptr %12, align 8, !tbaa !5
  %2292 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2291, i32 0, i32 6
  %2293 = load ptr, ptr %2292, align 8, !tbaa !27
  %2294 = getelementptr inbounds ptr, ptr %2293, i64 1
  %2295 = load ptr, ptr %2294, align 8, !tbaa !5
  %2296 = getelementptr inbounds double, ptr %2295, i64 1
  store double 1.000000e+00, ptr %2296, align 8, !tbaa !28
  %2297 = load ptr, ptr %9, align 8, !tbaa !5
  %2298 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2297, i32 0, i32 4
  %2299 = load ptr, ptr %2298, align 8, !tbaa !27
  %2300 = getelementptr inbounds double, ptr %2299, i64 1
  %2301 = load double, ptr %2300, align 8, !tbaa !28
  %2302 = load ptr, ptr %12, align 8, !tbaa !5
  %2303 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2302, i32 0, i32 6
  %2304 = load ptr, ptr %2303, align 8, !tbaa !27
  %2305 = getelementptr inbounds ptr, ptr %2304, i64 2
  %2306 = load ptr, ptr %2305, align 8, !tbaa !5
  %2307 = getelementptr inbounds double, ptr %2306, i64 0
  store double %2301, ptr %2307, align 8, !tbaa !28
  %2308 = load ptr, ptr %9, align 8, !tbaa !5
  %2309 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2308, i32 0, i32 4
  %2310 = load ptr, ptr %2309, align 8, !tbaa !27
  %2311 = getelementptr inbounds double, ptr %2310, i64 0
  %2312 = load double, ptr %2311, align 8, !tbaa !28
  %2313 = load ptr, ptr %12, align 8, !tbaa !5
  %2314 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2313, i32 0, i32 6
  %2315 = load ptr, ptr %2314, align 8, !tbaa !27
  %2316 = getelementptr inbounds ptr, ptr %2315, i64 2
  %2317 = load ptr, ptr %2316, align 8, !tbaa !5
  %2318 = getelementptr inbounds double, ptr %2317, i64 1
  store double %2312, ptr %2318, align 8, !tbaa !28
  br label %2319

2319:                                             ; preds = %2272, %2269
  %2320 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2320)
  store i32 1, ptr %36, align 4
  br label %5101

2321:                                             ; preds = %2225
  %2322 = load ptr, ptr %8, align 8, !tbaa !5
  %2323 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %2322, i32 0, i32 1
  %2324 = load i64, ptr %2323, align 8, !tbaa !35
  %2325 = icmp eq i64 %2324, 4
  br i1 %2325, label %2326, label %2456

2326:                                             ; preds = %2321
  %2327 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %2328 = trunc i8 %2327 to i1
  br i1 %2328, label %2329, label %2375

2329:                                             ; preds = %2326
  %2330 = load ptr, ptr %9, align 8, !tbaa !5
  %2331 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2330, i32 0, i32 4
  %2332 = load ptr, ptr %2331, align 8, !tbaa !27
  %2333 = getelementptr inbounds double, ptr %2332, i64 0
  %2334 = load double, ptr %2333, align 8, !tbaa !28
  %2335 = fmul double 1.000000e+02, %2334
  %2336 = load ptr, ptr %9, align 8, !tbaa !5
  %2337 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2336, i32 0, i32 4
  %2338 = load ptr, ptr %2337, align 8, !tbaa !27
  %2339 = getelementptr inbounds double, ptr %2338, i64 0
  %2340 = load double, ptr %2339, align 8, !tbaa !28
  %2341 = load ptr, ptr %9, align 8, !tbaa !5
  %2342 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2341, i32 0, i32 4
  %2343 = load ptr, ptr %2342, align 8, !tbaa !27
  %2344 = getelementptr inbounds double, ptr %2343, i64 0
  %2345 = load double, ptr %2344, align 8, !tbaa !28
  %2346 = call double @llvm.fmuladd.f64(double %2340, double %2345, double 1.000000e+00)
  %2347 = load ptr, ptr %14, align 8, !tbaa !5
  %2348 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2346, ptr noundef %2347)
  %2349 = fdiv double %2335, %2348
  %2350 = load ptr, ptr %10, align 8, !tbaa !5
  %2351 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2350, i32 0, i32 4
  %2352 = load ptr, ptr %2351, align 8, !tbaa !27
  %2353 = getelementptr inbounds double, ptr %2352, i64 0
  store double %2349, ptr %2353, align 8, !tbaa !28
  %2354 = load ptr, ptr %9, align 8, !tbaa !5
  %2355 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2354, i32 0, i32 4
  %2356 = load ptr, ptr %2355, align 8, !tbaa !27
  %2357 = getelementptr inbounds double, ptr %2356, i64 1
  %2358 = load double, ptr %2357, align 8, !tbaa !28
  %2359 = fmul double 1.000000e+01, %2358
  %2360 = load ptr, ptr %10, align 8, !tbaa !5
  %2361 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2360, i32 0, i32 4
  %2362 = load ptr, ptr %2361, align 8, !tbaa !27
  %2363 = getelementptr inbounds double, ptr %2362, i64 1
  store double %2359, ptr %2363, align 8, !tbaa !28
  %2364 = load ptr, ptr %9, align 8, !tbaa !5
  %2365 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2364, i32 0, i32 4
  %2366 = load ptr, ptr %2365, align 8, !tbaa !27
  %2367 = getelementptr inbounds double, ptr %2366, i64 0
  %2368 = load double, ptr %2367, align 8, !tbaa !28
  %2369 = load ptr, ptr %14, align 8, !tbaa !5
  %2370 = call noundef double @_ZN11alglib_impl7ae_sinhEdPNS_8ae_stateE(double noundef %2368, ptr noundef %2369)
  %2371 = load ptr, ptr %10, align 8, !tbaa !5
  %2372 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2371, i32 0, i32 4
  %2373 = load ptr, ptr %2372, align 8, !tbaa !27
  %2374 = getelementptr inbounds double, ptr %2373, i64 2
  store double %2370, ptr %2374, align 8, !tbaa !28
  br label %2375

2375:                                             ; preds = %2329, %2326
  %2376 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %2377 = trunc i8 %2376 to i1
  br i1 %2377, label %2378, label %2454

2378:                                             ; preds = %2375
  %2379 = load ptr, ptr %12, align 8, !tbaa !5
  %2380 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 3, i64 noundef 2, double noundef 0.000000e+00, ptr noundef %2379, ptr noundef %2380)
  %2381 = load ptr, ptr %9, align 8, !tbaa !5
  %2382 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2381, i32 0, i32 4
  %2383 = load ptr, ptr %2382, align 8, !tbaa !27
  %2384 = getelementptr inbounds double, ptr %2383, i64 0
  %2385 = load double, ptr %2384, align 8, !tbaa !28
  %2386 = load ptr, ptr %9, align 8, !tbaa !5
  %2387 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2386, i32 0, i32 4
  %2388 = load ptr, ptr %2387, align 8, !tbaa !27
  %2389 = getelementptr inbounds double, ptr %2388, i64 0
  %2390 = load double, ptr %2389, align 8, !tbaa !28
  %2391 = call double @llvm.fmuladd.f64(double %2385, double %2390, double 1.000000e+00)
  %2392 = load ptr, ptr %14, align 8, !tbaa !5
  %2393 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2391, ptr noundef %2392)
  %2394 = load ptr, ptr %9, align 8, !tbaa !5
  %2395 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2394, i32 0, i32 4
  %2396 = load ptr, ptr %2395, align 8, !tbaa !27
  %2397 = getelementptr inbounds double, ptr %2396, i64 0
  %2398 = load double, ptr %2397, align 8, !tbaa !28
  %2399 = fmul double 1.000000e+02, %2398
  %2400 = fmul double %2399, 5.000000e-01
  %2401 = load ptr, ptr %9, align 8, !tbaa !5
  %2402 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2401, i32 0, i32 4
  %2403 = load ptr, ptr %2402, align 8, !tbaa !27
  %2404 = getelementptr inbounds double, ptr %2403, i64 0
  %2405 = load double, ptr %2404, align 8, !tbaa !28
  %2406 = load ptr, ptr %9, align 8, !tbaa !5
  %2407 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2406, i32 0, i32 4
  %2408 = load ptr, ptr %2407, align 8, !tbaa !27
  %2409 = getelementptr inbounds double, ptr %2408, i64 0
  %2410 = load double, ptr %2409, align 8, !tbaa !28
  %2411 = call double @llvm.fmuladd.f64(double %2405, double %2410, double 1.000000e+00)
  %2412 = load ptr, ptr %14, align 8, !tbaa !5
  %2413 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2411, ptr noundef %2412)
  %2414 = fdiv double %2400, %2413
  %2415 = fneg double %2414
  %2416 = call double @llvm.fmuladd.f64(double 1.000000e+02, double %2393, double %2415)
  %2417 = load ptr, ptr %9, align 8, !tbaa !5
  %2418 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2417, i32 0, i32 4
  %2419 = load ptr, ptr %2418, align 8, !tbaa !27
  %2420 = getelementptr inbounds double, ptr %2419, i64 0
  %2421 = load double, ptr %2420, align 8, !tbaa !28
  %2422 = load ptr, ptr %9, align 8, !tbaa !5
  %2423 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2422, i32 0, i32 4
  %2424 = load ptr, ptr %2423, align 8, !tbaa !27
  %2425 = getelementptr inbounds double, ptr %2424, i64 0
  %2426 = load double, ptr %2425, align 8, !tbaa !28
  %2427 = call double @llvm.fmuladd.f64(double %2421, double %2426, double 1.000000e+00)
  %2428 = fdiv double %2416, %2427
  %2429 = load ptr, ptr %12, align 8, !tbaa !5
  %2430 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2429, i32 0, i32 6
  %2431 = load ptr, ptr %2430, align 8, !tbaa !27
  %2432 = getelementptr inbounds ptr, ptr %2431, i64 0
  %2433 = load ptr, ptr %2432, align 8, !tbaa !5
  %2434 = getelementptr inbounds double, ptr %2433, i64 0
  store double %2428, ptr %2434, align 8, !tbaa !28
  %2435 = load ptr, ptr %12, align 8, !tbaa !5
  %2436 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2435, i32 0, i32 6
  %2437 = load ptr, ptr %2436, align 8, !tbaa !27
  %2438 = getelementptr inbounds ptr, ptr %2437, i64 1
  %2439 = load ptr, ptr %2438, align 8, !tbaa !5
  %2440 = getelementptr inbounds double, ptr %2439, i64 1
  store double 1.000000e+01, ptr %2440, align 8, !tbaa !28
  %2441 = load ptr, ptr %9, align 8, !tbaa !5
  %2442 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2441, i32 0, i32 4
  %2443 = load ptr, ptr %2442, align 8, !tbaa !27
  %2444 = getelementptr inbounds double, ptr %2443, i64 0
  %2445 = load double, ptr %2444, align 8, !tbaa !28
  %2446 = load ptr, ptr %14, align 8, !tbaa !5
  %2447 = call noundef double @_ZN11alglib_impl7ae_coshEdPNS_8ae_stateE(double noundef %2445, ptr noundef %2446)
  %2448 = load ptr, ptr %12, align 8, !tbaa !5
  %2449 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2448, i32 0, i32 6
  %2450 = load ptr, ptr %2449, align 8, !tbaa !27
  %2451 = getelementptr inbounds ptr, ptr %2450, i64 2
  %2452 = load ptr, ptr %2451, align 8, !tbaa !5
  %2453 = getelementptr inbounds double, ptr %2452, i64 0
  store double %2447, ptr %2453, align 8, !tbaa !28
  br label %2454

2454:                                             ; preds = %2378, %2375
  %2455 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2455)
  store i32 1, ptr %36, align 4
  br label %5101

2456:                                             ; preds = %2321
  %2457 = load ptr, ptr %8, align 8, !tbaa !5
  %2458 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %2457, i32 0, i32 1
  %2459 = load i64, ptr %2458, align 8, !tbaa !35
  %2460 = icmp eq i64 %2459, 5
  br i1 %2460, label %2461, label %2591

2461:                                             ; preds = %2456
  %2462 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %2463 = trunc i8 %2462 to i1
  br i1 %2463, label %2464, label %2510

2464:                                             ; preds = %2461
  %2465 = load ptr, ptr %9, align 8, !tbaa !5
  %2466 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2465, i32 0, i32 4
  %2467 = load ptr, ptr %2466, align 8, !tbaa !27
  %2468 = getelementptr inbounds double, ptr %2467, i64 0
  %2469 = load double, ptr %2468, align 8, !tbaa !28
  %2470 = fmul double 1.000000e+02, %2469
  %2471 = load ptr, ptr %9, align 8, !tbaa !5
  %2472 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2471, i32 0, i32 4
  %2473 = load ptr, ptr %2472, align 8, !tbaa !27
  %2474 = getelementptr inbounds double, ptr %2473, i64 0
  %2475 = load double, ptr %2474, align 8, !tbaa !28
  %2476 = load ptr, ptr %9, align 8, !tbaa !5
  %2477 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2476, i32 0, i32 4
  %2478 = load ptr, ptr %2477, align 8, !tbaa !27
  %2479 = getelementptr inbounds double, ptr %2478, i64 0
  %2480 = load double, ptr %2479, align 8, !tbaa !28
  %2481 = call double @llvm.fmuladd.f64(double %2475, double %2480, double 1.000000e+00)
  %2482 = load ptr, ptr %14, align 8, !tbaa !5
  %2483 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2481, ptr noundef %2482)
  %2484 = fdiv double %2470, %2483
  %2485 = load ptr, ptr %10, align 8, !tbaa !5
  %2486 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2485, i32 0, i32 4
  %2487 = load ptr, ptr %2486, align 8, !tbaa !27
  %2488 = getelementptr inbounds double, ptr %2487, i64 0
  store double %2484, ptr %2488, align 8, !tbaa !28
  %2489 = load ptr, ptr %9, align 8, !tbaa !5
  %2490 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2489, i32 0, i32 4
  %2491 = load ptr, ptr %2490, align 8, !tbaa !27
  %2492 = getelementptr inbounds double, ptr %2491, i64 1
  %2493 = load double, ptr %2492, align 8, !tbaa !28
  %2494 = fmul double 1.000000e+01, %2493
  %2495 = load ptr, ptr %10, align 8, !tbaa !5
  %2496 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2495, i32 0, i32 4
  %2497 = load ptr, ptr %2496, align 8, !tbaa !27
  %2498 = getelementptr inbounds double, ptr %2497, i64 1
  store double %2494, ptr %2498, align 8, !tbaa !28
  %2499 = load ptr, ptr %9, align 8, !tbaa !5
  %2500 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2499, i32 0, i32 4
  %2501 = load ptr, ptr %2500, align 8, !tbaa !27
  %2502 = getelementptr inbounds double, ptr %2501, i64 0
  %2503 = load double, ptr %2502, align 8, !tbaa !28
  %2504 = load ptr, ptr %14, align 8, !tbaa !5
  %2505 = call noundef double @_ZN11alglib_impl7ae_coshEdPNS_8ae_stateE(double noundef %2503, ptr noundef %2504)
  %2506 = load ptr, ptr %10, align 8, !tbaa !5
  %2507 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2506, i32 0, i32 4
  %2508 = load ptr, ptr %2507, align 8, !tbaa !27
  %2509 = getelementptr inbounds double, ptr %2508, i64 2
  store double %2505, ptr %2509, align 8, !tbaa !28
  br label %2510

2510:                                             ; preds = %2464, %2461
  %2511 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %2512 = trunc i8 %2511 to i1
  br i1 %2512, label %2513, label %2589

2513:                                             ; preds = %2510
  %2514 = load ptr, ptr %12, align 8, !tbaa !5
  %2515 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 3, i64 noundef 2, double noundef 0.000000e+00, ptr noundef %2514, ptr noundef %2515)
  %2516 = load ptr, ptr %9, align 8, !tbaa !5
  %2517 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2516, i32 0, i32 4
  %2518 = load ptr, ptr %2517, align 8, !tbaa !27
  %2519 = getelementptr inbounds double, ptr %2518, i64 0
  %2520 = load double, ptr %2519, align 8, !tbaa !28
  %2521 = load ptr, ptr %9, align 8, !tbaa !5
  %2522 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2521, i32 0, i32 4
  %2523 = load ptr, ptr %2522, align 8, !tbaa !27
  %2524 = getelementptr inbounds double, ptr %2523, i64 0
  %2525 = load double, ptr %2524, align 8, !tbaa !28
  %2526 = call double @llvm.fmuladd.f64(double %2520, double %2525, double 1.000000e+00)
  %2527 = load ptr, ptr %14, align 8, !tbaa !5
  %2528 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2526, ptr noundef %2527)
  %2529 = load ptr, ptr %9, align 8, !tbaa !5
  %2530 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2529, i32 0, i32 4
  %2531 = load ptr, ptr %2530, align 8, !tbaa !27
  %2532 = getelementptr inbounds double, ptr %2531, i64 0
  %2533 = load double, ptr %2532, align 8, !tbaa !28
  %2534 = fmul double 1.000000e+02, %2533
  %2535 = fmul double %2534, 5.000000e-01
  %2536 = load ptr, ptr %9, align 8, !tbaa !5
  %2537 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2536, i32 0, i32 4
  %2538 = load ptr, ptr %2537, align 8, !tbaa !27
  %2539 = getelementptr inbounds double, ptr %2538, i64 0
  %2540 = load double, ptr %2539, align 8, !tbaa !28
  %2541 = load ptr, ptr %9, align 8, !tbaa !5
  %2542 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2541, i32 0, i32 4
  %2543 = load ptr, ptr %2542, align 8, !tbaa !27
  %2544 = getelementptr inbounds double, ptr %2543, i64 0
  %2545 = load double, ptr %2544, align 8, !tbaa !28
  %2546 = call double @llvm.fmuladd.f64(double %2540, double %2545, double 1.000000e+00)
  %2547 = load ptr, ptr %14, align 8, !tbaa !5
  %2548 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2546, ptr noundef %2547)
  %2549 = fdiv double %2535, %2548
  %2550 = fneg double %2549
  %2551 = call double @llvm.fmuladd.f64(double 1.000000e+02, double %2528, double %2550)
  %2552 = load ptr, ptr %9, align 8, !tbaa !5
  %2553 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2552, i32 0, i32 4
  %2554 = load ptr, ptr %2553, align 8, !tbaa !27
  %2555 = getelementptr inbounds double, ptr %2554, i64 0
  %2556 = load double, ptr %2555, align 8, !tbaa !28
  %2557 = load ptr, ptr %9, align 8, !tbaa !5
  %2558 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2557, i32 0, i32 4
  %2559 = load ptr, ptr %2558, align 8, !tbaa !27
  %2560 = getelementptr inbounds double, ptr %2559, i64 0
  %2561 = load double, ptr %2560, align 8, !tbaa !28
  %2562 = call double @llvm.fmuladd.f64(double %2556, double %2561, double 1.000000e+00)
  %2563 = fdiv double %2551, %2562
  %2564 = load ptr, ptr %12, align 8, !tbaa !5
  %2565 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2564, i32 0, i32 6
  %2566 = load ptr, ptr %2565, align 8, !tbaa !27
  %2567 = getelementptr inbounds ptr, ptr %2566, i64 0
  %2568 = load ptr, ptr %2567, align 8, !tbaa !5
  %2569 = getelementptr inbounds double, ptr %2568, i64 0
  store double %2563, ptr %2569, align 8, !tbaa !28
  %2570 = load ptr, ptr %12, align 8, !tbaa !5
  %2571 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2570, i32 0, i32 6
  %2572 = load ptr, ptr %2571, align 8, !tbaa !27
  %2573 = getelementptr inbounds ptr, ptr %2572, i64 1
  %2574 = load ptr, ptr %2573, align 8, !tbaa !5
  %2575 = getelementptr inbounds double, ptr %2574, i64 1
  store double 1.000000e+01, ptr %2575, align 8, !tbaa !28
  %2576 = load ptr, ptr %9, align 8, !tbaa !5
  %2577 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2576, i32 0, i32 4
  %2578 = load ptr, ptr %2577, align 8, !tbaa !27
  %2579 = getelementptr inbounds double, ptr %2578, i64 0
  %2580 = load double, ptr %2579, align 8, !tbaa !28
  %2581 = load ptr, ptr %14, align 8, !tbaa !5
  %2582 = call noundef double @_ZN11alglib_impl7ae_sinhEdPNS_8ae_stateE(double noundef %2580, ptr noundef %2581)
  %2583 = load ptr, ptr %12, align 8, !tbaa !5
  %2584 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2583, i32 0, i32 6
  %2585 = load ptr, ptr %2584, align 8, !tbaa !27
  %2586 = getelementptr inbounds ptr, ptr %2585, i64 2
  %2587 = load ptr, ptr %2586, align 8, !tbaa !5
  %2588 = getelementptr inbounds double, ptr %2587, i64 0
  store double %2582, ptr %2588, align 8, !tbaa !28
  br label %2589

2589:                                             ; preds = %2513, %2510
  %2590 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2590)
  store i32 1, ptr %36, align 4
  br label %5101

2591:                                             ; preds = %2456
  %2592 = load ptr, ptr %8, align 8, !tbaa !5
  %2593 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %2592, i32 0, i32 1
  %2594 = load i64, ptr %2593, align 8, !tbaa !35
  %2595 = icmp eq i64 %2594, 6
  br i1 %2595, label %2596, label %2699

2596:                                             ; preds = %2591
  %2597 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %2598 = trunc i8 %2597 to i1
  br i1 %2598, label %2599, label %2648

2599:                                             ; preds = %2596
  %2600 = load ptr, ptr %9, align 8, !tbaa !5
  %2601 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2600, i32 0, i32 4
  %2602 = load ptr, ptr %2601, align 8, !tbaa !27
  %2603 = getelementptr inbounds double, ptr %2602, i64 1
  %2604 = load double, ptr %2603, align 8, !tbaa !28
  %2605 = load ptr, ptr %9, align 8, !tbaa !5
  %2606 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2605, i32 0, i32 4
  %2607 = load ptr, ptr %2606, align 8, !tbaa !27
  %2608 = getelementptr inbounds double, ptr %2607, i64 0
  %2609 = load double, ptr %2608, align 8, !tbaa !28
  %2610 = load ptr, ptr %14, align 8, !tbaa !5
  %2611 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2609, ptr noundef %2610)
  %2612 = fsub double %2604, %2611
  %2613 = fmul double 1.000000e+02, %2612
  %2614 = load ptr, ptr %10, align 8, !tbaa !5
  %2615 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2614, i32 0, i32 4
  %2616 = load ptr, ptr %2615, align 8, !tbaa !27
  %2617 = getelementptr inbounds double, ptr %2616, i64 0
  store double %2613, ptr %2617, align 8, !tbaa !28
  %2618 = load ptr, ptr %9, align 8, !tbaa !5
  %2619 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2618, i32 0, i32 4
  %2620 = load ptr, ptr %2619, align 8, !tbaa !27
  %2621 = getelementptr inbounds double, ptr %2620, i64 0
  %2622 = load double, ptr %2621, align 8, !tbaa !28
  %2623 = fsub double %2622, 1.000000e+00
  %2624 = fmul double 1.000000e+01, %2623
  %2625 = load ptr, ptr %10, align 8, !tbaa !5
  %2626 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2625, i32 0, i32 4
  %2627 = load ptr, ptr %2626, align 8, !tbaa !27
  %2628 = getelementptr inbounds double, ptr %2627, i64 1
  store double %2624, ptr %2628, align 8, !tbaa !28
  %2629 = load ptr, ptr %9, align 8, !tbaa !5
  %2630 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2629, i32 0, i32 4
  %2631 = load ptr, ptr %2630, align 8, !tbaa !27
  %2632 = getelementptr inbounds double, ptr %2631, i64 1
  %2633 = load double, ptr %2632, align 8, !tbaa !28
  %2634 = fadd double %2633, 1.000000e+00
  %2635 = load ptr, ptr %14, align 8, !tbaa !5
  %2636 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2634, ptr noundef %2635)
  %2637 = load ptr, ptr %9, align 8, !tbaa !5
  %2638 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2637, i32 0, i32 4
  %2639 = load ptr, ptr %2638, align 8, !tbaa !27
  %2640 = getelementptr inbounds double, ptr %2639, i64 0
  %2641 = load double, ptr %2640, align 8, !tbaa !28
  %2642 = fsub double %2636, %2641
  %2643 = fadd double %2642, 1.000000e+00
  %2644 = load ptr, ptr %10, align 8, !tbaa !5
  %2645 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2644, i32 0, i32 4
  %2646 = load ptr, ptr %2645, align 8, !tbaa !27
  %2647 = getelementptr inbounds double, ptr %2646, i64 2
  store double %2643, ptr %2647, align 8, !tbaa !28
  br label %2648

2648:                                             ; preds = %2599, %2596
  %2649 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %2650 = trunc i8 %2649 to i1
  br i1 %2650, label %2651, label %2697

2651:                                             ; preds = %2648
  %2652 = load ptr, ptr %12, align 8, !tbaa !5
  %2653 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 3, i64 noundef 2, double noundef 0.000000e+00, ptr noundef %2652, ptr noundef %2653)
  %2654 = load ptr, ptr %9, align 8, !tbaa !5
  %2655 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2654, i32 0, i32 4
  %2656 = load ptr, ptr %2655, align 8, !tbaa !27
  %2657 = getelementptr inbounds double, ptr %2656, i64 0
  %2658 = load double, ptr %2657, align 8, !tbaa !28
  %2659 = fmul double -2.000000e+02, %2658
  %2660 = load ptr, ptr %12, align 8, !tbaa !5
  %2661 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2660, i32 0, i32 6
  %2662 = load ptr, ptr %2661, align 8, !tbaa !27
  %2663 = getelementptr inbounds ptr, ptr %2662, i64 0
  %2664 = load ptr, ptr %2663, align 8, !tbaa !5
  %2665 = getelementptr inbounds double, ptr %2664, i64 0
  store double %2659, ptr %2665, align 8, !tbaa !28
  %2666 = load ptr, ptr %12, align 8, !tbaa !5
  %2667 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2666, i32 0, i32 6
  %2668 = load ptr, ptr %2667, align 8, !tbaa !27
  %2669 = getelementptr inbounds ptr, ptr %2668, i64 0
  %2670 = load ptr, ptr %2669, align 8, !tbaa !5
  %2671 = getelementptr inbounds double, ptr %2670, i64 1
  store double 1.000000e+02, ptr %2671, align 8, !tbaa !28
  %2672 = load ptr, ptr %12, align 8, !tbaa !5
  %2673 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2672, i32 0, i32 6
  %2674 = load ptr, ptr %2673, align 8, !tbaa !27
  %2675 = getelementptr inbounds ptr, ptr %2674, i64 1
  %2676 = load ptr, ptr %2675, align 8, !tbaa !5
  %2677 = getelementptr inbounds double, ptr %2676, i64 0
  store double 1.000000e+01, ptr %2677, align 8, !tbaa !28
  %2678 = load ptr, ptr %12, align 8, !tbaa !5
  %2679 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2678, i32 0, i32 6
  %2680 = load ptr, ptr %2679, align 8, !tbaa !27
  %2681 = getelementptr inbounds ptr, ptr %2680, i64 2
  %2682 = load ptr, ptr %2681, align 8, !tbaa !5
  %2683 = getelementptr inbounds double, ptr %2682, i64 0
  store double -1.000000e+00, ptr %2683, align 8, !tbaa !28
  %2684 = load ptr, ptr %9, align 8, !tbaa !5
  %2685 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2684, i32 0, i32 4
  %2686 = load ptr, ptr %2685, align 8, !tbaa !27
  %2687 = getelementptr inbounds double, ptr %2686, i64 1
  %2688 = load double, ptr %2687, align 8, !tbaa !28
  %2689 = fadd double %2688, 1.000000e+00
  %2690 = fmul double 2.000000e+00, %2689
  %2691 = load ptr, ptr %12, align 8, !tbaa !5
  %2692 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2691, i32 0, i32 6
  %2693 = load ptr, ptr %2692, align 8, !tbaa !27
  %2694 = getelementptr inbounds ptr, ptr %2693, i64 2
  %2695 = load ptr, ptr %2694, align 8, !tbaa !5
  %2696 = getelementptr inbounds double, ptr %2695, i64 1
  store double %2690, ptr %2696, align 8, !tbaa !28
  br label %2697

2697:                                             ; preds = %2651, %2648
  %2698 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2698)
  store i32 1, ptr %36, align 4
  br label %5101

2699:                                             ; preds = %2591
  %2700 = load ptr, ptr %8, align 8, !tbaa !5
  %2701 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %2700, i32 0, i32 1
  %2702 = load i64, ptr %2701, align 8, !tbaa !35
  %2703 = icmp eq i64 %2702, 7
  br i1 %2703, label %2704, label %2883

2704:                                             ; preds = %2699
  %2705 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %2706 = trunc i8 %2705 to i1
  br i1 %2706, label %2707, label %2772

2707:                                             ; preds = %2704
  %2708 = load ptr, ptr %9, align 8, !tbaa !5
  %2709 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2708, i32 0, i32 4
  %2710 = load ptr, ptr %2709, align 8, !tbaa !27
  %2711 = getelementptr inbounds double, ptr %2710, i64 0
  %2712 = load double, ptr %2711, align 8, !tbaa !28
  %2713 = load ptr, ptr %9, align 8, !tbaa !5
  %2714 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2713, i32 0, i32 4
  %2715 = load ptr, ptr %2714, align 8, !tbaa !27
  %2716 = getelementptr inbounds double, ptr %2715, i64 1
  %2717 = load double, ptr %2716, align 8, !tbaa !28
  %2718 = fsub double %2717, 1.000000e+00
  %2719 = call double @llvm.fmuladd.f64(double %2712, double %2718, double 1.500000e+00)
  %2720 = load ptr, ptr %10, align 8, !tbaa !5
  %2721 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2720, i32 0, i32 4
  %2722 = load ptr, ptr %2721, align 8, !tbaa !27
  %2723 = getelementptr inbounds double, ptr %2722, i64 0
  store double %2719, ptr %2723, align 8, !tbaa !28
  %2724 = load ptr, ptr %9, align 8, !tbaa !5
  %2725 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2724, i32 0, i32 4
  %2726 = load ptr, ptr %2725, align 8, !tbaa !27
  %2727 = getelementptr inbounds double, ptr %2726, i64 0
  %2728 = load double, ptr %2727, align 8, !tbaa !28
  %2729 = load ptr, ptr %9, align 8, !tbaa !5
  %2730 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2729, i32 0, i32 4
  %2731 = load ptr, ptr %2730, align 8, !tbaa !27
  %2732 = getelementptr inbounds double, ptr %2731, i64 1
  %2733 = load double, ptr %2732, align 8, !tbaa !28
  %2734 = load ptr, ptr %9, align 8, !tbaa !5
  %2735 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2734, i32 0, i32 4
  %2736 = load ptr, ptr %2735, align 8, !tbaa !27
  %2737 = getelementptr inbounds double, ptr %2736, i64 1
  %2738 = load double, ptr %2737, align 8, !tbaa !28
  %2739 = call double @llvm.fmuladd.f64(double %2733, double %2738, double -1.000000e+00)
  %2740 = call double @llvm.fmuladd.f64(double %2728, double %2739, double 2.250000e+00)
  %2741 = load ptr, ptr %10, align 8, !tbaa !5
  %2742 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2741, i32 0, i32 4
  %2743 = load ptr, ptr %2742, align 8, !tbaa !27
  %2744 = getelementptr inbounds double, ptr %2743, i64 1
  store double %2740, ptr %2744, align 8, !tbaa !28
  %2745 = load ptr, ptr %9, align 8, !tbaa !5
  %2746 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2745, i32 0, i32 4
  %2747 = load ptr, ptr %2746, align 8, !tbaa !27
  %2748 = getelementptr inbounds double, ptr %2747, i64 0
  %2749 = load double, ptr %2748, align 8, !tbaa !28
  %2750 = load ptr, ptr %9, align 8, !tbaa !5
  %2751 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2750, i32 0, i32 4
  %2752 = load ptr, ptr %2751, align 8, !tbaa !27
  %2753 = getelementptr inbounds double, ptr %2752, i64 1
  %2754 = load double, ptr %2753, align 8, !tbaa !28
  %2755 = load ptr, ptr %9, align 8, !tbaa !5
  %2756 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2755, i32 0, i32 4
  %2757 = load ptr, ptr %2756, align 8, !tbaa !27
  %2758 = getelementptr inbounds double, ptr %2757, i64 1
  %2759 = load double, ptr %2758, align 8, !tbaa !28
  %2760 = fmul double %2754, %2759
  %2761 = load ptr, ptr %9, align 8, !tbaa !5
  %2762 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2761, i32 0, i32 4
  %2763 = load ptr, ptr %2762, align 8, !tbaa !27
  %2764 = getelementptr inbounds double, ptr %2763, i64 1
  %2765 = load double, ptr %2764, align 8, !tbaa !28
  %2766 = call double @llvm.fmuladd.f64(double %2760, double %2765, double -1.000000e+00)
  %2767 = call double @llvm.fmuladd.f64(double %2749, double %2766, double 2.625000e+00)
  %2768 = load ptr, ptr %10, align 8, !tbaa !5
  %2769 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2768, i32 0, i32 4
  %2770 = load ptr, ptr %2769, align 8, !tbaa !27
  %2771 = getelementptr inbounds double, ptr %2770, i64 2
  store double %2767, ptr %2771, align 8, !tbaa !28
  br label %2772

2772:                                             ; preds = %2707, %2704
  %2773 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %2774 = trunc i8 %2773 to i1
  br i1 %2774, label %2775, label %2881

2775:                                             ; preds = %2772
  %2776 = load ptr, ptr %9, align 8, !tbaa !5
  %2777 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2776, i32 0, i32 4
  %2778 = load ptr, ptr %2777, align 8, !tbaa !27
  %2779 = getelementptr inbounds double, ptr %2778, i64 1
  %2780 = load double, ptr %2779, align 8, !tbaa !28
  %2781 = fsub double %2780, 1.000000e+00
  %2782 = load ptr, ptr %12, align 8, !tbaa !5
  %2783 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2782, i32 0, i32 6
  %2784 = load ptr, ptr %2783, align 8, !tbaa !27
  %2785 = getelementptr inbounds ptr, ptr %2784, i64 0
  %2786 = load ptr, ptr %2785, align 8, !tbaa !5
  %2787 = getelementptr inbounds double, ptr %2786, i64 0
  store double %2781, ptr %2787, align 8, !tbaa !28
  %2788 = load ptr, ptr %9, align 8, !tbaa !5
  %2789 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2788, i32 0, i32 4
  %2790 = load ptr, ptr %2789, align 8, !tbaa !27
  %2791 = getelementptr inbounds double, ptr %2790, i64 0
  %2792 = load double, ptr %2791, align 8, !tbaa !28
  %2793 = load ptr, ptr %12, align 8, !tbaa !5
  %2794 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2793, i32 0, i32 6
  %2795 = load ptr, ptr %2794, align 8, !tbaa !27
  %2796 = getelementptr inbounds ptr, ptr %2795, i64 0
  %2797 = load ptr, ptr %2796, align 8, !tbaa !5
  %2798 = getelementptr inbounds double, ptr %2797, i64 1
  store double %2792, ptr %2798, align 8, !tbaa !28
  %2799 = load ptr, ptr %9, align 8, !tbaa !5
  %2800 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2799, i32 0, i32 4
  %2801 = load ptr, ptr %2800, align 8, !tbaa !27
  %2802 = getelementptr inbounds double, ptr %2801, i64 1
  %2803 = load double, ptr %2802, align 8, !tbaa !28
  %2804 = load ptr, ptr %9, align 8, !tbaa !5
  %2805 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2804, i32 0, i32 4
  %2806 = load ptr, ptr %2805, align 8, !tbaa !27
  %2807 = getelementptr inbounds double, ptr %2806, i64 1
  %2808 = load double, ptr %2807, align 8, !tbaa !28
  %2809 = call double @llvm.fmuladd.f64(double %2803, double %2808, double -1.000000e+00)
  %2810 = load ptr, ptr %12, align 8, !tbaa !5
  %2811 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2810, i32 0, i32 6
  %2812 = load ptr, ptr %2811, align 8, !tbaa !27
  %2813 = getelementptr inbounds ptr, ptr %2812, i64 1
  %2814 = load ptr, ptr %2813, align 8, !tbaa !5
  %2815 = getelementptr inbounds double, ptr %2814, i64 0
  store double %2809, ptr %2815, align 8, !tbaa !28
  %2816 = load ptr, ptr %9, align 8, !tbaa !5
  %2817 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2816, i32 0, i32 4
  %2818 = load ptr, ptr %2817, align 8, !tbaa !27
  %2819 = getelementptr inbounds double, ptr %2818, i64 0
  %2820 = load double, ptr %2819, align 8, !tbaa !28
  %2821 = fmul double %2820, 2.000000e+00
  %2822 = load ptr, ptr %9, align 8, !tbaa !5
  %2823 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2822, i32 0, i32 4
  %2824 = load ptr, ptr %2823, align 8, !tbaa !27
  %2825 = getelementptr inbounds double, ptr %2824, i64 1
  %2826 = load double, ptr %2825, align 8, !tbaa !28
  %2827 = fmul double %2821, %2826
  %2828 = load ptr, ptr %12, align 8, !tbaa !5
  %2829 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2828, i32 0, i32 6
  %2830 = load ptr, ptr %2829, align 8, !tbaa !27
  %2831 = getelementptr inbounds ptr, ptr %2830, i64 1
  %2832 = load ptr, ptr %2831, align 8, !tbaa !5
  %2833 = getelementptr inbounds double, ptr %2832, i64 1
  store double %2827, ptr %2833, align 8, !tbaa !28
  %2834 = load ptr, ptr %9, align 8, !tbaa !5
  %2835 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2834, i32 0, i32 4
  %2836 = load ptr, ptr %2835, align 8, !tbaa !27
  %2837 = getelementptr inbounds double, ptr %2836, i64 1
  %2838 = load double, ptr %2837, align 8, !tbaa !28
  %2839 = load ptr, ptr %9, align 8, !tbaa !5
  %2840 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2839, i32 0, i32 4
  %2841 = load ptr, ptr %2840, align 8, !tbaa !27
  %2842 = getelementptr inbounds double, ptr %2841, i64 1
  %2843 = load double, ptr %2842, align 8, !tbaa !28
  %2844 = fmul double %2838, %2843
  %2845 = load ptr, ptr %9, align 8, !tbaa !5
  %2846 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2845, i32 0, i32 4
  %2847 = load ptr, ptr %2846, align 8, !tbaa !27
  %2848 = getelementptr inbounds double, ptr %2847, i64 1
  %2849 = load double, ptr %2848, align 8, !tbaa !28
  %2850 = call double @llvm.fmuladd.f64(double %2844, double %2849, double -1.000000e+00)
  %2851 = load ptr, ptr %12, align 8, !tbaa !5
  %2852 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2851, i32 0, i32 6
  %2853 = load ptr, ptr %2852, align 8, !tbaa !27
  %2854 = getelementptr inbounds ptr, ptr %2853, i64 2
  %2855 = load ptr, ptr %2854, align 8, !tbaa !5
  %2856 = getelementptr inbounds double, ptr %2855, i64 0
  store double %2850, ptr %2856, align 8, !tbaa !28
  %2857 = load ptr, ptr %9, align 8, !tbaa !5
  %2858 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2857, i32 0, i32 4
  %2859 = load ptr, ptr %2858, align 8, !tbaa !27
  %2860 = getelementptr inbounds double, ptr %2859, i64 0
  %2861 = load double, ptr %2860, align 8, !tbaa !28
  %2862 = fmul double %2861, 3.000000e+00
  %2863 = load ptr, ptr %9, align 8, !tbaa !5
  %2864 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2863, i32 0, i32 4
  %2865 = load ptr, ptr %2864, align 8, !tbaa !27
  %2866 = getelementptr inbounds double, ptr %2865, i64 1
  %2867 = load double, ptr %2866, align 8, !tbaa !28
  %2868 = fmul double %2862, %2867
  %2869 = load ptr, ptr %9, align 8, !tbaa !5
  %2870 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2869, i32 0, i32 4
  %2871 = load ptr, ptr %2870, align 8, !tbaa !27
  %2872 = getelementptr inbounds double, ptr %2871, i64 1
  %2873 = load double, ptr %2872, align 8, !tbaa !28
  %2874 = fmul double %2868, %2873
  %2875 = load ptr, ptr %12, align 8, !tbaa !5
  %2876 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2875, i32 0, i32 6
  %2877 = load ptr, ptr %2876, align 8, !tbaa !27
  %2878 = getelementptr inbounds ptr, ptr %2877, i64 2
  %2879 = load ptr, ptr %2878, align 8, !tbaa !5
  %2880 = getelementptr inbounds double, ptr %2879, i64 1
  store double %2874, ptr %2880, align 8, !tbaa !28
  br label %2881

2881:                                             ; preds = %2775, %2772
  %2882 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %2882)
  store i32 1, ptr %36, align 4
  br label %5101

2883:                                             ; preds = %2699
  %2884 = load ptr, ptr %8, align 8, !tbaa !5
  %2885 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %2884, i32 0, i32 1
  %2886 = load i64, ptr %2885, align 8, !tbaa !35
  %2887 = icmp eq i64 %2886, 8
  br i1 %2887, label %2888, label %3022

2888:                                             ; preds = %2883
  %2889 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %2890 = trunc i8 %2889 to i1
  br i1 %2890, label %2891, label %2946

2891:                                             ; preds = %2888
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %2892

2892:                                             ; preds = %2942, %2891
  %2893 = load i64, ptr %16, align 8, !tbaa !25
  %2894 = icmp sle i64 %2893, 9
  br i1 %2894, label %2895, label %2945

2895:                                             ; preds = %2892
  %2896 = load i64, ptr %16, align 8, !tbaa !25
  %2897 = add nsw i64 %2896, 1
  %2898 = sitofp i64 %2897 to double
  %2899 = fmul double 1.000000e-01, %2898
  store double %2899, ptr %26, align 8, !tbaa !28
  %2900 = load double, ptr %26, align 8, !tbaa !28
  %2901 = fneg double %2900
  %2902 = load ptr, ptr %9, align 8, !tbaa !5
  %2903 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2902, i32 0, i32 4
  %2904 = load ptr, ptr %2903, align 8, !tbaa !27
  %2905 = getelementptr inbounds double, ptr %2904, i64 0
  %2906 = load double, ptr %2905, align 8, !tbaa !28
  %2907 = fmul double %2901, %2906
  %2908 = load ptr, ptr %14, align 8, !tbaa !5
  %2909 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2907, ptr noundef %2908)
  %2910 = load double, ptr %26, align 8, !tbaa !28
  %2911 = fneg double %2910
  %2912 = load ptr, ptr %9, align 8, !tbaa !5
  %2913 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2912, i32 0, i32 4
  %2914 = load ptr, ptr %2913, align 8, !tbaa !27
  %2915 = getelementptr inbounds double, ptr %2914, i64 1
  %2916 = load double, ptr %2915, align 8, !tbaa !28
  %2917 = fmul double %2911, %2916
  %2918 = load ptr, ptr %14, align 8, !tbaa !5
  %2919 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2917, ptr noundef %2918)
  %2920 = fsub double %2909, %2919
  %2921 = load ptr, ptr %9, align 8, !tbaa !5
  %2922 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2921, i32 0, i32 4
  %2923 = load ptr, ptr %2922, align 8, !tbaa !27
  %2924 = getelementptr inbounds double, ptr %2923, i64 2
  %2925 = load double, ptr %2924, align 8, !tbaa !28
  %2926 = load double, ptr %26, align 8, !tbaa !28
  %2927 = fneg double %2926
  %2928 = load ptr, ptr %14, align 8, !tbaa !5
  %2929 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2927, ptr noundef %2928)
  %2930 = load double, ptr %26, align 8, !tbaa !28
  %2931 = fmul double -1.000000e+01, %2930
  %2932 = load ptr, ptr %14, align 8, !tbaa !5
  %2933 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2931, ptr noundef %2932)
  %2934 = fsub double %2929, %2933
  %2935 = fneg double %2925
  %2936 = call double @llvm.fmuladd.f64(double %2935, double %2934, double %2920)
  %2937 = load ptr, ptr %10, align 8, !tbaa !5
  %2938 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2937, i32 0, i32 4
  %2939 = load ptr, ptr %2938, align 8, !tbaa !27
  %2940 = load i64, ptr %16, align 8, !tbaa !25
  %2941 = getelementptr inbounds double, ptr %2939, i64 %2940
  store double %2936, ptr %2941, align 8, !tbaa !28
  br label %2942

2942:                                             ; preds = %2895
  %2943 = load i64, ptr %16, align 8, !tbaa !25
  %2944 = add nsw i64 %2943, 1
  store i64 %2944, ptr %16, align 8, !tbaa !25
  br label %2892, !llvm.loop !57

2945:                                             ; preds = %2892
  br label %2946

2946:                                             ; preds = %2945, %2888
  %2947 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %2948 = trunc i8 %2947 to i1
  br i1 %2948, label %2949, label %3020

2949:                                             ; preds = %2946
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %2950

2950:                                             ; preds = %3016, %2949
  %2951 = load i64, ptr %16, align 8, !tbaa !25
  %2952 = icmp sle i64 %2951, 9
  br i1 %2952, label %2953, label %3019

2953:                                             ; preds = %2950
  %2954 = load i64, ptr %16, align 8, !tbaa !25
  %2955 = add nsw i64 %2954, 1
  %2956 = sitofp i64 %2955 to double
  %2957 = fmul double 1.000000e-01, %2956
  store double %2957, ptr %26, align 8, !tbaa !28
  %2958 = load double, ptr %26, align 8, !tbaa !28
  %2959 = fneg double %2958
  %2960 = load ptr, ptr %9, align 8, !tbaa !5
  %2961 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2960, i32 0, i32 4
  %2962 = load ptr, ptr %2961, align 8, !tbaa !27
  %2963 = getelementptr inbounds double, ptr %2962, i64 0
  %2964 = load double, ptr %2963, align 8, !tbaa !28
  %2965 = fmul double %2959, %2964
  %2966 = load ptr, ptr %14, align 8, !tbaa !5
  %2967 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2965, ptr noundef %2966)
  %2968 = load double, ptr %26, align 8, !tbaa !28
  %2969 = fneg double %2968
  %2970 = fmul double %2967, %2969
  %2971 = load ptr, ptr %12, align 8, !tbaa !5
  %2972 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2971, i32 0, i32 6
  %2973 = load ptr, ptr %2972, align 8, !tbaa !27
  %2974 = load i64, ptr %16, align 8, !tbaa !25
  %2975 = getelementptr inbounds ptr, ptr %2973, i64 %2974
  %2976 = load ptr, ptr %2975, align 8, !tbaa !5
  %2977 = getelementptr inbounds double, ptr %2976, i64 0
  store double %2970, ptr %2977, align 8, !tbaa !28
  %2978 = load double, ptr %26, align 8, !tbaa !28
  %2979 = fneg double %2978
  %2980 = load ptr, ptr %9, align 8, !tbaa !5
  %2981 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %2980, i32 0, i32 4
  %2982 = load ptr, ptr %2981, align 8, !tbaa !27
  %2983 = getelementptr inbounds double, ptr %2982, i64 1
  %2984 = load double, ptr %2983, align 8, !tbaa !28
  %2985 = fmul double %2979, %2984
  %2986 = load ptr, ptr %14, align 8, !tbaa !5
  %2987 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2985, ptr noundef %2986)
  %2988 = fneg double %2987
  %2989 = load double, ptr %26, align 8, !tbaa !28
  %2990 = fneg double %2989
  %2991 = fmul double %2988, %2990
  %2992 = load ptr, ptr %12, align 8, !tbaa !5
  %2993 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %2992, i32 0, i32 6
  %2994 = load ptr, ptr %2993, align 8, !tbaa !27
  %2995 = load i64, ptr %16, align 8, !tbaa !25
  %2996 = getelementptr inbounds ptr, ptr %2994, i64 %2995
  %2997 = load ptr, ptr %2996, align 8, !tbaa !5
  %2998 = getelementptr inbounds double, ptr %2997, i64 1
  store double %2991, ptr %2998, align 8, !tbaa !28
  %2999 = load double, ptr %26, align 8, !tbaa !28
  %3000 = fneg double %2999
  %3001 = load ptr, ptr %14, align 8, !tbaa !5
  %3002 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %3000, ptr noundef %3001)
  %3003 = load double, ptr %26, align 8, !tbaa !28
  %3004 = fmul double -1.000000e+01, %3003
  %3005 = load ptr, ptr %14, align 8, !tbaa !5
  %3006 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %3004, ptr noundef %3005)
  %3007 = fsub double %3002, %3006
  %3008 = fneg double %3007
  %3009 = load ptr, ptr %12, align 8, !tbaa !5
  %3010 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3009, i32 0, i32 6
  %3011 = load ptr, ptr %3010, align 8, !tbaa !27
  %3012 = load i64, ptr %16, align 8, !tbaa !25
  %3013 = getelementptr inbounds ptr, ptr %3011, i64 %3012
  %3014 = load ptr, ptr %3013, align 8, !tbaa !5
  %3015 = getelementptr inbounds double, ptr %3014, i64 2
  store double %3008, ptr %3015, align 8, !tbaa !28
  br label %3016

3016:                                             ; preds = %2953
  %3017 = load i64, ptr %16, align 8, !tbaa !25
  %3018 = add nsw i64 %3017, 1
  store i64 %3018, ptr %16, align 8, !tbaa !25
  br label %2950, !llvm.loop !58

3019:                                             ; preds = %2950
  br label %3020

3020:                                             ; preds = %3019, %2946
  %3021 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3021)
  store i32 1, ptr %36, align 4
  br label %5101

3022:                                             ; preds = %2883
  %3023 = load ptr, ptr %8, align 8, !tbaa !5
  %3024 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %3023, i32 0, i32 1
  %3025 = load i64, ptr %3024, align 8, !tbaa !35
  %3026 = icmp eq i64 %3025, 9
  br i1 %3026, label %3027, label %3261

3027:                                             ; preds = %3022
  %3028 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %3029 = trunc i8 %3028 to i1
  br i1 %3029, label %3030, label %3091

3030:                                             ; preds = %3027
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %3031

3031:                                             ; preds = %3087, %3030
  %3032 = load i64, ptr %16, align 8, !tbaa !25
  %3033 = icmp sle i64 %3032, 9
  br i1 %3033, label %3034, label %3090

3034:                                             ; preds = %3031
  %3035 = load i64, ptr %16, align 8, !tbaa !25
  %3036 = add nsw i64 %3035, 1
  %3037 = sitofp i64 %3036 to double
  %3038 = fmul double 1.000000e-02, %3037
  store double %3038, ptr %32, align 8, !tbaa !28
  %3039 = load double, ptr %32, align 8, !tbaa !28
  %3040 = load ptr, ptr %14, align 8, !tbaa !5
  %3041 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef %3039, ptr noundef %3040)
  %3042 = fmul double -5.000000e+01, %3041
  %3043 = load ptr, ptr %14, align 8, !tbaa !5
  %3044 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %3042, double noundef 0x3FE5555555555555, ptr noundef %3043)
  %3045 = fadd double 2.500000e+01, %3044
  store double %3045, ptr %30, align 8, !tbaa !28
  %3046 = load double, ptr %30, align 8, !tbaa !28
  %3047 = load ptr, ptr %8, align 8, !tbaa !5
  %3048 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %3047, i32 0, i32 3
  %3049 = load i64, ptr %3048, align 8, !tbaa !20
  %3050 = sitofp i64 %3049 to double
  %3051 = fmul double %3046, %3050
  %3052 = load i64, ptr %16, align 8, !tbaa !25
  %3053 = add nsw i64 %3052, 1
  %3054 = sitofp i64 %3053 to double
  %3055 = fmul double %3051, %3054
  %3056 = load ptr, ptr %9, align 8, !tbaa !5
  %3057 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3056, i32 0, i32 4
  %3058 = load ptr, ptr %3057, align 8, !tbaa !27
  %3059 = getelementptr inbounds double, ptr %3058, i64 1
  %3060 = load double, ptr %3059, align 8, !tbaa !28
  %3061 = fmul double %3055, %3060
  %3062 = load ptr, ptr %14, align 8, !tbaa !5
  %3063 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3061, ptr noundef %3062)
  %3064 = load ptr, ptr %9, align 8, !tbaa !5
  %3065 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3064, i32 0, i32 4
  %3066 = load ptr, ptr %3065, align 8, !tbaa !27
  %3067 = getelementptr inbounds double, ptr %3066, i64 2
  %3068 = load double, ptr %3067, align 8, !tbaa !28
  %3069 = load ptr, ptr %14, align 8, !tbaa !5
  %3070 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %3063, double noundef %3068, ptr noundef %3069)
  %3071 = fneg double %3070
  %3072 = load ptr, ptr %9, align 8, !tbaa !5
  %3073 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3072, i32 0, i32 4
  %3074 = load ptr, ptr %3073, align 8, !tbaa !27
  %3075 = getelementptr inbounds double, ptr %3074, i64 0
  %3076 = load double, ptr %3075, align 8, !tbaa !28
  %3077 = fdiv double %3071, %3076
  %3078 = load ptr, ptr %14, align 8, !tbaa !5
  %3079 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %3077, ptr noundef %3078)
  %3080 = load double, ptr %32, align 8, !tbaa !28
  %3081 = fsub double %3079, %3080
  %3082 = load ptr, ptr %10, align 8, !tbaa !5
  %3083 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3082, i32 0, i32 4
  %3084 = load ptr, ptr %3083, align 8, !tbaa !27
  %3085 = load i64, ptr %16, align 8, !tbaa !25
  %3086 = getelementptr inbounds double, ptr %3084, i64 %3085
  store double %3081, ptr %3086, align 8, !tbaa !28
  br label %3087

3087:                                             ; preds = %3034
  %3088 = load i64, ptr %16, align 8, !tbaa !25
  %3089 = add nsw i64 %3088, 1
  store i64 %3089, ptr %16, align 8, !tbaa !25
  br label %3031, !llvm.loop !59

3090:                                             ; preds = %3031
  br label %3091

3091:                                             ; preds = %3090, %3027
  %3092 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %3093 = trunc i8 %3092 to i1
  br i1 %3093, label %3094, label %3259

3094:                                             ; preds = %3091
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %3095

3095:                                             ; preds = %3255, %3094
  %3096 = load i64, ptr %16, align 8, !tbaa !25
  %3097 = icmp sle i64 %3096, 9
  br i1 %3097, label %3098, label %3258

3098:                                             ; preds = %3095
  %3099 = load i64, ptr %16, align 8, !tbaa !25
  %3100 = add nsw i64 %3099, 1
  %3101 = sitofp i64 %3100 to double
  %3102 = fmul double 1.000000e-02, %3101
  store double %3102, ptr %32, align 8, !tbaa !28
  %3103 = load double, ptr %32, align 8, !tbaa !28
  %3104 = load ptr, ptr %14, align 8, !tbaa !5
  %3105 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef %3103, ptr noundef %3104)
  %3106 = fmul double -5.000000e+01, %3105
  %3107 = load ptr, ptr %14, align 8, !tbaa !5
  %3108 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %3106, double noundef 0x3FE5555555555555, ptr noundef %3107)
  %3109 = fadd double 2.500000e+01, %3108
  store double %3109, ptr %30, align 8, !tbaa !28
  %3110 = load double, ptr %30, align 8, !tbaa !28
  %3111 = load ptr, ptr %8, align 8, !tbaa !5
  %3112 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %3111, i32 0, i32 3
  %3113 = load i64, ptr %3112, align 8, !tbaa !20
  %3114 = sitofp i64 %3113 to double
  %3115 = fmul double %3110, %3114
  %3116 = load i64, ptr %16, align 8, !tbaa !25
  %3117 = add nsw i64 %3116, 1
  %3118 = sitofp i64 %3117 to double
  %3119 = fmul double %3115, %3118
  %3120 = load ptr, ptr %14, align 8, !tbaa !5
  %3121 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %3119, ptr noundef %3120)
  store double %3121, ptr %29, align 8, !tbaa !28
  %3122 = load double, ptr %29, align 8, !tbaa !28
  %3123 = load ptr, ptr %9, align 8, !tbaa !5
  %3124 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3123, i32 0, i32 4
  %3125 = load ptr, ptr %3124, align 8, !tbaa !27
  %3126 = getelementptr inbounds double, ptr %3125, i64 1
  %3127 = load double, ptr %3126, align 8, !tbaa !28
  %3128 = fmul double %3122, %3127
  %3129 = load ptr, ptr %9, align 8, !tbaa !5
  %3130 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3129, i32 0, i32 4
  %3131 = load ptr, ptr %3130, align 8, !tbaa !27
  %3132 = getelementptr inbounds double, ptr %3131, i64 2
  %3133 = load double, ptr %3132, align 8, !tbaa !28
  %3134 = load ptr, ptr %14, align 8, !tbaa !5
  %3135 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %3128, double noundef %3133, ptr noundef %3134)
  %3136 = fneg double %3135
  %3137 = load ptr, ptr %9, align 8, !tbaa !5
  %3138 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3137, i32 0, i32 4
  %3139 = load ptr, ptr %3138, align 8, !tbaa !27
  %3140 = getelementptr inbounds double, ptr %3139, i64 0
  %3141 = load double, ptr %3140, align 8, !tbaa !28
  %3142 = fdiv double %3136, %3141
  %3143 = load ptr, ptr %14, align 8, !tbaa !5
  %3144 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %3142, ptr noundef %3143)
  store double %3144, ptr %26, align 8, !tbaa !28
  %3145 = load double, ptr %26, align 8, !tbaa !28
  %3146 = load double, ptr %29, align 8, !tbaa !28
  %3147 = load ptr, ptr %9, align 8, !tbaa !5
  %3148 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3147, i32 0, i32 4
  %3149 = load ptr, ptr %3148, align 8, !tbaa !27
  %3150 = getelementptr inbounds double, ptr %3149, i64 1
  %3151 = load double, ptr %3150, align 8, !tbaa !28
  %3152 = fmul double %3146, %3151
  %3153 = load ptr, ptr %9, align 8, !tbaa !5
  %3154 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3153, i32 0, i32 4
  %3155 = load ptr, ptr %3154, align 8, !tbaa !27
  %3156 = getelementptr inbounds double, ptr %3155, i64 2
  %3157 = load double, ptr %3156, align 8, !tbaa !28
  %3158 = load ptr, ptr %14, align 8, !tbaa !5
  %3159 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %3152, double noundef %3157, ptr noundef %3158)
  %3160 = fmul double %3145, %3159
  %3161 = load ptr, ptr %9, align 8, !tbaa !5
  %3162 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3161, i32 0, i32 4
  %3163 = load ptr, ptr %3162, align 8, !tbaa !27
  %3164 = getelementptr inbounds double, ptr %3163, i64 0
  %3165 = load double, ptr %3164, align 8, !tbaa !28
  %3166 = load ptr, ptr %14, align 8, !tbaa !5
  %3167 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %3165, ptr noundef %3166)
  %3168 = fdiv double %3160, %3167
  %3169 = load ptr, ptr %12, align 8, !tbaa !5
  %3170 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3169, i32 0, i32 6
  %3171 = load ptr, ptr %3170, align 8, !tbaa !27
  %3172 = load i64, ptr %16, align 8, !tbaa !25
  %3173 = getelementptr inbounds ptr, ptr %3171, i64 %3172
  %3174 = load ptr, ptr %3173, align 8, !tbaa !5
  %3175 = getelementptr inbounds double, ptr %3174, i64 0
  store double %3168, ptr %3175, align 8, !tbaa !28
  %3176 = load double, ptr %26, align 8, !tbaa !28
  %3177 = load ptr, ptr %9, align 8, !tbaa !5
  %3178 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3177, i32 0, i32 4
  %3179 = load ptr, ptr %3178, align 8, !tbaa !27
  %3180 = getelementptr inbounds double, ptr %3179, i64 0
  %3181 = load double, ptr %3180, align 8, !tbaa !28
  %3182 = fdiv double -1.000000e+00, %3181
  %3183 = fmul double %3176, %3182
  %3184 = load ptr, ptr %9, align 8, !tbaa !5
  %3185 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3184, i32 0, i32 4
  %3186 = load ptr, ptr %3185, align 8, !tbaa !27
  %3187 = getelementptr inbounds double, ptr %3186, i64 2
  %3188 = load double, ptr %3187, align 8, !tbaa !28
  %3189 = fmul double %3183, %3188
  %3190 = load double, ptr %29, align 8, !tbaa !28
  %3191 = load ptr, ptr %9, align 8, !tbaa !5
  %3192 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3191, i32 0, i32 4
  %3193 = load ptr, ptr %3192, align 8, !tbaa !27
  %3194 = getelementptr inbounds double, ptr %3193, i64 1
  %3195 = load double, ptr %3194, align 8, !tbaa !28
  %3196 = fmul double %3190, %3195
  %3197 = load ptr, ptr %9, align 8, !tbaa !5
  %3198 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3197, i32 0, i32 4
  %3199 = load ptr, ptr %3198, align 8, !tbaa !27
  %3200 = getelementptr inbounds double, ptr %3199, i64 2
  %3201 = load double, ptr %3200, align 8, !tbaa !28
  %3202 = fsub double %3201, 1.000000e+00
  %3203 = load ptr, ptr %14, align 8, !tbaa !5
  %3204 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %3196, double noundef %3202, ptr noundef %3203)
  %3205 = fmul double %3189, %3204
  %3206 = load double, ptr %29, align 8, !tbaa !28
  %3207 = fmul double %3205, %3206
  %3208 = load ptr, ptr %12, align 8, !tbaa !5
  %3209 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3208, i32 0, i32 6
  %3210 = load ptr, ptr %3209, align 8, !tbaa !27
  %3211 = load i64, ptr %16, align 8, !tbaa !25
  %3212 = getelementptr inbounds ptr, ptr %3210, i64 %3211
  %3213 = load ptr, ptr %3212, align 8, !tbaa !5
  %3214 = getelementptr inbounds double, ptr %3213, i64 1
  store double %3207, ptr %3214, align 8, !tbaa !28
  %3215 = load double, ptr %26, align 8, !tbaa !28
  %3216 = load ptr, ptr %9, align 8, !tbaa !5
  %3217 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3216, i32 0, i32 4
  %3218 = load ptr, ptr %3217, align 8, !tbaa !27
  %3219 = getelementptr inbounds double, ptr %3218, i64 0
  %3220 = load double, ptr %3219, align 8, !tbaa !28
  %3221 = fdiv double -1.000000e+00, %3220
  %3222 = fmul double %3215, %3221
  %3223 = load double, ptr %29, align 8, !tbaa !28
  %3224 = load ptr, ptr %9, align 8, !tbaa !5
  %3225 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3224, i32 0, i32 4
  %3226 = load ptr, ptr %3225, align 8, !tbaa !27
  %3227 = getelementptr inbounds double, ptr %3226, i64 1
  %3228 = load double, ptr %3227, align 8, !tbaa !28
  %3229 = fmul double %3223, %3228
  %3230 = load ptr, ptr %9, align 8, !tbaa !5
  %3231 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3230, i32 0, i32 4
  %3232 = load ptr, ptr %3231, align 8, !tbaa !27
  %3233 = getelementptr inbounds double, ptr %3232, i64 2
  %3234 = load double, ptr %3233, align 8, !tbaa !28
  %3235 = load ptr, ptr %14, align 8, !tbaa !5
  %3236 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %3229, double noundef %3234, ptr noundef %3235)
  %3237 = fmul double %3222, %3236
  %3238 = load double, ptr %29, align 8, !tbaa !28
  %3239 = load ptr, ptr %9, align 8, !tbaa !5
  %3240 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3239, i32 0, i32 4
  %3241 = load ptr, ptr %3240, align 8, !tbaa !27
  %3242 = getelementptr inbounds double, ptr %3241, i64 1
  %3243 = load double, ptr %3242, align 8, !tbaa !28
  %3244 = fmul double %3238, %3243
  %3245 = load ptr, ptr %14, align 8, !tbaa !5
  %3246 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef %3244, ptr noundef %3245)
  %3247 = fmul double %3237, %3246
  %3248 = load ptr, ptr %12, align 8, !tbaa !5
  %3249 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3248, i32 0, i32 6
  %3250 = load ptr, ptr %3249, align 8, !tbaa !27
  %3251 = load i64, ptr %16, align 8, !tbaa !25
  %3252 = getelementptr inbounds ptr, ptr %3250, i64 %3251
  %3253 = load ptr, ptr %3252, align 8, !tbaa !5
  %3254 = getelementptr inbounds double, ptr %3253, i64 2
  store double %3247, ptr %3254, align 8, !tbaa !28
  br label %3255

3255:                                             ; preds = %3098
  %3256 = load i64, ptr %16, align 8, !tbaa !25
  %3257 = add nsw i64 %3256, 1
  store i64 %3257, ptr %16, align 8, !tbaa !25
  br label %3095, !llvm.loop !60

3258:                                             ; preds = %3095
  br label %3259

3259:                                             ; preds = %3258, %3091
  %3260 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3260)
  store i32 1, ptr %36, align 4
  br label %5101

3261:                                             ; preds = %3022
  %3262 = load ptr, ptr %8, align 8, !tbaa !5
  %3263 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %3262, i32 0, i32 1
  %3264 = load i64, ptr %3263, align 8, !tbaa !35
  %3265 = icmp eq i64 %3264, 10
  br i1 %3265, label %3266, label %3506

3266:                                             ; preds = %3261
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %3267

3267:                                             ; preds = %3501, %3266
  %3268 = load i64, ptr %16, align 8, !tbaa !25
  %3269 = icmp sle i64 %3268, 14
  br i1 %3269, label %3270, label %3504

3270:                                             ; preds = %3267
  store double 0.000000e+00, ptr %30, align 8, !tbaa !28
  %3271 = load i64, ptr %16, align 8, !tbaa !25
  %3272 = icmp eq i64 %3271, 0
  br i1 %3272, label %3273, label %3274

3273:                                             ; preds = %3270
  store double 1.400000e-01, ptr %30, align 8, !tbaa !28
  br label %3274

3274:                                             ; preds = %3273, %3270
  %3275 = load i64, ptr %16, align 8, !tbaa !25
  %3276 = icmp eq i64 %3275, 1
  br i1 %3276, label %3277, label %3278

3277:                                             ; preds = %3274
  store double 1.800000e-01, ptr %30, align 8, !tbaa !28
  br label %3278

3278:                                             ; preds = %3277, %3274
  %3279 = load i64, ptr %16, align 8, !tbaa !25
  %3280 = icmp eq i64 %3279, 2
  br i1 %3280, label %3281, label %3282

3281:                                             ; preds = %3278
  store double 2.200000e-01, ptr %30, align 8, !tbaa !28
  br label %3282

3282:                                             ; preds = %3281, %3278
  %3283 = load i64, ptr %16, align 8, !tbaa !25
  %3284 = icmp eq i64 %3283, 3
  br i1 %3284, label %3285, label %3286

3285:                                             ; preds = %3282
  store double 2.500000e-01, ptr %30, align 8, !tbaa !28
  br label %3286

3286:                                             ; preds = %3285, %3282
  %3287 = load i64, ptr %16, align 8, !tbaa !25
  %3288 = icmp eq i64 %3287, 4
  br i1 %3288, label %3289, label %3290

3289:                                             ; preds = %3286
  store double 2.900000e-01, ptr %30, align 8, !tbaa !28
  br label %3290

3290:                                             ; preds = %3289, %3286
  %3291 = load i64, ptr %16, align 8, !tbaa !25
  %3292 = icmp eq i64 %3291, 5
  br i1 %3292, label %3293, label %3294

3293:                                             ; preds = %3290
  store double 3.200000e-01, ptr %30, align 8, !tbaa !28
  br label %3294

3294:                                             ; preds = %3293, %3290
  %3295 = load i64, ptr %16, align 8, !tbaa !25
  %3296 = icmp eq i64 %3295, 6
  br i1 %3296, label %3297, label %3298

3297:                                             ; preds = %3294
  store double 3.500000e-01, ptr %30, align 8, !tbaa !28
  br label %3298

3298:                                             ; preds = %3297, %3294
  %3299 = load i64, ptr %16, align 8, !tbaa !25
  %3300 = icmp eq i64 %3299, 7
  br i1 %3300, label %3301, label %3302

3301:                                             ; preds = %3298
  store double 3.900000e-01, ptr %30, align 8, !tbaa !28
  br label %3302

3302:                                             ; preds = %3301, %3298
  %3303 = load i64, ptr %16, align 8, !tbaa !25
  %3304 = icmp eq i64 %3303, 8
  br i1 %3304, label %3305, label %3306

3305:                                             ; preds = %3302
  store double 3.700000e-01, ptr %30, align 8, !tbaa !28
  br label %3306

3306:                                             ; preds = %3305, %3302
  %3307 = load i64, ptr %16, align 8, !tbaa !25
  %3308 = icmp eq i64 %3307, 9
  br i1 %3308, label %3309, label %3310

3309:                                             ; preds = %3306
  store double 5.800000e-01, ptr %30, align 8, !tbaa !28
  br label %3310

3310:                                             ; preds = %3309, %3306
  %3311 = load i64, ptr %16, align 8, !tbaa !25
  %3312 = icmp eq i64 %3311, 10
  br i1 %3312, label %3313, label %3314

3313:                                             ; preds = %3310
  store double 7.300000e-01, ptr %30, align 8, !tbaa !28
  br label %3314

3314:                                             ; preds = %3313, %3310
  %3315 = load i64, ptr %16, align 8, !tbaa !25
  %3316 = icmp eq i64 %3315, 11
  br i1 %3316, label %3317, label %3318

3317:                                             ; preds = %3314
  store double 0x3FEEB851EB851EB8, ptr %30, align 8, !tbaa !28
  br label %3318

3318:                                             ; preds = %3317, %3314
  %3319 = load i64, ptr %16, align 8, !tbaa !25
  %3320 = icmp eq i64 %3319, 12
  br i1 %3320, label %3321, label %3322

3321:                                             ; preds = %3318
  store double 1.340000e+00, ptr %30, align 8, !tbaa !28
  br label %3322

3322:                                             ; preds = %3321, %3318
  %3323 = load i64, ptr %16, align 8, !tbaa !25
  %3324 = icmp eq i64 %3323, 13
  br i1 %3324, label %3325, label %3326

3325:                                             ; preds = %3322
  store double 2.100000e+00, ptr %30, align 8, !tbaa !28
  br label %3326

3326:                                             ; preds = %3325, %3322
  %3327 = load i64, ptr %16, align 8, !tbaa !25
  %3328 = icmp eq i64 %3327, 14
  br i1 %3328, label %3329, label %3330

3329:                                             ; preds = %3326
  store double 4.390000e+00, ptr %30, align 8, !tbaa !28
  br label %3330

3330:                                             ; preds = %3329, %3326
  %3331 = load i64, ptr %16, align 8, !tbaa !25
  %3332 = add nsw i64 %3331, 1
  %3333 = sitofp i64 %3332 to double
  store double %3333, ptr %27, align 8, !tbaa !28
  %3334 = load i64, ptr %16, align 8, !tbaa !25
  %3335 = sub nsw i64 15, %3334
  %3336 = sitofp i64 %3335 to double
  store double %3336, ptr %28, align 8, !tbaa !28
  %3337 = load double, ptr %27, align 8, !tbaa !28
  %3338 = load double, ptr %28, align 8, !tbaa !28
  %3339 = load ptr, ptr %14, align 8, !tbaa !5
  %3340 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %3337, double noundef %3338, ptr noundef %3339)
  store double %3340, ptr %29, align 8, !tbaa !28
  %3341 = load double, ptr %28, align 8, !tbaa !28
  %3342 = load ptr, ptr %9, align 8, !tbaa !5
  %3343 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3342, i32 0, i32 4
  %3344 = load ptr, ptr %3343, align 8, !tbaa !27
  %3345 = getelementptr inbounds double, ptr %3344, i64 1
  %3346 = load double, ptr %3345, align 8, !tbaa !28
  %3347 = load double, ptr %29, align 8, !tbaa !28
  %3348 = load ptr, ptr %9, align 8, !tbaa !5
  %3349 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3348, i32 0, i32 4
  %3350 = load ptr, ptr %3349, align 8, !tbaa !27
  %3351 = getelementptr inbounds double, ptr %3350, i64 2
  %3352 = load double, ptr %3351, align 8, !tbaa !28
  %3353 = fmul double %3347, %3352
  %3354 = call double @llvm.fmuladd.f64(double %3341, double %3346, double %3353)
  %3355 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %3354, double noundef 1.000000e-300)
  br i1 %3355, label %3356, label %3455

3356:                                             ; preds = %3330
  %3357 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %3358 = trunc i8 %3357 to i1
  br i1 %3358, label %3359, label %3389

3359:                                             ; preds = %3356
  %3360 = load double, ptr %30, align 8, !tbaa !28
  %3361 = load ptr, ptr %9, align 8, !tbaa !5
  %3362 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3361, i32 0, i32 4
  %3363 = load ptr, ptr %3362, align 8, !tbaa !27
  %3364 = getelementptr inbounds double, ptr %3363, i64 0
  %3365 = load double, ptr %3364, align 8, !tbaa !28
  %3366 = load double, ptr %27, align 8, !tbaa !28
  %3367 = load double, ptr %28, align 8, !tbaa !28
  %3368 = load ptr, ptr %9, align 8, !tbaa !5
  %3369 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3368, i32 0, i32 4
  %3370 = load ptr, ptr %3369, align 8, !tbaa !27
  %3371 = getelementptr inbounds double, ptr %3370, i64 1
  %3372 = load double, ptr %3371, align 8, !tbaa !28
  %3373 = load double, ptr %29, align 8, !tbaa !28
  %3374 = load ptr, ptr %9, align 8, !tbaa !5
  %3375 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3374, i32 0, i32 4
  %3376 = load ptr, ptr %3375, align 8, !tbaa !27
  %3377 = getelementptr inbounds double, ptr %3376, i64 2
  %3378 = load double, ptr %3377, align 8, !tbaa !28
  %3379 = fmul double %3373, %3378
  %3380 = call double @llvm.fmuladd.f64(double %3367, double %3372, double %3379)
  %3381 = fdiv double %3366, %3380
  %3382 = fadd double %3365, %3381
  %3383 = fsub double %3360, %3382
  %3384 = load ptr, ptr %10, align 8, !tbaa !5
  %3385 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3384, i32 0, i32 4
  %3386 = load ptr, ptr %3385, align 8, !tbaa !27
  %3387 = load i64, ptr %16, align 8, !tbaa !25
  %3388 = getelementptr inbounds double, ptr %3386, i64 %3387
  store double %3383, ptr %3388, align 8, !tbaa !28
  br label %3389

3389:                                             ; preds = %3359, %3356
  %3390 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %3391 = trunc i8 %3390 to i1
  br i1 %3391, label %3392, label %3454

3392:                                             ; preds = %3389
  %3393 = load ptr, ptr %12, align 8, !tbaa !5
  %3394 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3393, i32 0, i32 6
  %3395 = load ptr, ptr %3394, align 8, !tbaa !27
  %3396 = load i64, ptr %16, align 8, !tbaa !25
  %3397 = getelementptr inbounds ptr, ptr %3395, i64 %3396
  %3398 = load ptr, ptr %3397, align 8, !tbaa !5
  %3399 = getelementptr inbounds double, ptr %3398, i64 0
  store double -1.000000e+00, ptr %3399, align 8, !tbaa !28
  %3400 = load double, ptr %27, align 8, !tbaa !28
  %3401 = load double, ptr %28, align 8, !tbaa !28
  %3402 = load ptr, ptr %9, align 8, !tbaa !5
  %3403 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3402, i32 0, i32 4
  %3404 = load ptr, ptr %3403, align 8, !tbaa !27
  %3405 = getelementptr inbounds double, ptr %3404, i64 1
  %3406 = load double, ptr %3405, align 8, !tbaa !28
  %3407 = load double, ptr %29, align 8, !tbaa !28
  %3408 = load ptr, ptr %9, align 8, !tbaa !5
  %3409 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3408, i32 0, i32 4
  %3410 = load ptr, ptr %3409, align 8, !tbaa !27
  %3411 = getelementptr inbounds double, ptr %3410, i64 2
  %3412 = load double, ptr %3411, align 8, !tbaa !28
  %3413 = fmul double %3407, %3412
  %3414 = call double @llvm.fmuladd.f64(double %3401, double %3406, double %3413)
  %3415 = load ptr, ptr %14, align 8, !tbaa !5
  %3416 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %3414, ptr noundef %3415)
  %3417 = fdiv double %3400, %3416
  %3418 = load double, ptr %28, align 8, !tbaa !28
  %3419 = fmul double %3417, %3418
  %3420 = load ptr, ptr %12, align 8, !tbaa !5
  %3421 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3420, i32 0, i32 6
  %3422 = load ptr, ptr %3421, align 8, !tbaa !27
  %3423 = load i64, ptr %16, align 8, !tbaa !25
  %3424 = getelementptr inbounds ptr, ptr %3422, i64 %3423
  %3425 = load ptr, ptr %3424, align 8, !tbaa !5
  %3426 = getelementptr inbounds double, ptr %3425, i64 1
  store double %3419, ptr %3426, align 8, !tbaa !28
  %3427 = load double, ptr %27, align 8, !tbaa !28
  %3428 = load double, ptr %28, align 8, !tbaa !28
  %3429 = load ptr, ptr %9, align 8, !tbaa !5
  %3430 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3429, i32 0, i32 4
  %3431 = load ptr, ptr %3430, align 8, !tbaa !27
  %3432 = getelementptr inbounds double, ptr %3431, i64 1
  %3433 = load double, ptr %3432, align 8, !tbaa !28
  %3434 = load double, ptr %29, align 8, !tbaa !28
  %3435 = load ptr, ptr %9, align 8, !tbaa !5
  %3436 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3435, i32 0, i32 4
  %3437 = load ptr, ptr %3436, align 8, !tbaa !27
  %3438 = getelementptr inbounds double, ptr %3437, i64 2
  %3439 = load double, ptr %3438, align 8, !tbaa !28
  %3440 = fmul double %3434, %3439
  %3441 = call double @llvm.fmuladd.f64(double %3428, double %3433, double %3440)
  %3442 = load ptr, ptr %14, align 8, !tbaa !5
  %3443 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %3441, ptr noundef %3442)
  %3444 = fdiv double %3427, %3443
  %3445 = load double, ptr %29, align 8, !tbaa !28
  %3446 = fmul double %3444, %3445
  %3447 = load ptr, ptr %12, align 8, !tbaa !5
  %3448 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3447, i32 0, i32 6
  %3449 = load ptr, ptr %3448, align 8, !tbaa !27
  %3450 = load i64, ptr %16, align 8, !tbaa !25
  %3451 = getelementptr inbounds ptr, ptr %3449, i64 %3450
  %3452 = load ptr, ptr %3451, align 8, !tbaa !5
  %3453 = getelementptr inbounds double, ptr %3452, i64 2
  store double %3446, ptr %3453, align 8, !tbaa !28
  br label %3454

3454:                                             ; preds = %3392, %3389
  br label %3500

3455:                                             ; preds = %3330
  %3456 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %3457 = trunc i8 %3456 to i1
  br i1 %3457, label %3458, label %3474

3458:                                             ; preds = %3455
  %3459 = load double, ptr %30, align 8, !tbaa !28
  %3460 = load ptr, ptr %9, align 8, !tbaa !5
  %3461 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3460, i32 0, i32 4
  %3462 = load ptr, ptr %3461, align 8, !tbaa !27
  %3463 = getelementptr inbounds double, ptr %3462, i64 0
  %3464 = load double, ptr %3463, align 8, !tbaa !28
  %3465 = load double, ptr %27, align 8, !tbaa !28
  %3466 = fdiv double %3465, 1.000000e-300
  %3467 = fadd double %3464, %3466
  %3468 = fsub double %3459, %3467
  %3469 = load ptr, ptr %10, align 8, !tbaa !5
  %3470 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3469, i32 0, i32 4
  %3471 = load ptr, ptr %3470, align 8, !tbaa !27
  %3472 = load i64, ptr %16, align 8, !tbaa !25
  %3473 = getelementptr inbounds double, ptr %3471, i64 %3472
  store double %3468, ptr %3473, align 8, !tbaa !28
  br label %3474

3474:                                             ; preds = %3458, %3455
  %3475 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %3476 = trunc i8 %3475 to i1
  br i1 %3476, label %3477, label %3499

3477:                                             ; preds = %3474
  %3478 = load ptr, ptr %12, align 8, !tbaa !5
  %3479 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3478, i32 0, i32 6
  %3480 = load ptr, ptr %3479, align 8, !tbaa !27
  %3481 = load i64, ptr %16, align 8, !tbaa !25
  %3482 = getelementptr inbounds ptr, ptr %3480, i64 %3481
  %3483 = load ptr, ptr %3482, align 8, !tbaa !5
  %3484 = getelementptr inbounds double, ptr %3483, i64 0
  store double 0.000000e+00, ptr %3484, align 8, !tbaa !28
  %3485 = load ptr, ptr %12, align 8, !tbaa !5
  %3486 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3485, i32 0, i32 6
  %3487 = load ptr, ptr %3486, align 8, !tbaa !27
  %3488 = load i64, ptr %16, align 8, !tbaa !25
  %3489 = getelementptr inbounds ptr, ptr %3487, i64 %3488
  %3490 = load ptr, ptr %3489, align 8, !tbaa !5
  %3491 = getelementptr inbounds double, ptr %3490, i64 1
  store double 0.000000e+00, ptr %3491, align 8, !tbaa !28
  %3492 = load ptr, ptr %12, align 8, !tbaa !5
  %3493 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3492, i32 0, i32 6
  %3494 = load ptr, ptr %3493, align 8, !tbaa !27
  %3495 = load i64, ptr %16, align 8, !tbaa !25
  %3496 = getelementptr inbounds ptr, ptr %3494, i64 %3495
  %3497 = load ptr, ptr %3496, align 8, !tbaa !5
  %3498 = getelementptr inbounds double, ptr %3497, i64 2
  store double 0.000000e+00, ptr %3498, align 8, !tbaa !28
  br label %3499

3499:                                             ; preds = %3477, %3474
  br label %3500

3500:                                             ; preds = %3499, %3454
  br label %3501

3501:                                             ; preds = %3500
  %3502 = load i64, ptr %16, align 8, !tbaa !25
  %3503 = add nsw i64 %3502, 1
  store i64 %3503, ptr %16, align 8, !tbaa !25
  br label %3267, !llvm.loop !61

3504:                                             ; preds = %3267
  %3505 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3505)
  store i32 1, ptr %36, align 4
  br label %5101

3506:                                             ; preds = %3261
  %3507 = load ptr, ptr %8, align 8, !tbaa !5
  %3508 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %3507, i32 0, i32 1
  %3509 = load i64, ptr %3508, align 8, !tbaa !35
  %3510 = icmp eq i64 %3509, 11
  br i1 %3510, label %3511, label %3765

3511:                                             ; preds = %3506
  %3512 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %3513 = trunc i8 %3512 to i1
  br i1 %3513, label %3514, label %3619

3514:                                             ; preds = %3511
  %3515 = load ptr, ptr %9, align 8, !tbaa !5
  %3516 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3515, i32 0, i32 4
  %3517 = load ptr, ptr %3516, align 8, !tbaa !27
  %3518 = getelementptr inbounds double, ptr %3517, i64 0
  %3519 = load double, ptr %3518, align 8, !tbaa !28
  %3520 = load ptr, ptr %14, align 8, !tbaa !5
  %3521 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %3519, ptr noundef %3520)
  %3522 = load ptr, ptr %9, align 8, !tbaa !5
  %3523 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3522, i32 0, i32 4
  %3524 = load ptr, ptr %3523, align 8, !tbaa !27
  %3525 = getelementptr inbounds double, ptr %3524, i64 1
  %3526 = load double, ptr %3525, align 8, !tbaa !28
  %3527 = fsub double %3521, %3526
  %3528 = fmul double 1.000000e+01, %3527
  %3529 = load ptr, ptr %10, align 8, !tbaa !5
  %3530 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3529, i32 0, i32 4
  %3531 = load ptr, ptr %3530, align 8, !tbaa !27
  %3532 = getelementptr inbounds double, ptr %3531, i64 0
  store double %3528, ptr %3532, align 8, !tbaa !28
  %3533 = load ptr, ptr %9, align 8, !tbaa !5
  %3534 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3533, i32 0, i32 4
  %3535 = load ptr, ptr %3534, align 8, !tbaa !27
  %3536 = getelementptr inbounds double, ptr %3535, i64 0
  %3537 = load double, ptr %3536, align 8, !tbaa !28
  %3538 = fsub double %3537, 1.000000e+00
  %3539 = load ptr, ptr %10, align 8, !tbaa !5
  %3540 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3539, i32 0, i32 4
  %3541 = load ptr, ptr %3540, align 8, !tbaa !27
  %3542 = getelementptr inbounds double, ptr %3541, i64 1
  store double %3538, ptr %3542, align 8, !tbaa !28
  %3543 = load ptr, ptr %9, align 8, !tbaa !5
  %3544 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3543, i32 0, i32 4
  %3545 = load ptr, ptr %3544, align 8, !tbaa !27
  %3546 = getelementptr inbounds double, ptr %3545, i64 2
  %3547 = load double, ptr %3546, align 8, !tbaa !28
  %3548 = fsub double %3547, 1.000000e+00
  %3549 = load ptr, ptr %10, align 8, !tbaa !5
  %3550 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3549, i32 0, i32 4
  %3551 = load ptr, ptr %3550, align 8, !tbaa !27
  %3552 = getelementptr inbounds double, ptr %3551, i64 2
  store double %3548, ptr %3552, align 8, !tbaa !28
  %3553 = load ptr, ptr %14, align 8, !tbaa !5
  %3554 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 9.000000e+01, ptr noundef %3553)
  %3555 = load ptr, ptr %9, align 8, !tbaa !5
  %3556 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3555, i32 0, i32 4
  %3557 = load ptr, ptr %3556, align 8, !tbaa !27
  %3558 = getelementptr inbounds double, ptr %3557, i64 2
  %3559 = load double, ptr %3558, align 8, !tbaa !28
  %3560 = load ptr, ptr %14, align 8, !tbaa !5
  %3561 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %3559, ptr noundef %3560)
  %3562 = load ptr, ptr %9, align 8, !tbaa !5
  %3563 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3562, i32 0, i32 4
  %3564 = load ptr, ptr %3563, align 8, !tbaa !27
  %3565 = getelementptr inbounds double, ptr %3564, i64 3
  %3566 = load double, ptr %3565, align 8, !tbaa !28
  %3567 = fsub double %3561, %3566
  %3568 = fmul double %3554, %3567
  %3569 = load ptr, ptr %10, align 8, !tbaa !5
  %3570 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3569, i32 0, i32 4
  %3571 = load ptr, ptr %3570, align 8, !tbaa !27
  %3572 = getelementptr inbounds double, ptr %3571, i64 3
  store double %3568, ptr %3572, align 8, !tbaa !28
  %3573 = load ptr, ptr %14, align 8, !tbaa !5
  %3574 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.010000e+01, ptr noundef %3573)
  %3575 = load ptr, ptr %9, align 8, !tbaa !5
  %3576 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3575, i32 0, i32 4
  %3577 = load ptr, ptr %3576, align 8, !tbaa !27
  %3578 = getelementptr inbounds double, ptr %3577, i64 1
  %3579 = load double, ptr %3578, align 8, !tbaa !28
  %3580 = fsub double %3579, 1.000000e+00
  %3581 = fmul double %3574, %3580
  %3582 = load ptr, ptr %10, align 8, !tbaa !5
  %3583 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3582, i32 0, i32 4
  %3584 = load ptr, ptr %3583, align 8, !tbaa !27
  %3585 = getelementptr inbounds double, ptr %3584, i64 4
  store double %3581, ptr %3585, align 8, !tbaa !28
  %3586 = load ptr, ptr %14, align 8, !tbaa !5
  %3587 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.010000e+01, ptr noundef %3586)
  %3588 = load ptr, ptr %9, align 8, !tbaa !5
  %3589 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3588, i32 0, i32 4
  %3590 = load ptr, ptr %3589, align 8, !tbaa !27
  %3591 = getelementptr inbounds double, ptr %3590, i64 3
  %3592 = load double, ptr %3591, align 8, !tbaa !28
  %3593 = fsub double %3592, 1.000000e+00
  %3594 = fmul double %3587, %3593
  %3595 = load ptr, ptr %10, align 8, !tbaa !5
  %3596 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3595, i32 0, i32 4
  %3597 = load ptr, ptr %3596, align 8, !tbaa !27
  %3598 = getelementptr inbounds double, ptr %3597, i64 5
  store double %3594, ptr %3598, align 8, !tbaa !28
  %3599 = load ptr, ptr %9, align 8, !tbaa !5
  %3600 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3599, i32 0, i32 4
  %3601 = load ptr, ptr %3600, align 8, !tbaa !27
  %3602 = getelementptr inbounds double, ptr %3601, i64 1
  %3603 = load double, ptr %3602, align 8, !tbaa !28
  %3604 = fsub double %3603, 1.000000e+00
  %3605 = fmul double 1.980000e+01, %3604
  %3606 = load ptr, ptr %9, align 8, !tbaa !5
  %3607 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3606, i32 0, i32 4
  %3608 = load ptr, ptr %3607, align 8, !tbaa !27
  %3609 = getelementptr inbounds double, ptr %3608, i64 3
  %3610 = load double, ptr %3609, align 8, !tbaa !28
  %3611 = fsub double %3610, 1.000000e+00
  %3612 = call double @llvm.fmuladd.f64(double %3605, double %3611, double 5.000000e-16)
  %3613 = load ptr, ptr %14, align 8, !tbaa !5
  %3614 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %3612, ptr noundef %3613)
  %3615 = load ptr, ptr %10, align 8, !tbaa !5
  %3616 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3615, i32 0, i32 4
  %3617 = load ptr, ptr %3616, align 8, !tbaa !27
  %3618 = getelementptr inbounds double, ptr %3617, i64 6
  store double %3614, ptr %3618, align 8, !tbaa !28
  br label %3619

3619:                                             ; preds = %3514, %3511
  %3620 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %3621 = trunc i8 %3620 to i1
  br i1 %3621, label %3622, label %3763

3622:                                             ; preds = %3619
  %3623 = load ptr, ptr %8, align 8, !tbaa !5
  %3624 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %3623, i32 0, i32 3
  %3625 = load i64, ptr %3624, align 8, !tbaa !20
  %3626 = load ptr, ptr %8, align 8, !tbaa !5
  %3627 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %3626, i32 0, i32 2
  %3628 = load i64, ptr %3627, align 8, !tbaa !24
  %3629 = load ptr, ptr %12, align 8, !tbaa !5
  %3630 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %3625, i64 noundef %3628, double noundef 0.000000e+00, ptr noundef %3629, ptr noundef %3630)
  %3631 = load ptr, ptr %9, align 8, !tbaa !5
  %3632 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3631, i32 0, i32 4
  %3633 = load ptr, ptr %3632, align 8, !tbaa !27
  %3634 = getelementptr inbounds double, ptr %3633, i64 0
  %3635 = load double, ptr %3634, align 8, !tbaa !28
  %3636 = fmul double 2.000000e+01, %3635
  %3637 = load ptr, ptr %12, align 8, !tbaa !5
  %3638 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3637, i32 0, i32 6
  %3639 = load ptr, ptr %3638, align 8, !tbaa !27
  %3640 = getelementptr inbounds ptr, ptr %3639, i64 0
  %3641 = load ptr, ptr %3640, align 8, !tbaa !5
  %3642 = getelementptr inbounds double, ptr %3641, i64 0
  store double %3636, ptr %3642, align 8, !tbaa !28
  %3643 = load ptr, ptr %12, align 8, !tbaa !5
  %3644 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3643, i32 0, i32 6
  %3645 = load ptr, ptr %3644, align 8, !tbaa !27
  %3646 = getelementptr inbounds ptr, ptr %3645, i64 0
  %3647 = load ptr, ptr %3646, align 8, !tbaa !5
  %3648 = getelementptr inbounds double, ptr %3647, i64 1
  store double -1.000000e+01, ptr %3648, align 8, !tbaa !28
  %3649 = load ptr, ptr %12, align 8, !tbaa !5
  %3650 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3649, i32 0, i32 6
  %3651 = load ptr, ptr %3650, align 8, !tbaa !27
  %3652 = getelementptr inbounds ptr, ptr %3651, i64 1
  %3653 = load ptr, ptr %3652, align 8, !tbaa !5
  %3654 = getelementptr inbounds double, ptr %3653, i64 0
  store double 1.000000e+00, ptr %3654, align 8, !tbaa !28
  %3655 = load ptr, ptr %12, align 8, !tbaa !5
  %3656 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3655, i32 0, i32 6
  %3657 = load ptr, ptr %3656, align 8, !tbaa !27
  %3658 = getelementptr inbounds ptr, ptr %3657, i64 2
  %3659 = load ptr, ptr %3658, align 8, !tbaa !5
  %3660 = getelementptr inbounds double, ptr %3659, i64 2
  store double 1.000000e+00, ptr %3660, align 8, !tbaa !28
  %3661 = load ptr, ptr %14, align 8, !tbaa !5
  %3662 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 9.000000e+01, ptr noundef %3661)
  %3663 = fmul double %3662, 2.000000e+00
  %3664 = load ptr, ptr %9, align 8, !tbaa !5
  %3665 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3664, i32 0, i32 4
  %3666 = load ptr, ptr %3665, align 8, !tbaa !27
  %3667 = getelementptr inbounds double, ptr %3666, i64 2
  %3668 = load double, ptr %3667, align 8, !tbaa !28
  %3669 = fmul double %3663, %3668
  %3670 = load ptr, ptr %12, align 8, !tbaa !5
  %3671 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3670, i32 0, i32 6
  %3672 = load ptr, ptr %3671, align 8, !tbaa !27
  %3673 = getelementptr inbounds ptr, ptr %3672, i64 3
  %3674 = load ptr, ptr %3673, align 8, !tbaa !5
  %3675 = getelementptr inbounds double, ptr %3674, i64 2
  store double %3669, ptr %3675, align 8, !tbaa !28
  %3676 = load ptr, ptr %14, align 8, !tbaa !5
  %3677 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 9.000000e+01, ptr noundef %3676)
  %3678 = fneg double %3677
  %3679 = load ptr, ptr %12, align 8, !tbaa !5
  %3680 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3679, i32 0, i32 6
  %3681 = load ptr, ptr %3680, align 8, !tbaa !27
  %3682 = getelementptr inbounds ptr, ptr %3681, i64 3
  %3683 = load ptr, ptr %3682, align 8, !tbaa !5
  %3684 = getelementptr inbounds double, ptr %3683, i64 3
  store double %3678, ptr %3684, align 8, !tbaa !28
  %3685 = load ptr, ptr %14, align 8, !tbaa !5
  %3686 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.010000e+01, ptr noundef %3685)
  %3687 = load ptr, ptr %12, align 8, !tbaa !5
  %3688 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3687, i32 0, i32 6
  %3689 = load ptr, ptr %3688, align 8, !tbaa !27
  %3690 = getelementptr inbounds ptr, ptr %3689, i64 4
  %3691 = load ptr, ptr %3690, align 8, !tbaa !5
  %3692 = getelementptr inbounds double, ptr %3691, i64 1
  store double %3686, ptr %3692, align 8, !tbaa !28
  %3693 = load ptr, ptr %14, align 8, !tbaa !5
  %3694 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.010000e+01, ptr noundef %3693)
  %3695 = load ptr, ptr %12, align 8, !tbaa !5
  %3696 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3695, i32 0, i32 6
  %3697 = load ptr, ptr %3696, align 8, !tbaa !27
  %3698 = getelementptr inbounds ptr, ptr %3697, i64 5
  %3699 = load ptr, ptr %3698, align 8, !tbaa !5
  %3700 = getelementptr inbounds double, ptr %3699, i64 3
  store double %3694, ptr %3700, align 8, !tbaa !28
  %3701 = load ptr, ptr %9, align 8, !tbaa !5
  %3702 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3701, i32 0, i32 4
  %3703 = load ptr, ptr %3702, align 8, !tbaa !27
  %3704 = getelementptr inbounds double, ptr %3703, i64 1
  %3705 = load double, ptr %3704, align 8, !tbaa !28
  %3706 = fsub double %3705, 1.000000e+00
  %3707 = fmul double 1.980000e+01, %3706
  %3708 = load ptr, ptr %9, align 8, !tbaa !5
  %3709 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3708, i32 0, i32 4
  %3710 = load ptr, ptr %3709, align 8, !tbaa !27
  %3711 = getelementptr inbounds double, ptr %3710, i64 3
  %3712 = load double, ptr %3711, align 8, !tbaa !28
  %3713 = fsub double %3712, 1.000000e+00
  %3714 = call double @llvm.fmuladd.f64(double %3707, double %3713, double 5.000000e-16)
  %3715 = load ptr, ptr %14, align 8, !tbaa !5
  %3716 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %3714, ptr noundef %3715)
  %3717 = fdiv double 5.000000e-01, %3716
  %3718 = fmul double %3717, 1.980000e+01
  %3719 = load ptr, ptr %9, align 8, !tbaa !5
  %3720 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3719, i32 0, i32 4
  %3721 = load ptr, ptr %3720, align 8, !tbaa !27
  %3722 = getelementptr inbounds double, ptr %3721, i64 3
  %3723 = load double, ptr %3722, align 8, !tbaa !28
  %3724 = fsub double %3723, 1.000000e+00
  %3725 = fmul double %3718, %3724
  %3726 = load ptr, ptr %12, align 8, !tbaa !5
  %3727 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3726, i32 0, i32 6
  %3728 = load ptr, ptr %3727, align 8, !tbaa !27
  %3729 = getelementptr inbounds ptr, ptr %3728, i64 6
  %3730 = load ptr, ptr %3729, align 8, !tbaa !5
  %3731 = getelementptr inbounds double, ptr %3730, i64 1
  store double %3725, ptr %3731, align 8, !tbaa !28
  %3732 = load ptr, ptr %9, align 8, !tbaa !5
  %3733 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3732, i32 0, i32 4
  %3734 = load ptr, ptr %3733, align 8, !tbaa !27
  %3735 = getelementptr inbounds double, ptr %3734, i64 1
  %3736 = load double, ptr %3735, align 8, !tbaa !28
  %3737 = fsub double %3736, 1.000000e+00
  %3738 = fmul double 1.980000e+01, %3737
  %3739 = load ptr, ptr %9, align 8, !tbaa !5
  %3740 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3739, i32 0, i32 4
  %3741 = load ptr, ptr %3740, align 8, !tbaa !27
  %3742 = getelementptr inbounds double, ptr %3741, i64 3
  %3743 = load double, ptr %3742, align 8, !tbaa !28
  %3744 = fsub double %3743, 1.000000e+00
  %3745 = call double @llvm.fmuladd.f64(double %3738, double %3744, double 5.000000e-16)
  %3746 = load ptr, ptr %14, align 8, !tbaa !5
  %3747 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %3745, ptr noundef %3746)
  %3748 = fdiv double 5.000000e-01, %3747
  %3749 = fmul double %3748, 1.980000e+01
  %3750 = load ptr, ptr %9, align 8, !tbaa !5
  %3751 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3750, i32 0, i32 4
  %3752 = load ptr, ptr %3751, align 8, !tbaa !27
  %3753 = getelementptr inbounds double, ptr %3752, i64 1
  %3754 = load double, ptr %3753, align 8, !tbaa !28
  %3755 = fsub double %3754, 1.000000e+00
  %3756 = fmul double %3749, %3755
  %3757 = load ptr, ptr %12, align 8, !tbaa !5
  %3758 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3757, i32 0, i32 6
  %3759 = load ptr, ptr %3758, align 8, !tbaa !27
  %3760 = getelementptr inbounds ptr, ptr %3759, i64 6
  %3761 = load ptr, ptr %3760, align 8, !tbaa !5
  %3762 = getelementptr inbounds double, ptr %3761, i64 3
  store double %3756, ptr %3762, align 8, !tbaa !28
  br label %3763

3763:                                             ; preds = %3622, %3619
  %3764 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3764)
  store i32 1, ptr %36, align 4
  br label %5101

3765:                                             ; preds = %3506
  %3766 = load ptr, ptr %8, align 8, !tbaa !5
  %3767 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %3766, i32 0, i32 1
  %3768 = load i64, ptr %3767, align 8, !tbaa !35
  %3769 = icmp eq i64 %3768, 12
  br i1 %3769, label %3770, label %3875

3770:                                             ; preds = %3765
  %3771 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %3772 = trunc i8 %3771 to i1
  br i1 %3772, label %3773, label %3782

3773:                                             ; preds = %3770
  %3774 = load ptr, ptr %8, align 8, !tbaa !5
  %3775 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %3774, i32 0, i32 3
  %3776 = load i64, ptr %3775, align 8, !tbaa !20
  %3777 = load ptr, ptr %8, align 8, !tbaa !5
  %3778 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %3777, i32 0, i32 2
  %3779 = load i64, ptr %3778, align 8, !tbaa !24
  %3780 = load ptr, ptr %12, align 8, !tbaa !5
  %3781 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %3776, i64 noundef %3779, double noundef 0.000000e+00, ptr noundef %3780, ptr noundef %3781)
  br label %3782

3782:                                             ; preds = %3773, %3770
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %3783

3783:                                             ; preds = %3829, %3782
  %3784 = load i64, ptr %16, align 8, !tbaa !25
  %3785 = icmp sle i64 %3784, 7
  br i1 %3785, label %3786, label %3832

3786:                                             ; preds = %3783
  %3787 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %3788 = trunc i8 %3787 to i1
  br i1 %3788, label %3789, label %3806

3789:                                             ; preds = %3786
  %3790 = load ptr, ptr %14, align 8, !tbaa !5
  %3791 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %3790)
  %3792 = load ptr, ptr %9, align 8, !tbaa !5
  %3793 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3792, i32 0, i32 4
  %3794 = load ptr, ptr %3793, align 8, !tbaa !27
  %3795 = load i64, ptr %16, align 8, !tbaa !25
  %3796 = getelementptr inbounds double, ptr %3794, i64 %3795
  %3797 = load double, ptr %3796, align 8, !tbaa !28
  %3798 = load ptr, ptr %14, align 8, !tbaa !5
  %3799 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %3797, ptr noundef %3798)
  %3800 = fmul double %3791, %3799
  %3801 = load ptr, ptr %10, align 8, !tbaa !5
  %3802 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3801, i32 0, i32 4
  %3803 = load ptr, ptr %3802, align 8, !tbaa !27
  %3804 = load i64, ptr %16, align 8, !tbaa !25
  %3805 = getelementptr inbounds double, ptr %3803, i64 %3804
  store double %3800, ptr %3805, align 8, !tbaa !28
  br label %3806

3806:                                             ; preds = %3789, %3786
  %3807 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %3808 = trunc i8 %3807 to i1
  br i1 %3808, label %3809, label %3828

3809:                                             ; preds = %3806
  %3810 = load ptr, ptr %14, align 8, !tbaa !5
  %3811 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %3810)
  %3812 = fmul double 2.000000e+00, %3811
  %3813 = load ptr, ptr %9, align 8, !tbaa !5
  %3814 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3813, i32 0, i32 4
  %3815 = load ptr, ptr %3814, align 8, !tbaa !27
  %3816 = load i64, ptr %16, align 8, !tbaa !25
  %3817 = getelementptr inbounds double, ptr %3815, i64 %3816
  %3818 = load double, ptr %3817, align 8, !tbaa !28
  %3819 = fmul double %3812, %3818
  %3820 = load ptr, ptr %12, align 8, !tbaa !5
  %3821 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %3820, i32 0, i32 6
  %3822 = load ptr, ptr %3821, align 8, !tbaa !27
  %3823 = load i64, ptr %16, align 8, !tbaa !25
  %3824 = getelementptr inbounds ptr, ptr %3822, i64 %3823
  %3825 = load ptr, ptr %3824, align 8, !tbaa !5
  %3826 = load i64, ptr %16, align 8, !tbaa !25
  %3827 = getelementptr inbounds double, ptr %3825, i64 %3826
  store double %3819, ptr %3827, align 8, !tbaa !28
  br label %3828

3828:                                             ; preds = %3809, %3806
  br label %3829

3829:                                             ; preds = %3828
  %3830 = load i64, ptr %16, align 8, !tbaa !25
  %3831 = add nsw i64 %3830, 1
  store i64 %3831, ptr %16, align 8, !tbaa !25
  br label %3783, !llvm.loop !62

3832:                                             ; preds = %3783
  %3833 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %3834 = trunc i8 %3833 to i1
  br i1 %3834, label %3835, label %3873

3835:                                             ; preds = %3832
  %3836 = load ptr, ptr %10, align 8, !tbaa !5
  %3837 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3836, i32 0, i32 4
  %3838 = load ptr, ptr %3837, align 8, !tbaa !27
  %3839 = getelementptr inbounds double, ptr %3838, i64 8
  store double 0.000000e+00, ptr %3839, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %3840

3840:                                             ; preds = %3858, %3835
  %3841 = load i64, ptr %16, align 8, !tbaa !25
  %3842 = icmp sle i64 %3841, 8
  br i1 %3842, label %3843, label %3861

3843:                                             ; preds = %3840
  %3844 = load ptr, ptr %10, align 8, !tbaa !5
  %3845 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3844, i32 0, i32 4
  %3846 = load ptr, ptr %3845, align 8, !tbaa !27
  %3847 = getelementptr inbounds double, ptr %3846, i64 8
  %3848 = load double, ptr %3847, align 8, !tbaa !28
  %3849 = load i64, ptr %16, align 8, !tbaa !25
  %3850 = sitofp i64 %3849 to double
  %3851 = load ptr, ptr %14, align 8, !tbaa !5
  %3852 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.200000e+00, double noundef %3850, ptr noundef %3851)
  %3853 = fadd double %3848, %3852
  %3854 = load ptr, ptr %10, align 8, !tbaa !5
  %3855 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3854, i32 0, i32 4
  %3856 = load ptr, ptr %3855, align 8, !tbaa !27
  %3857 = getelementptr inbounds double, ptr %3856, i64 8
  store double %3853, ptr %3857, align 8, !tbaa !28
  br label %3858

3858:                                             ; preds = %3843
  %3859 = load i64, ptr %16, align 8, !tbaa !25
  %3860 = add nsw i64 %3859, 1
  store i64 %3860, ptr %16, align 8, !tbaa !25
  br label %3840, !llvm.loop !63

3861:                                             ; preds = %3840
  %3862 = load ptr, ptr %10, align 8, !tbaa !5
  %3863 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3862, i32 0, i32 4
  %3864 = load ptr, ptr %3863, align 8, !tbaa !27
  %3865 = getelementptr inbounds double, ptr %3864, i64 8
  %3866 = load double, ptr %3865, align 8, !tbaa !28
  %3867 = load ptr, ptr %14, align 8, !tbaa !5
  %3868 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %3866, ptr noundef %3867)
  %3869 = load ptr, ptr %10, align 8, !tbaa !5
  %3870 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3869, i32 0, i32 4
  %3871 = load ptr, ptr %3870, align 8, !tbaa !27
  %3872 = getelementptr inbounds double, ptr %3871, i64 8
  store double %3868, ptr %3872, align 8, !tbaa !28
  br label %3873

3873:                                             ; preds = %3861, %3832
  %3874 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %3874)
  store i32 1, ptr %36, align 4
  br label %5101

3875:                                             ; preds = %3765
  %3876 = load ptr, ptr %8, align 8, !tbaa !5
  %3877 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %3876, i32 0, i32 1
  %3878 = load i64, ptr %3877, align 8, !tbaa !35
  %3879 = icmp eq i64 %3878, 13
  br i1 %3879, label %3880, label %4186

3880:                                             ; preds = %3875
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %3881

3881:                                             ; preds = %4181, %3880
  %3882 = load i64, ptr %16, align 8, !tbaa !25
  %3883 = icmp sle i64 %3882, 10
  br i1 %3883, label %3884, label %4184

3884:                                             ; preds = %3881
  store double 0.000000e+00, ptr %30, align 8, !tbaa !28
  store double 0.000000e+00, ptr %31, align 8, !tbaa !28
  %3885 = load i64, ptr %16, align 8, !tbaa !25
  %3886 = icmp eq i64 %3885, 0
  br i1 %3886, label %3887, label %3888

3887:                                             ; preds = %3884
  store double 1.957000e-01, ptr %30, align 8, !tbaa !28
  store double 4.000000e+00, ptr %31, align 8, !tbaa !28
  br label %3888

3888:                                             ; preds = %3887, %3884
  %3889 = load i64, ptr %16, align 8, !tbaa !25
  %3890 = icmp eq i64 %3889, 1
  br i1 %3890, label %3891, label %3892

3891:                                             ; preds = %3888
  store double 1.947000e-01, ptr %30, align 8, !tbaa !28
  store double 2.000000e+00, ptr %31, align 8, !tbaa !28
  br label %3892

3892:                                             ; preds = %3891, %3888
  %3893 = load i64, ptr %16, align 8, !tbaa !25
  %3894 = icmp eq i64 %3893, 2
  br i1 %3894, label %3895, label %3896

3895:                                             ; preds = %3892
  store double 1.735000e-01, ptr %30, align 8, !tbaa !28
  store double 1.000000e+00, ptr %31, align 8, !tbaa !28
  br label %3896

3896:                                             ; preds = %3895, %3892
  %3897 = load i64, ptr %16, align 8, !tbaa !25
  %3898 = icmp eq i64 %3897, 3
  br i1 %3898, label %3899, label %3900

3899:                                             ; preds = %3896
  store double 1.600000e-01, ptr %30, align 8, !tbaa !28
  store double 5.000000e-01, ptr %31, align 8, !tbaa !28
  br label %3900

3900:                                             ; preds = %3899, %3896
  %3901 = load i64, ptr %16, align 8, !tbaa !25
  %3902 = icmp eq i64 %3901, 4
  br i1 %3902, label %3903, label %3904

3903:                                             ; preds = %3900
  store double 8.440000e-02, ptr %30, align 8, !tbaa !28
  store double 2.500000e-01, ptr %31, align 8, !tbaa !28
  br label %3904

3904:                                             ; preds = %3903, %3900
  %3905 = load i64, ptr %16, align 8, !tbaa !25
  %3906 = icmp eq i64 %3905, 5
  br i1 %3906, label %3907, label %3908

3907:                                             ; preds = %3904
  store double 6.270000e-02, ptr %30, align 8, !tbaa !28
  store double 1.670000e-01, ptr %31, align 8, !tbaa !28
  br label %3908

3908:                                             ; preds = %3907, %3904
  %3909 = load i64, ptr %16, align 8, !tbaa !25
  %3910 = icmp eq i64 %3909, 6
  br i1 %3910, label %3911, label %3912

3911:                                             ; preds = %3908
  store double 4.560000e-02, ptr %30, align 8, !tbaa !28
  store double 1.250000e-01, ptr %31, align 8, !tbaa !28
  br label %3912

3912:                                             ; preds = %3911, %3908
  %3913 = load i64, ptr %16, align 8, !tbaa !25
  %3914 = icmp eq i64 %3913, 7
  br i1 %3914, label %3915, label %3916

3915:                                             ; preds = %3912
  store double 3.420000e-02, ptr %30, align 8, !tbaa !28
  store double 1.000000e-01, ptr %31, align 8, !tbaa !28
  br label %3916

3916:                                             ; preds = %3915, %3912
  %3917 = load i64, ptr %16, align 8, !tbaa !25
  %3918 = icmp eq i64 %3917, 8
  br i1 %3918, label %3919, label %3920

3919:                                             ; preds = %3916
  store double 3.230000e-02, ptr %30, align 8, !tbaa !28
  store double 0x3FB5532617C1BDA5, ptr %31, align 8, !tbaa !28
  br label %3920

3920:                                             ; preds = %3919, %3916
  %3921 = load i64, ptr %16, align 8, !tbaa !25
  %3922 = icmp eq i64 %3921, 9
  br i1 %3922, label %3923, label %3924

3923:                                             ; preds = %3920
  store double 2.350000e-02, ptr %30, align 8, !tbaa !28
  store double 7.140000e-02, ptr %31, align 8, !tbaa !28
  br label %3924

3924:                                             ; preds = %3923, %3920
  %3925 = load i64, ptr %16, align 8, !tbaa !25
  %3926 = icmp eq i64 %3925, 10
  br i1 %3926, label %3927, label %3928

3927:                                             ; preds = %3924
  store double 2.460000e-02, ptr %30, align 8, !tbaa !28
  store double 6.250000e-02, ptr %31, align 8, !tbaa !28
  br label %3928

3928:                                             ; preds = %3927, %3924
  %3929 = load double, ptr %31, align 8, !tbaa !28
  %3930 = load double, ptr %31, align 8, !tbaa !28
  %3931 = load double, ptr %31, align 8, !tbaa !28
  %3932 = load ptr, ptr %9, align 8, !tbaa !5
  %3933 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3932, i32 0, i32 4
  %3934 = load ptr, ptr %3933, align 8, !tbaa !27
  %3935 = getelementptr inbounds double, ptr %3934, i64 2
  %3936 = load double, ptr %3935, align 8, !tbaa !28
  %3937 = fmul double %3931, %3936
  %3938 = call double @llvm.fmuladd.f64(double %3929, double %3930, double %3937)
  %3939 = load ptr, ptr %9, align 8, !tbaa !5
  %3940 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3939, i32 0, i32 4
  %3941 = load ptr, ptr %3940, align 8, !tbaa !27
  %3942 = getelementptr inbounds double, ptr %3941, i64 3
  %3943 = load double, ptr %3942, align 8, !tbaa !28
  %3944 = fadd double %3938, %3943
  %3945 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %3944, double noundef 0x3BC79CA10C924223)
  br i1 %3945, label %3946, label %4136

3946:                                             ; preds = %3928
  %3947 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %3948 = trunc i8 %3947 to i1
  br i1 %3948, label %3949, label %3990

3949:                                             ; preds = %3946
  %3950 = load double, ptr %30, align 8, !tbaa !28
  %3951 = load ptr, ptr %9, align 8, !tbaa !5
  %3952 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3951, i32 0, i32 4
  %3953 = load ptr, ptr %3952, align 8, !tbaa !27
  %3954 = getelementptr inbounds double, ptr %3953, i64 0
  %3955 = load double, ptr %3954, align 8, !tbaa !28
  %3956 = load double, ptr %31, align 8, !tbaa !28
  %3957 = load double, ptr %31, align 8, !tbaa !28
  %3958 = load double, ptr %31, align 8, !tbaa !28
  %3959 = load ptr, ptr %9, align 8, !tbaa !5
  %3960 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3959, i32 0, i32 4
  %3961 = load ptr, ptr %3960, align 8, !tbaa !27
  %3962 = getelementptr inbounds double, ptr %3961, i64 1
  %3963 = load double, ptr %3962, align 8, !tbaa !28
  %3964 = fmul double %3958, %3963
  %3965 = call double @llvm.fmuladd.f64(double %3956, double %3957, double %3964)
  %3966 = fmul double %3955, %3965
  %3967 = load double, ptr %31, align 8, !tbaa !28
  %3968 = load double, ptr %31, align 8, !tbaa !28
  %3969 = load double, ptr %31, align 8, !tbaa !28
  %3970 = load ptr, ptr %9, align 8, !tbaa !5
  %3971 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3970, i32 0, i32 4
  %3972 = load ptr, ptr %3971, align 8, !tbaa !27
  %3973 = getelementptr inbounds double, ptr %3972, i64 2
  %3974 = load double, ptr %3973, align 8, !tbaa !28
  %3975 = fmul double %3969, %3974
  %3976 = call double @llvm.fmuladd.f64(double %3967, double %3968, double %3975)
  %3977 = load ptr, ptr %9, align 8, !tbaa !5
  %3978 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3977, i32 0, i32 4
  %3979 = load ptr, ptr %3978, align 8, !tbaa !27
  %3980 = getelementptr inbounds double, ptr %3979, i64 3
  %3981 = load double, ptr %3980, align 8, !tbaa !28
  %3982 = fadd double %3976, %3981
  %3983 = fdiv double %3966, %3982
  %3984 = fsub double %3950, %3983
  %3985 = load ptr, ptr %10, align 8, !tbaa !5
  %3986 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3985, i32 0, i32 4
  %3987 = load ptr, ptr %3986, align 8, !tbaa !27
  %3988 = load i64, ptr %16, align 8, !tbaa !25
  %3989 = getelementptr inbounds double, ptr %3987, i64 %3988
  store double %3984, ptr %3989, align 8, !tbaa !28
  br label %3990

3990:                                             ; preds = %3949, %3946
  %3991 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %3992 = trunc i8 %3991 to i1
  br i1 %3992, label %3993, label %4135

3993:                                             ; preds = %3990
  %3994 = load double, ptr %31, align 8, !tbaa !28
  %3995 = load double, ptr %31, align 8, !tbaa !28
  %3996 = load double, ptr %31, align 8, !tbaa !28
  %3997 = load ptr, ptr %9, align 8, !tbaa !5
  %3998 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %3997, i32 0, i32 4
  %3999 = load ptr, ptr %3998, align 8, !tbaa !27
  %4000 = getelementptr inbounds double, ptr %3999, i64 1
  %4001 = load double, ptr %4000, align 8, !tbaa !28
  %4002 = fmul double %3996, %4001
  %4003 = call double @llvm.fmuladd.f64(double %3994, double %3995, double %4002)
  %4004 = fneg double %4003
  %4005 = load double, ptr %31, align 8, !tbaa !28
  %4006 = load double, ptr %31, align 8, !tbaa !28
  %4007 = load double, ptr %31, align 8, !tbaa !28
  %4008 = load ptr, ptr %9, align 8, !tbaa !5
  %4009 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4008, i32 0, i32 4
  %4010 = load ptr, ptr %4009, align 8, !tbaa !27
  %4011 = getelementptr inbounds double, ptr %4010, i64 2
  %4012 = load double, ptr %4011, align 8, !tbaa !28
  %4013 = fmul double %4007, %4012
  %4014 = call double @llvm.fmuladd.f64(double %4005, double %4006, double %4013)
  %4015 = load ptr, ptr %9, align 8, !tbaa !5
  %4016 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4015, i32 0, i32 4
  %4017 = load ptr, ptr %4016, align 8, !tbaa !27
  %4018 = getelementptr inbounds double, ptr %4017, i64 3
  %4019 = load double, ptr %4018, align 8, !tbaa !28
  %4020 = fadd double %4014, %4019
  %4021 = fdiv double %4004, %4020
  %4022 = load ptr, ptr %12, align 8, !tbaa !5
  %4023 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4022, i32 0, i32 6
  %4024 = load ptr, ptr %4023, align 8, !tbaa !27
  %4025 = load i64, ptr %16, align 8, !tbaa !25
  %4026 = getelementptr inbounds ptr, ptr %4024, i64 %4025
  %4027 = load ptr, ptr %4026, align 8, !tbaa !5
  %4028 = getelementptr inbounds double, ptr %4027, i64 0
  store double %4021, ptr %4028, align 8, !tbaa !28
  %4029 = load ptr, ptr %9, align 8, !tbaa !5
  %4030 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4029, i32 0, i32 4
  %4031 = load ptr, ptr %4030, align 8, !tbaa !27
  %4032 = getelementptr inbounds double, ptr %4031, i64 0
  %4033 = load double, ptr %4032, align 8, !tbaa !28
  %4034 = fneg double %4033
  %4035 = load double, ptr %31, align 8, !tbaa !28
  %4036 = fmul double %4034, %4035
  %4037 = load double, ptr %31, align 8, !tbaa !28
  %4038 = load double, ptr %31, align 8, !tbaa !28
  %4039 = load double, ptr %31, align 8, !tbaa !28
  %4040 = load ptr, ptr %9, align 8, !tbaa !5
  %4041 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4040, i32 0, i32 4
  %4042 = load ptr, ptr %4041, align 8, !tbaa !27
  %4043 = getelementptr inbounds double, ptr %4042, i64 2
  %4044 = load double, ptr %4043, align 8, !tbaa !28
  %4045 = fmul double %4039, %4044
  %4046 = call double @llvm.fmuladd.f64(double %4037, double %4038, double %4045)
  %4047 = load ptr, ptr %9, align 8, !tbaa !5
  %4048 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4047, i32 0, i32 4
  %4049 = load ptr, ptr %4048, align 8, !tbaa !27
  %4050 = getelementptr inbounds double, ptr %4049, i64 3
  %4051 = load double, ptr %4050, align 8, !tbaa !28
  %4052 = fadd double %4046, %4051
  %4053 = fdiv double %4036, %4052
  %4054 = load ptr, ptr %12, align 8, !tbaa !5
  %4055 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4054, i32 0, i32 6
  %4056 = load ptr, ptr %4055, align 8, !tbaa !27
  %4057 = load i64, ptr %16, align 8, !tbaa !25
  %4058 = getelementptr inbounds ptr, ptr %4056, i64 %4057
  %4059 = load ptr, ptr %4058, align 8, !tbaa !5
  %4060 = getelementptr inbounds double, ptr %4059, i64 1
  store double %4053, ptr %4060, align 8, !tbaa !28
  %4061 = load double, ptr %31, align 8, !tbaa !28
  %4062 = load double, ptr %31, align 8, !tbaa !28
  %4063 = load double, ptr %31, align 8, !tbaa !28
  %4064 = load ptr, ptr %9, align 8, !tbaa !5
  %4065 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4064, i32 0, i32 4
  %4066 = load ptr, ptr %4065, align 8, !tbaa !27
  %4067 = getelementptr inbounds double, ptr %4066, i64 1
  %4068 = load double, ptr %4067, align 8, !tbaa !28
  %4069 = fmul double %4063, %4068
  %4070 = call double @llvm.fmuladd.f64(double %4061, double %4062, double %4069)
  %4071 = load double, ptr %31, align 8, !tbaa !28
  %4072 = load double, ptr %31, align 8, !tbaa !28
  %4073 = load double, ptr %31, align 8, !tbaa !28
  %4074 = load ptr, ptr %9, align 8, !tbaa !5
  %4075 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4074, i32 0, i32 4
  %4076 = load ptr, ptr %4075, align 8, !tbaa !27
  %4077 = getelementptr inbounds double, ptr %4076, i64 2
  %4078 = load double, ptr %4077, align 8, !tbaa !28
  %4079 = fmul double %4073, %4078
  %4080 = call double @llvm.fmuladd.f64(double %4071, double %4072, double %4079)
  %4081 = load ptr, ptr %9, align 8, !tbaa !5
  %4082 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4081, i32 0, i32 4
  %4083 = load ptr, ptr %4082, align 8, !tbaa !27
  %4084 = getelementptr inbounds double, ptr %4083, i64 3
  %4085 = load double, ptr %4084, align 8, !tbaa !28
  %4086 = fadd double %4080, %4085
  %4087 = load ptr, ptr %14, align 8, !tbaa !5
  %4088 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %4086, ptr noundef %4087)
  %4089 = fdiv double %4070, %4088
  %4090 = load double, ptr %31, align 8, !tbaa !28
  %4091 = fmul double %4089, %4090
  %4092 = load ptr, ptr %12, align 8, !tbaa !5
  %4093 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4092, i32 0, i32 6
  %4094 = load ptr, ptr %4093, align 8, !tbaa !27
  %4095 = load i64, ptr %16, align 8, !tbaa !25
  %4096 = getelementptr inbounds ptr, ptr %4094, i64 %4095
  %4097 = load ptr, ptr %4096, align 8, !tbaa !5
  %4098 = getelementptr inbounds double, ptr %4097, i64 2
  store double %4091, ptr %4098, align 8, !tbaa !28
  %4099 = load double, ptr %31, align 8, !tbaa !28
  %4100 = load double, ptr %31, align 8, !tbaa !28
  %4101 = load double, ptr %31, align 8, !tbaa !28
  %4102 = load ptr, ptr %9, align 8, !tbaa !5
  %4103 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4102, i32 0, i32 4
  %4104 = load ptr, ptr %4103, align 8, !tbaa !27
  %4105 = getelementptr inbounds double, ptr %4104, i64 1
  %4106 = load double, ptr %4105, align 8, !tbaa !28
  %4107 = fmul double %4101, %4106
  %4108 = call double @llvm.fmuladd.f64(double %4099, double %4100, double %4107)
  %4109 = load double, ptr %31, align 8, !tbaa !28
  %4110 = load double, ptr %31, align 8, !tbaa !28
  %4111 = load double, ptr %31, align 8, !tbaa !28
  %4112 = load ptr, ptr %9, align 8, !tbaa !5
  %4113 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4112, i32 0, i32 4
  %4114 = load ptr, ptr %4113, align 8, !tbaa !27
  %4115 = getelementptr inbounds double, ptr %4114, i64 2
  %4116 = load double, ptr %4115, align 8, !tbaa !28
  %4117 = fmul double %4111, %4116
  %4118 = call double @llvm.fmuladd.f64(double %4109, double %4110, double %4117)
  %4119 = load ptr, ptr %9, align 8, !tbaa !5
  %4120 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4119, i32 0, i32 4
  %4121 = load ptr, ptr %4120, align 8, !tbaa !27
  %4122 = getelementptr inbounds double, ptr %4121, i64 3
  %4123 = load double, ptr %4122, align 8, !tbaa !28
  %4124 = fadd double %4118, %4123
  %4125 = load ptr, ptr %14, align 8, !tbaa !5
  %4126 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %4124, ptr noundef %4125)
  %4127 = fdiv double %4108, %4126
  %4128 = load ptr, ptr %12, align 8, !tbaa !5
  %4129 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4128, i32 0, i32 6
  %4130 = load ptr, ptr %4129, align 8, !tbaa !27
  %4131 = load i64, ptr %16, align 8, !tbaa !25
  %4132 = getelementptr inbounds ptr, ptr %4130, i64 %4131
  %4133 = load ptr, ptr %4132, align 8, !tbaa !5
  %4134 = getelementptr inbounds double, ptr %4133, i64 3
  store double %4127, ptr %4134, align 8, !tbaa !28
  br label %4135

4135:                                             ; preds = %3993, %3990
  br label %4180

4136:                                             ; preds = %3928
  %4137 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %4138 = trunc i8 %4137 to i1
  br i1 %4138, label %4139, label %4147

4139:                                             ; preds = %4136
  %4140 = load ptr, ptr %14, align 8, !tbaa !5
  %4141 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %4140)
  %4142 = load ptr, ptr %10, align 8, !tbaa !5
  %4143 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4142, i32 0, i32 4
  %4144 = load ptr, ptr %4143, align 8, !tbaa !27
  %4145 = load i64, ptr %16, align 8, !tbaa !25
  %4146 = getelementptr inbounds double, ptr %4144, i64 %4145
  store double %4141, ptr %4146, align 8, !tbaa !28
  br label %4147

4147:                                             ; preds = %4139, %4136
  %4148 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %4149 = trunc i8 %4148 to i1
  br i1 %4149, label %4150, label %4179

4150:                                             ; preds = %4147
  %4151 = load ptr, ptr %12, align 8, !tbaa !5
  %4152 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4151, i32 0, i32 6
  %4153 = load ptr, ptr %4152, align 8, !tbaa !27
  %4154 = load i64, ptr %16, align 8, !tbaa !25
  %4155 = getelementptr inbounds ptr, ptr %4153, i64 %4154
  %4156 = load ptr, ptr %4155, align 8, !tbaa !5
  %4157 = getelementptr inbounds double, ptr %4156, i64 0
  store double 0.000000e+00, ptr %4157, align 8, !tbaa !28
  %4158 = load ptr, ptr %12, align 8, !tbaa !5
  %4159 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4158, i32 0, i32 6
  %4160 = load ptr, ptr %4159, align 8, !tbaa !27
  %4161 = load i64, ptr %16, align 8, !tbaa !25
  %4162 = getelementptr inbounds ptr, ptr %4160, i64 %4161
  %4163 = load ptr, ptr %4162, align 8, !tbaa !5
  %4164 = getelementptr inbounds double, ptr %4163, i64 1
  store double 0.000000e+00, ptr %4164, align 8, !tbaa !28
  %4165 = load ptr, ptr %12, align 8, !tbaa !5
  %4166 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4165, i32 0, i32 6
  %4167 = load ptr, ptr %4166, align 8, !tbaa !27
  %4168 = load i64, ptr %16, align 8, !tbaa !25
  %4169 = getelementptr inbounds ptr, ptr %4167, i64 %4168
  %4170 = load ptr, ptr %4169, align 8, !tbaa !5
  %4171 = getelementptr inbounds double, ptr %4170, i64 2
  store double 0.000000e+00, ptr %4171, align 8, !tbaa !28
  %4172 = load ptr, ptr %12, align 8, !tbaa !5
  %4173 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4172, i32 0, i32 6
  %4174 = load ptr, ptr %4173, align 8, !tbaa !27
  %4175 = load i64, ptr %16, align 8, !tbaa !25
  %4176 = getelementptr inbounds ptr, ptr %4174, i64 %4175
  %4177 = load ptr, ptr %4176, align 8, !tbaa !5
  %4178 = getelementptr inbounds double, ptr %4177, i64 3
  store double 0.000000e+00, ptr %4178, align 8, !tbaa !28
  br label %4179

4179:                                             ; preds = %4150, %4147
  br label %4180

4180:                                             ; preds = %4179, %4135
  br label %4181

4181:                                             ; preds = %4180
  %4182 = load i64, ptr %16, align 8, !tbaa !25
  %4183 = add nsw i64 %4182, 1
  store i64 %4183, ptr %16, align 8, !tbaa !25
  br label %3881, !llvm.loop !64

4184:                                             ; preds = %3881
  %4185 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %4185)
  store i32 1, ptr %36, align 4
  br label %5101

4186:                                             ; preds = %3875
  %4187 = load ptr, ptr %8, align 8, !tbaa !5
  %4188 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4187, i32 0, i32 1
  %4189 = load i64, ptr %4188, align 8, !tbaa !35
  %4190 = icmp eq i64 %4189, 14
  br i1 %4190, label %4191, label %4414

4191:                                             ; preds = %4186
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %4192

4192:                                             ; preds = %4409, %4191
  %4193 = load i64, ptr %16, align 8, !tbaa !25
  %4194 = icmp sle i64 %4193, 12
  br i1 %4194, label %4195, label %4412

4195:                                             ; preds = %4192
  %4196 = load i64, ptr %16, align 8, !tbaa !25
  %4197 = add nsw i64 %4196, 1
  %4198 = sitofp i64 %4197 to double
  %4199 = fmul double 1.000000e-01, %4198
  store double %4199, ptr %31, align 8, !tbaa !28
  %4200 = load double, ptr %31, align 8, !tbaa !28
  %4201 = fneg double %4200
  %4202 = load ptr, ptr %14, align 8, !tbaa !5
  %4203 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4201, ptr noundef %4202)
  %4204 = load double, ptr %31, align 8, !tbaa !28
  %4205 = fmul double -1.000000e+01, %4204
  %4206 = load ptr, ptr %14, align 8, !tbaa !5
  %4207 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4205, ptr noundef %4206)
  %4208 = call double @llvm.fmuladd.f64(double -5.000000e+00, double %4207, double %4203)
  %4209 = load double, ptr %31, align 8, !tbaa !28
  %4210 = fmul double -4.000000e+00, %4209
  %4211 = load ptr, ptr %14, align 8, !tbaa !5
  %4212 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4210, ptr noundef %4211)
  %4213 = call double @llvm.fmuladd.f64(double 3.000000e+00, double %4212, double %4208)
  store double %4213, ptr %30, align 8, !tbaa !28
  %4214 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %4215 = trunc i8 %4214 to i1
  br i1 %4215, label %4216, label %4273

4216:                                             ; preds = %4195
  %4217 = load ptr, ptr %9, align 8, !tbaa !5
  %4218 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4217, i32 0, i32 4
  %4219 = load ptr, ptr %4218, align 8, !tbaa !27
  %4220 = getelementptr inbounds double, ptr %4219, i64 2
  %4221 = load double, ptr %4220, align 8, !tbaa !28
  %4222 = load double, ptr %31, align 8, !tbaa !28
  %4223 = fneg double %4222
  %4224 = load ptr, ptr %9, align 8, !tbaa !5
  %4225 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4224, i32 0, i32 4
  %4226 = load ptr, ptr %4225, align 8, !tbaa !27
  %4227 = getelementptr inbounds double, ptr %4226, i64 0
  %4228 = load double, ptr %4227, align 8, !tbaa !28
  %4229 = fmul double %4223, %4228
  %4230 = load ptr, ptr %14, align 8, !tbaa !5
  %4231 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4229, ptr noundef %4230)
  %4232 = load ptr, ptr %9, align 8, !tbaa !5
  %4233 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4232, i32 0, i32 4
  %4234 = load ptr, ptr %4233, align 8, !tbaa !27
  %4235 = getelementptr inbounds double, ptr %4234, i64 3
  %4236 = load double, ptr %4235, align 8, !tbaa !28
  %4237 = load double, ptr %31, align 8, !tbaa !28
  %4238 = fneg double %4237
  %4239 = load ptr, ptr %9, align 8, !tbaa !5
  %4240 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4239, i32 0, i32 4
  %4241 = load ptr, ptr %4240, align 8, !tbaa !27
  %4242 = getelementptr inbounds double, ptr %4241, i64 1
  %4243 = load double, ptr %4242, align 8, !tbaa !28
  %4244 = fmul double %4238, %4243
  %4245 = load ptr, ptr %14, align 8, !tbaa !5
  %4246 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4244, ptr noundef %4245)
  %4247 = fmul double %4236, %4246
  %4248 = fneg double %4247
  %4249 = call double @llvm.fmuladd.f64(double %4221, double %4231, double %4248)
  %4250 = load ptr, ptr %9, align 8, !tbaa !5
  %4251 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4250, i32 0, i32 4
  %4252 = load ptr, ptr %4251, align 8, !tbaa !27
  %4253 = getelementptr inbounds double, ptr %4252, i64 5
  %4254 = load double, ptr %4253, align 8, !tbaa !28
  %4255 = load double, ptr %31, align 8, !tbaa !28
  %4256 = fneg double %4255
  %4257 = load ptr, ptr %9, align 8, !tbaa !5
  %4258 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4257, i32 0, i32 4
  %4259 = load ptr, ptr %4258, align 8, !tbaa !27
  %4260 = getelementptr inbounds double, ptr %4259, i64 4
  %4261 = load double, ptr %4260, align 8, !tbaa !28
  %4262 = fmul double %4256, %4261
  %4263 = load ptr, ptr %14, align 8, !tbaa !5
  %4264 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4262, ptr noundef %4263)
  %4265 = call double @llvm.fmuladd.f64(double %4254, double %4264, double %4249)
  %4266 = load double, ptr %30, align 8, !tbaa !28
  %4267 = fsub double %4265, %4266
  %4268 = load ptr, ptr %10, align 8, !tbaa !5
  %4269 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4268, i32 0, i32 4
  %4270 = load ptr, ptr %4269, align 8, !tbaa !27
  %4271 = load i64, ptr %16, align 8, !tbaa !25
  %4272 = getelementptr inbounds double, ptr %4270, i64 %4271
  store double %4267, ptr %4272, align 8, !tbaa !28
  br label %4273

4273:                                             ; preds = %4216, %4195
  %4274 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %4275 = trunc i8 %4274 to i1
  br i1 %4275, label %4276, label %4408

4276:                                             ; preds = %4273
  %4277 = load ptr, ptr %9, align 8, !tbaa !5
  %4278 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4277, i32 0, i32 4
  %4279 = load ptr, ptr %4278, align 8, !tbaa !27
  %4280 = getelementptr inbounds double, ptr %4279, i64 2
  %4281 = load double, ptr %4280, align 8, !tbaa !28
  %4282 = load double, ptr %31, align 8, !tbaa !28
  %4283 = fneg double %4282
  %4284 = load ptr, ptr %9, align 8, !tbaa !5
  %4285 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4284, i32 0, i32 4
  %4286 = load ptr, ptr %4285, align 8, !tbaa !27
  %4287 = getelementptr inbounds double, ptr %4286, i64 0
  %4288 = load double, ptr %4287, align 8, !tbaa !28
  %4289 = fmul double %4283, %4288
  %4290 = load ptr, ptr %14, align 8, !tbaa !5
  %4291 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4289, ptr noundef %4290)
  %4292 = fmul double %4281, %4291
  %4293 = load double, ptr %31, align 8, !tbaa !28
  %4294 = fneg double %4293
  %4295 = fmul double %4292, %4294
  %4296 = load ptr, ptr %12, align 8, !tbaa !5
  %4297 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4296, i32 0, i32 6
  %4298 = load ptr, ptr %4297, align 8, !tbaa !27
  %4299 = load i64, ptr %16, align 8, !tbaa !25
  %4300 = getelementptr inbounds ptr, ptr %4298, i64 %4299
  %4301 = load ptr, ptr %4300, align 8, !tbaa !5
  %4302 = getelementptr inbounds double, ptr %4301, i64 0
  store double %4295, ptr %4302, align 8, !tbaa !28
  %4303 = load ptr, ptr %9, align 8, !tbaa !5
  %4304 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4303, i32 0, i32 4
  %4305 = load ptr, ptr %4304, align 8, !tbaa !27
  %4306 = getelementptr inbounds double, ptr %4305, i64 3
  %4307 = load double, ptr %4306, align 8, !tbaa !28
  %4308 = fneg double %4307
  %4309 = load double, ptr %31, align 8, !tbaa !28
  %4310 = fneg double %4309
  %4311 = load ptr, ptr %9, align 8, !tbaa !5
  %4312 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4311, i32 0, i32 4
  %4313 = load ptr, ptr %4312, align 8, !tbaa !27
  %4314 = getelementptr inbounds double, ptr %4313, i64 1
  %4315 = load double, ptr %4314, align 8, !tbaa !28
  %4316 = fmul double %4310, %4315
  %4317 = load ptr, ptr %14, align 8, !tbaa !5
  %4318 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4316, ptr noundef %4317)
  %4319 = fmul double %4308, %4318
  %4320 = load double, ptr %31, align 8, !tbaa !28
  %4321 = fneg double %4320
  %4322 = fmul double %4319, %4321
  %4323 = load ptr, ptr %12, align 8, !tbaa !5
  %4324 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4323, i32 0, i32 6
  %4325 = load ptr, ptr %4324, align 8, !tbaa !27
  %4326 = load i64, ptr %16, align 8, !tbaa !25
  %4327 = getelementptr inbounds ptr, ptr %4325, i64 %4326
  %4328 = load ptr, ptr %4327, align 8, !tbaa !5
  %4329 = getelementptr inbounds double, ptr %4328, i64 1
  store double %4322, ptr %4329, align 8, !tbaa !28
  %4330 = load double, ptr %31, align 8, !tbaa !28
  %4331 = fneg double %4330
  %4332 = load ptr, ptr %9, align 8, !tbaa !5
  %4333 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4332, i32 0, i32 4
  %4334 = load ptr, ptr %4333, align 8, !tbaa !27
  %4335 = getelementptr inbounds double, ptr %4334, i64 0
  %4336 = load double, ptr %4335, align 8, !tbaa !28
  %4337 = fmul double %4331, %4336
  %4338 = load ptr, ptr %14, align 8, !tbaa !5
  %4339 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4337, ptr noundef %4338)
  %4340 = load ptr, ptr %12, align 8, !tbaa !5
  %4341 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4340, i32 0, i32 6
  %4342 = load ptr, ptr %4341, align 8, !tbaa !27
  %4343 = load i64, ptr %16, align 8, !tbaa !25
  %4344 = getelementptr inbounds ptr, ptr %4342, i64 %4343
  %4345 = load ptr, ptr %4344, align 8, !tbaa !5
  %4346 = getelementptr inbounds double, ptr %4345, i64 2
  store double %4339, ptr %4346, align 8, !tbaa !28
  %4347 = load double, ptr %31, align 8, !tbaa !28
  %4348 = fneg double %4347
  %4349 = load ptr, ptr %9, align 8, !tbaa !5
  %4350 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4349, i32 0, i32 4
  %4351 = load ptr, ptr %4350, align 8, !tbaa !27
  %4352 = getelementptr inbounds double, ptr %4351, i64 1
  %4353 = load double, ptr %4352, align 8, !tbaa !28
  %4354 = fmul double %4348, %4353
  %4355 = load ptr, ptr %14, align 8, !tbaa !5
  %4356 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4354, ptr noundef %4355)
  %4357 = fneg double %4356
  %4358 = load ptr, ptr %12, align 8, !tbaa !5
  %4359 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4358, i32 0, i32 6
  %4360 = load ptr, ptr %4359, align 8, !tbaa !27
  %4361 = load i64, ptr %16, align 8, !tbaa !25
  %4362 = getelementptr inbounds ptr, ptr %4360, i64 %4361
  %4363 = load ptr, ptr %4362, align 8, !tbaa !5
  %4364 = getelementptr inbounds double, ptr %4363, i64 3
  store double %4357, ptr %4364, align 8, !tbaa !28
  %4365 = load ptr, ptr %9, align 8, !tbaa !5
  %4366 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4365, i32 0, i32 4
  %4367 = load ptr, ptr %4366, align 8, !tbaa !27
  %4368 = getelementptr inbounds double, ptr %4367, i64 5
  %4369 = load double, ptr %4368, align 8, !tbaa !28
  %4370 = load double, ptr %31, align 8, !tbaa !28
  %4371 = fneg double %4370
  %4372 = load ptr, ptr %9, align 8, !tbaa !5
  %4373 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4372, i32 0, i32 4
  %4374 = load ptr, ptr %4373, align 8, !tbaa !27
  %4375 = getelementptr inbounds double, ptr %4374, i64 4
  %4376 = load double, ptr %4375, align 8, !tbaa !28
  %4377 = fmul double %4371, %4376
  %4378 = load ptr, ptr %14, align 8, !tbaa !5
  %4379 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4377, ptr noundef %4378)
  %4380 = fmul double %4369, %4379
  %4381 = load double, ptr %31, align 8, !tbaa !28
  %4382 = fneg double %4381
  %4383 = fmul double %4380, %4382
  %4384 = load ptr, ptr %12, align 8, !tbaa !5
  %4385 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4384, i32 0, i32 6
  %4386 = load ptr, ptr %4385, align 8, !tbaa !27
  %4387 = load i64, ptr %16, align 8, !tbaa !25
  %4388 = getelementptr inbounds ptr, ptr %4386, i64 %4387
  %4389 = load ptr, ptr %4388, align 8, !tbaa !5
  %4390 = getelementptr inbounds double, ptr %4389, i64 4
  store double %4383, ptr %4390, align 8, !tbaa !28
  %4391 = load double, ptr %31, align 8, !tbaa !28
  %4392 = fneg double %4391
  %4393 = load ptr, ptr %9, align 8, !tbaa !5
  %4394 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4393, i32 0, i32 4
  %4395 = load ptr, ptr %4394, align 8, !tbaa !27
  %4396 = getelementptr inbounds double, ptr %4395, i64 4
  %4397 = load double, ptr %4396, align 8, !tbaa !28
  %4398 = fmul double %4392, %4397
  %4399 = load ptr, ptr %14, align 8, !tbaa !5
  %4400 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4398, ptr noundef %4399)
  %4401 = load ptr, ptr %12, align 8, !tbaa !5
  %4402 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4401, i32 0, i32 6
  %4403 = load ptr, ptr %4402, align 8, !tbaa !27
  %4404 = load i64, ptr %16, align 8, !tbaa !25
  %4405 = getelementptr inbounds ptr, ptr %4403, i64 %4404
  %4406 = load ptr, ptr %4405, align 8, !tbaa !5
  %4407 = getelementptr inbounds double, ptr %4406, i64 5
  store double %4400, ptr %4407, align 8, !tbaa !28
  br label %4408

4408:                                             ; preds = %4276, %4273
  br label %4409

4409:                                             ; preds = %4408
  %4410 = load i64, ptr %16, align 8, !tbaa !25
  %4411 = add nsw i64 %4410, 1
  store i64 %4411, ptr %16, align 8, !tbaa !25
  br label %4192, !llvm.loop !65

4412:                                             ; preds = %4192
  %4413 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %4413)
  store i32 1, ptr %36, align 4
  br label %5101

4414:                                             ; preds = %4186
  %4415 = load ptr, ptr %8, align 8, !tbaa !5
  %4416 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4415, i32 0, i32 1
  %4417 = load i64, ptr %4416, align 8, !tbaa !35
  %4418 = icmp eq i64 %4417, 15
  br i1 %4418, label %4419, label %4487

4419:                                             ; preds = %4414
  %4420 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %4421 = trunc i8 %4420 to i1
  br i1 %4421, label %4422, label %4451

4422:                                             ; preds = %4419
  %4423 = load ptr, ptr %9, align 8, !tbaa !5
  %4424 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4423, i32 0, i32 4
  %4425 = load ptr, ptr %4424, align 8, !tbaa !27
  %4426 = getelementptr inbounds double, ptr %4425, i64 0
  %4427 = load double, ptr %4426, align 8, !tbaa !28
  %4428 = fsub double 1.000000e+00, %4427
  %4429 = load ptr, ptr %10, align 8, !tbaa !5
  %4430 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4429, i32 0, i32 4
  %4431 = load ptr, ptr %4430, align 8, !tbaa !27
  %4432 = getelementptr inbounds double, ptr %4431, i64 0
  store double %4428, ptr %4432, align 8, !tbaa !28
  %4433 = load ptr, ptr %9, align 8, !tbaa !5
  %4434 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4433, i32 0, i32 4
  %4435 = load ptr, ptr %4434, align 8, !tbaa !27
  %4436 = getelementptr inbounds double, ptr %4435, i64 1
  %4437 = load double, ptr %4436, align 8, !tbaa !28
  %4438 = load ptr, ptr %9, align 8, !tbaa !5
  %4439 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4438, i32 0, i32 4
  %4440 = load ptr, ptr %4439, align 8, !tbaa !27
  %4441 = getelementptr inbounds double, ptr %4440, i64 0
  %4442 = load double, ptr %4441, align 8, !tbaa !28
  %4443 = load ptr, ptr %14, align 8, !tbaa !5
  %4444 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %4442, ptr noundef %4443)
  %4445 = fsub double %4437, %4444
  %4446 = fmul double 1.000000e+03, %4445
  %4447 = load ptr, ptr %10, align 8, !tbaa !5
  %4448 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4447, i32 0, i32 4
  %4449 = load ptr, ptr %4448, align 8, !tbaa !27
  %4450 = getelementptr inbounds double, ptr %4449, i64 1
  store double %4446, ptr %4450, align 8, !tbaa !28
  br label %4451

4451:                                             ; preds = %4422, %4419
  %4452 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %4453 = trunc i8 %4452 to i1
  br i1 %4453, label %4454, label %4485

4454:                                             ; preds = %4451
  %4455 = load ptr, ptr %12, align 8, !tbaa !5
  %4456 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4455, i32 0, i32 6
  %4457 = load ptr, ptr %4456, align 8, !tbaa !27
  %4458 = getelementptr inbounds ptr, ptr %4457, i64 0
  %4459 = load ptr, ptr %4458, align 8, !tbaa !5
  %4460 = getelementptr inbounds double, ptr %4459, i64 0
  store double -1.000000e+00, ptr %4460, align 8, !tbaa !28
  %4461 = load ptr, ptr %12, align 8, !tbaa !5
  %4462 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4461, i32 0, i32 6
  %4463 = load ptr, ptr %4462, align 8, !tbaa !27
  %4464 = getelementptr inbounds ptr, ptr %4463, i64 0
  %4465 = load ptr, ptr %4464, align 8, !tbaa !5
  %4466 = getelementptr inbounds double, ptr %4465, i64 1
  store double 0.000000e+00, ptr %4466, align 8, !tbaa !28
  %4467 = load ptr, ptr %9, align 8, !tbaa !5
  %4468 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4467, i32 0, i32 4
  %4469 = load ptr, ptr %4468, align 8, !tbaa !27
  %4470 = getelementptr inbounds double, ptr %4469, i64 0
  %4471 = load double, ptr %4470, align 8, !tbaa !28
  %4472 = fmul double -2.000000e+03, %4471
  %4473 = load ptr, ptr %12, align 8, !tbaa !5
  %4474 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4473, i32 0, i32 6
  %4475 = load ptr, ptr %4474, align 8, !tbaa !27
  %4476 = getelementptr inbounds ptr, ptr %4475, i64 1
  %4477 = load ptr, ptr %4476, align 8, !tbaa !5
  %4478 = getelementptr inbounds double, ptr %4477, i64 0
  store double %4472, ptr %4478, align 8, !tbaa !28
  %4479 = load ptr, ptr %12, align 8, !tbaa !5
  %4480 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4479, i32 0, i32 6
  %4481 = load ptr, ptr %4480, align 8, !tbaa !27
  %4482 = getelementptr inbounds ptr, ptr %4481, i64 1
  %4483 = load ptr, ptr %4482, align 8, !tbaa !5
  %4484 = getelementptr inbounds double, ptr %4483, i64 1
  store double 1.000000e+03, ptr %4484, align 8, !tbaa !28
  br label %4485

4485:                                             ; preds = %4454, %4451
  %4486 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %4486)
  store i32 1, ptr %36, align 4
  br label %5101

4487:                                             ; preds = %4414
  %4488 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.320, ptr noundef %4488)
  br label %4489

4489:                                             ; preds = %4487, %1812
  %4490 = load ptr, ptr %8, align 8, !tbaa !5
  %4491 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4490, i32 0, i32 0
  %4492 = load i64, ptr %4491, align 8, !tbaa !11
  %4493 = icmp eq i64 %4492, 51
  br i1 %4493, label %4494, label %4790

4494:                                             ; preds = %4489
  %4495 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %4496 = trunc i8 %4495 to i1
  br i1 %4496, label %4502, label %4497

4497:                                             ; preds = %4494
  %4498 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %4499 = trunc i8 %4498 to i1
  br i1 %4499, label %4502, label %4500

4500:                                             ; preds = %4497
  %4501 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %4501)
  store i32 1, ptr %36, align 4
  br label %5101

4502:                                             ; preds = %4497, %4494
  %4503 = load ptr, ptr %8, align 8, !tbaa !5
  %4504 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4503, i32 0, i32 1
  %4505 = load i64, ptr %4504, align 8, !tbaa !35
  %4506 = icmp eq i64 %4505, 0
  br i1 %4506, label %4507, label %4789

4507:                                             ; preds = %4502
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %4508

4508:                                             ; preds = %4784, %4507
  %4509 = load i64, ptr %16, align 8, !tbaa !25
  %4510 = icmp sle i64 %4509, 15
  br i1 %4510, label %4511, label %4787

4511:                                             ; preds = %4508
  store double 0.000000e+00, ptr %30, align 8, !tbaa !28
  %4512 = load i64, ptr %16, align 8, !tbaa !25
  %4513 = icmp eq i64 %4512, 0
  br i1 %4513, label %4514, label %4515

4514:                                             ; preds = %4511
  store double 3.478000e+04, ptr %30, align 8, !tbaa !28
  br label %4515

4515:                                             ; preds = %4514, %4511
  %4516 = load i64, ptr %16, align 8, !tbaa !25
  %4517 = icmp eq i64 %4516, 1
  br i1 %4517, label %4518, label %4519

4518:                                             ; preds = %4515
  store double 2.861000e+04, ptr %30, align 8, !tbaa !28
  br label %4519

4519:                                             ; preds = %4518, %4515
  %4520 = load i64, ptr %16, align 8, !tbaa !25
  %4521 = icmp eq i64 %4520, 2
  br i1 %4521, label %4522, label %4523

4522:                                             ; preds = %4519
  store double 2.365000e+04, ptr %30, align 8, !tbaa !28
  br label %4523

4523:                                             ; preds = %4522, %4519
  %4524 = load i64, ptr %16, align 8, !tbaa !25
  %4525 = icmp eq i64 %4524, 3
  br i1 %4525, label %4526, label %4527

4526:                                             ; preds = %4523
  store double 1.963000e+04, ptr %30, align 8, !tbaa !28
  br label %4527

4527:                                             ; preds = %4526, %4523
  %4528 = load i64, ptr %16, align 8, !tbaa !25
  %4529 = icmp eq i64 %4528, 4
  br i1 %4529, label %4530, label %4531

4530:                                             ; preds = %4527
  store double 1.637000e+04, ptr %30, align 8, !tbaa !28
  br label %4531

4531:                                             ; preds = %4530, %4527
  %4532 = load i64, ptr %16, align 8, !tbaa !25
  %4533 = icmp eq i64 %4532, 5
  br i1 %4533, label %4534, label %4535

4534:                                             ; preds = %4531
  store double 1.372000e+04, ptr %30, align 8, !tbaa !28
  br label %4535

4535:                                             ; preds = %4534, %4531
  %4536 = load i64, ptr %16, align 8, !tbaa !25
  %4537 = icmp eq i64 %4536, 6
  br i1 %4537, label %4538, label %4539

4538:                                             ; preds = %4535
  store double 1.154000e+04, ptr %30, align 8, !tbaa !28
  br label %4539

4539:                                             ; preds = %4538, %4535
  %4540 = load i64, ptr %16, align 8, !tbaa !25
  %4541 = icmp eq i64 %4540, 7
  br i1 %4541, label %4542, label %4543

4542:                                             ; preds = %4539
  store double 9.744000e+03, ptr %30, align 8, !tbaa !28
  br label %4543

4543:                                             ; preds = %4542, %4539
  %4544 = load i64, ptr %16, align 8, !tbaa !25
  %4545 = icmp eq i64 %4544, 8
  br i1 %4545, label %4546, label %4547

4546:                                             ; preds = %4543
  store double 8.261000e+03, ptr %30, align 8, !tbaa !28
  br label %4547

4547:                                             ; preds = %4546, %4543
  %4548 = load i64, ptr %16, align 8, !tbaa !25
  %4549 = icmp eq i64 %4548, 9
  br i1 %4549, label %4550, label %4551

4550:                                             ; preds = %4547
  store double 7.030000e+03, ptr %30, align 8, !tbaa !28
  br label %4551

4551:                                             ; preds = %4550, %4547
  %4552 = load i64, ptr %16, align 8, !tbaa !25
  %4553 = icmp eq i64 %4552, 10
  br i1 %4553, label %4554, label %4555

4554:                                             ; preds = %4551
  store double 6.005000e+03, ptr %30, align 8, !tbaa !28
  br label %4555

4555:                                             ; preds = %4554, %4551
  %4556 = load i64, ptr %16, align 8, !tbaa !25
  %4557 = icmp eq i64 %4556, 11
  br i1 %4557, label %4558, label %4559

4558:                                             ; preds = %4555
  store double 5.147000e+03, ptr %30, align 8, !tbaa !28
  br label %4559

4559:                                             ; preds = %4558, %4555
  %4560 = load i64, ptr %16, align 8, !tbaa !25
  %4561 = icmp eq i64 %4560, 12
  br i1 %4561, label %4562, label %4563

4562:                                             ; preds = %4559
  store double 4.427000e+03, ptr %30, align 8, !tbaa !28
  br label %4563

4563:                                             ; preds = %4562, %4559
  %4564 = load i64, ptr %16, align 8, !tbaa !25
  %4565 = icmp eq i64 %4564, 13
  br i1 %4565, label %4566, label %4567

4566:                                             ; preds = %4563
  store double 3.820000e+03, ptr %30, align 8, !tbaa !28
  br label %4567

4567:                                             ; preds = %4566, %4563
  %4568 = load i64, ptr %16, align 8, !tbaa !25
  %4569 = icmp eq i64 %4568, 14
  br i1 %4569, label %4570, label %4571

4570:                                             ; preds = %4567
  store double 3.307000e+03, ptr %30, align 8, !tbaa !28
  br label %4571

4571:                                             ; preds = %4570, %4567
  %4572 = load i64, ptr %16, align 8, !tbaa !25
  %4573 = icmp eq i64 %4572, 15
  br i1 %4573, label %4574, label %4575

4574:                                             ; preds = %4571
  store double 2.872000e+03, ptr %30, align 8, !tbaa !28
  br label %4575

4575:                                             ; preds = %4574, %4571
  %4576 = load i64, ptr %16, align 8, !tbaa !25
  %4577 = add nsw i64 %4576, 1
  %4578 = mul nsw i64 5, %4577
  %4579 = add nsw i64 45, %4578
  %4580 = sitofp i64 %4579 to double
  store double %4580, ptr %32, align 8, !tbaa !28
  %4581 = load double, ptr %32, align 8, !tbaa !28
  %4582 = load ptr, ptr %9, align 8, !tbaa !5
  %4583 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4582, i32 0, i32 4
  %4584 = load ptr, ptr %4583, align 8, !tbaa !27
  %4585 = getelementptr inbounds double, ptr %4584, i64 2
  %4586 = load double, ptr %4585, align 8, !tbaa !28
  %4587 = fadd double %4581, %4586
  %4588 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %4587, double noundef 0.000000e+00)
  br i1 %4588, label %4589, label %4746

4589:                                             ; preds = %4575
  %4590 = load ptr, ptr %9, align 8, !tbaa !5
  %4591 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4590, i32 0, i32 4
  %4592 = load ptr, ptr %4591, align 8, !tbaa !27
  %4593 = getelementptr inbounds double, ptr %4592, i64 1
  %4594 = load double, ptr %4593, align 8, !tbaa !28
  %4595 = load double, ptr %32, align 8, !tbaa !28
  %4596 = load ptr, ptr %9, align 8, !tbaa !5
  %4597 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4596, i32 0, i32 4
  %4598 = load ptr, ptr %4597, align 8, !tbaa !27
  %4599 = getelementptr inbounds double, ptr %4598, i64 2
  %4600 = load double, ptr %4599, align 8, !tbaa !28
  %4601 = fadd double %4595, %4600
  %4602 = fdiv double %4594, %4601
  %4603 = load ptr, ptr %14, align 8, !tbaa !5
  %4604 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %4603)
  %4605 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %4602, double noundef %4604)
  br i1 %4605, label %4606, label %4746

4606:                                             ; preds = %4589
  %4607 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %4608 = trunc i8 %4607 to i1
  br i1 %4608, label %4609, label %4638

4609:                                             ; preds = %4606
  %4610 = load ptr, ptr %9, align 8, !tbaa !5
  %4611 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4610, i32 0, i32 4
  %4612 = load ptr, ptr %4611, align 8, !tbaa !27
  %4613 = getelementptr inbounds double, ptr %4612, i64 0
  %4614 = load double, ptr %4613, align 8, !tbaa !28
  %4615 = load ptr, ptr %9, align 8, !tbaa !5
  %4616 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4615, i32 0, i32 4
  %4617 = load ptr, ptr %4616, align 8, !tbaa !27
  %4618 = getelementptr inbounds double, ptr %4617, i64 1
  %4619 = load double, ptr %4618, align 8, !tbaa !28
  %4620 = load double, ptr %32, align 8, !tbaa !28
  %4621 = load ptr, ptr %9, align 8, !tbaa !5
  %4622 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4621, i32 0, i32 4
  %4623 = load ptr, ptr %4622, align 8, !tbaa !27
  %4624 = getelementptr inbounds double, ptr %4623, i64 2
  %4625 = load double, ptr %4624, align 8, !tbaa !28
  %4626 = fadd double %4620, %4625
  %4627 = fdiv double %4619, %4626
  %4628 = load ptr, ptr %14, align 8, !tbaa !5
  %4629 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4627, ptr noundef %4628)
  %4630 = load double, ptr %30, align 8, !tbaa !28
  %4631 = fneg double %4630
  %4632 = call double @llvm.fmuladd.f64(double %4614, double %4629, double %4631)
  %4633 = load ptr, ptr %10, align 8, !tbaa !5
  %4634 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4633, i32 0, i32 4
  %4635 = load ptr, ptr %4634, align 8, !tbaa !27
  %4636 = load i64, ptr %16, align 8, !tbaa !25
  %4637 = getelementptr inbounds double, ptr %4635, i64 %4636
  store double %4632, ptr %4637, align 8, !tbaa !28
  br label %4638

4638:                                             ; preds = %4609, %4606
  %4639 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %4640 = trunc i8 %4639 to i1
  br i1 %4640, label %4641, label %4745

4641:                                             ; preds = %4638
  %4642 = load ptr, ptr %9, align 8, !tbaa !5
  %4643 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4642, i32 0, i32 4
  %4644 = load ptr, ptr %4643, align 8, !tbaa !27
  %4645 = getelementptr inbounds double, ptr %4644, i64 1
  %4646 = load double, ptr %4645, align 8, !tbaa !28
  %4647 = load double, ptr %32, align 8, !tbaa !28
  %4648 = load ptr, ptr %9, align 8, !tbaa !5
  %4649 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4648, i32 0, i32 4
  %4650 = load ptr, ptr %4649, align 8, !tbaa !27
  %4651 = getelementptr inbounds double, ptr %4650, i64 2
  %4652 = load double, ptr %4651, align 8, !tbaa !28
  %4653 = fadd double %4647, %4652
  %4654 = fdiv double %4646, %4653
  %4655 = load ptr, ptr %14, align 8, !tbaa !5
  %4656 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4654, ptr noundef %4655)
  %4657 = load ptr, ptr %12, align 8, !tbaa !5
  %4658 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4657, i32 0, i32 6
  %4659 = load ptr, ptr %4658, align 8, !tbaa !27
  %4660 = load i64, ptr %16, align 8, !tbaa !25
  %4661 = getelementptr inbounds ptr, ptr %4659, i64 %4660
  %4662 = load ptr, ptr %4661, align 8, !tbaa !5
  %4663 = getelementptr inbounds double, ptr %4662, i64 0
  store double %4656, ptr %4663, align 8, !tbaa !28
  %4664 = load ptr, ptr %9, align 8, !tbaa !5
  %4665 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4664, i32 0, i32 4
  %4666 = load ptr, ptr %4665, align 8, !tbaa !27
  %4667 = getelementptr inbounds double, ptr %4666, i64 0
  %4668 = load double, ptr %4667, align 8, !tbaa !28
  %4669 = load ptr, ptr %9, align 8, !tbaa !5
  %4670 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4669, i32 0, i32 4
  %4671 = load ptr, ptr %4670, align 8, !tbaa !27
  %4672 = getelementptr inbounds double, ptr %4671, i64 1
  %4673 = load double, ptr %4672, align 8, !tbaa !28
  %4674 = load double, ptr %32, align 8, !tbaa !28
  %4675 = load ptr, ptr %9, align 8, !tbaa !5
  %4676 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4675, i32 0, i32 4
  %4677 = load ptr, ptr %4676, align 8, !tbaa !27
  %4678 = getelementptr inbounds double, ptr %4677, i64 2
  %4679 = load double, ptr %4678, align 8, !tbaa !28
  %4680 = fadd double %4674, %4679
  %4681 = fdiv double %4673, %4680
  %4682 = load ptr, ptr %14, align 8, !tbaa !5
  %4683 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4681, ptr noundef %4682)
  %4684 = fmul double %4668, %4683
  %4685 = load double, ptr %32, align 8, !tbaa !28
  %4686 = load ptr, ptr %9, align 8, !tbaa !5
  %4687 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4686, i32 0, i32 4
  %4688 = load ptr, ptr %4687, align 8, !tbaa !27
  %4689 = getelementptr inbounds double, ptr %4688, i64 2
  %4690 = load double, ptr %4689, align 8, !tbaa !28
  %4691 = fadd double %4685, %4690
  %4692 = fdiv double %4684, %4691
  %4693 = load ptr, ptr %12, align 8, !tbaa !5
  %4694 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4693, i32 0, i32 6
  %4695 = load ptr, ptr %4694, align 8, !tbaa !27
  %4696 = load i64, ptr %16, align 8, !tbaa !25
  %4697 = getelementptr inbounds ptr, ptr %4695, i64 %4696
  %4698 = load ptr, ptr %4697, align 8, !tbaa !5
  %4699 = getelementptr inbounds double, ptr %4698, i64 1
  store double %4692, ptr %4699, align 8, !tbaa !28
  %4700 = load ptr, ptr %9, align 8, !tbaa !5
  %4701 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4700, i32 0, i32 4
  %4702 = load ptr, ptr %4701, align 8, !tbaa !27
  %4703 = getelementptr inbounds double, ptr %4702, i64 0
  %4704 = load double, ptr %4703, align 8, !tbaa !28
  %4705 = load ptr, ptr %9, align 8, !tbaa !5
  %4706 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4705, i32 0, i32 4
  %4707 = load ptr, ptr %4706, align 8, !tbaa !27
  %4708 = getelementptr inbounds double, ptr %4707, i64 1
  %4709 = load double, ptr %4708, align 8, !tbaa !28
  %4710 = load double, ptr %32, align 8, !tbaa !28
  %4711 = load ptr, ptr %9, align 8, !tbaa !5
  %4712 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4711, i32 0, i32 4
  %4713 = load ptr, ptr %4712, align 8, !tbaa !27
  %4714 = getelementptr inbounds double, ptr %4713, i64 2
  %4715 = load double, ptr %4714, align 8, !tbaa !28
  %4716 = fadd double %4710, %4715
  %4717 = fdiv double %4709, %4716
  %4718 = load ptr, ptr %14, align 8, !tbaa !5
  %4719 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4717, ptr noundef %4718)
  %4720 = fmul double %4704, %4719
  %4721 = load ptr, ptr %9, align 8, !tbaa !5
  %4722 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4721, i32 0, i32 4
  %4723 = load ptr, ptr %4722, align 8, !tbaa !27
  %4724 = getelementptr inbounds double, ptr %4723, i64 1
  %4725 = load double, ptr %4724, align 8, !tbaa !28
  %4726 = fmul double %4720, %4725
  %4727 = fmul double %4726, -1.000000e+00
  %4728 = load double, ptr %32, align 8, !tbaa !28
  %4729 = load ptr, ptr %9, align 8, !tbaa !5
  %4730 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4729, i32 0, i32 4
  %4731 = load ptr, ptr %4730, align 8, !tbaa !27
  %4732 = getelementptr inbounds double, ptr %4731, i64 2
  %4733 = load double, ptr %4732, align 8, !tbaa !28
  %4734 = fadd double %4728, %4733
  %4735 = load ptr, ptr %14, align 8, !tbaa !5
  %4736 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %4734, ptr noundef %4735)
  %4737 = fdiv double %4727, %4736
  %4738 = load ptr, ptr %12, align 8, !tbaa !5
  %4739 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4738, i32 0, i32 6
  %4740 = load ptr, ptr %4739, align 8, !tbaa !27
  %4741 = load i64, ptr %16, align 8, !tbaa !25
  %4742 = getelementptr inbounds ptr, ptr %4740, i64 %4741
  %4743 = load ptr, ptr %4742, align 8, !tbaa !5
  %4744 = getelementptr inbounds double, ptr %4743, i64 2
  store double %4737, ptr %4744, align 8, !tbaa !28
  br label %4745

4745:                                             ; preds = %4641, %4638
  br label %4783

4746:                                             ; preds = %4589, %4575
  %4747 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %4748 = trunc i8 %4747 to i1
  br i1 %4748, label %4749, label %4757

4749:                                             ; preds = %4746
  %4750 = load ptr, ptr %14, align 8, !tbaa !5
  %4751 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %4750)
  %4752 = load ptr, ptr %10, align 8, !tbaa !5
  %4753 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4752, i32 0, i32 4
  %4754 = load ptr, ptr %4753, align 8, !tbaa !27
  %4755 = load i64, ptr %16, align 8, !tbaa !25
  %4756 = getelementptr inbounds double, ptr %4754, i64 %4755
  store double %4751, ptr %4756, align 8, !tbaa !28
  br label %4757

4757:                                             ; preds = %4749, %4746
  %4758 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %4759 = trunc i8 %4758 to i1
  br i1 %4759, label %4760, label %4782

4760:                                             ; preds = %4757
  %4761 = load ptr, ptr %12, align 8, !tbaa !5
  %4762 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4761, i32 0, i32 6
  %4763 = load ptr, ptr %4762, align 8, !tbaa !27
  %4764 = load i64, ptr %16, align 8, !tbaa !25
  %4765 = getelementptr inbounds ptr, ptr %4763, i64 %4764
  %4766 = load ptr, ptr %4765, align 8, !tbaa !5
  %4767 = getelementptr inbounds double, ptr %4766, i64 0
  store double 0.000000e+00, ptr %4767, align 8, !tbaa !28
  %4768 = load ptr, ptr %12, align 8, !tbaa !5
  %4769 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4768, i32 0, i32 6
  %4770 = load ptr, ptr %4769, align 8, !tbaa !27
  %4771 = load i64, ptr %16, align 8, !tbaa !25
  %4772 = getelementptr inbounds ptr, ptr %4770, i64 %4771
  %4773 = load ptr, ptr %4772, align 8, !tbaa !5
  %4774 = getelementptr inbounds double, ptr %4773, i64 1
  store double 0.000000e+00, ptr %4774, align 8, !tbaa !28
  %4775 = load ptr, ptr %12, align 8, !tbaa !5
  %4776 = getelementptr inbounds %"struct.alglib_impl::ae_matrix", ptr %4775, i32 0, i32 6
  %4777 = load ptr, ptr %4776, align 8, !tbaa !27
  %4778 = load i64, ptr %16, align 8, !tbaa !25
  %4779 = getelementptr inbounds ptr, ptr %4777, i64 %4778
  %4780 = load ptr, ptr %4779, align 8, !tbaa !5
  %4781 = getelementptr inbounds double, ptr %4780, i64 2
  store double 0.000000e+00, ptr %4781, align 8, !tbaa !28
  br label %4782

4782:                                             ; preds = %4760, %4757
  br label %4783

4783:                                             ; preds = %4782, %4745
  br label %4784

4784:                                             ; preds = %4783
  %4785 = load i64, ptr %16, align 8, !tbaa !25
  %4786 = add nsw i64 %4785, 1
  store i64 %4786, ptr %16, align 8, !tbaa !25
  br label %4508, !llvm.loop !66

4787:                                             ; preds = %4508
  %4788 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %4788)
  store i32 1, ptr %36, align 4
  br label %5101

4789:                                             ; preds = %4502
  br label %4790

4790:                                             ; preds = %4789, %4489
  %4791 = load ptr, ptr %8, align 8, !tbaa !5
  %4792 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4791, i32 0, i32 0
  %4793 = load i64, ptr %4792, align 8, !tbaa !11
  %4794 = icmp eq i64 %4793, 3
  br i1 %4794, label %4795, label %5098

4795:                                             ; preds = %4790
  %4796 = load ptr, ptr %8, align 8, !tbaa !5
  %4797 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4796, i32 0, i32 12
  %4798 = load i8, ptr %4797, align 8, !tbaa !26, !range !17, !noundef !18
  %4799 = trunc i8 %4798 to i1
  %4800 = xor i1 %4799, true
  %4801 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %4800, ptr noundef @.str.321, ptr noundef %4801)
  %4802 = load i8, ptr %13, align 1, !tbaa !9, !range !17, !noundef !18
  %4803 = trunc i8 %4802 to i1
  %4804 = xor i1 %4803, true
  %4805 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %4804, ptr noundef @.str.322, ptr noundef %4805)
  %4806 = load i8, ptr %11, align 1, !tbaa !9, !range !17, !noundef !18
  %4807 = trunc i8 %4806 to i1
  br i1 %4807, label %4810, label %4808

4808:                                             ; preds = %4795
  %4809 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %4809)
  store i32 1, ptr %36, align 4
  br label %5101

4810:                                             ; preds = %4795
  %4811 = load ptr, ptr %10, align 8, !tbaa !5
  %4812 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4811, i32 0, i32 4
  %4813 = load ptr, ptr %4812, align 8, !tbaa !27
  %4814 = getelementptr inbounds double, ptr %4813, i64 0
  store double 0.000000e+00, ptr %4814, align 8, !tbaa !28
  %4815 = load ptr, ptr %8, align 8, !tbaa !5
  %4816 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4815, i32 0, i32 1
  %4817 = load i64, ptr %4816, align 8, !tbaa !35
  %4818 = icmp eq i64 %4817, 0
  br i1 %4818, label %4819, label %4898

4819:                                             ; preds = %4810
  %4820 = load ptr, ptr %10, align 8, !tbaa !5
  %4821 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4820, i32 0, i32 4
  %4822 = load ptr, ptr %4821, align 8, !tbaa !27
  %4823 = getelementptr inbounds double, ptr %4822, i64 0
  store double 0.000000e+00, ptr %4823, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %4824

4824:                                             ; preds = %4893, %4819
  %4825 = load i64, ptr %16, align 8, !tbaa !25
  %4826 = load ptr, ptr %8, align 8, !tbaa !5
  %4827 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4826, i32 0, i32 2
  %4828 = load i64, ptr %4827, align 8, !tbaa !24
  %4829 = sub nsw i64 %4828, 1
  %4830 = icmp sle i64 %4825, %4829
  br i1 %4830, label %4831, label %4896

4831:                                             ; preds = %4824
  %4832 = load ptr, ptr %8, align 8, !tbaa !5
  %4833 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4832, i32 0, i32 2
  %4834 = load i64, ptr %4833, align 8, !tbaa !24
  %4835 = sitofp i64 %4834 to double
  store double %4835, ptr %26, align 8, !tbaa !28
  store i64 0, ptr %17, align 8, !tbaa !25
  br label %4836

4836:                                             ; preds = %4854, %4831
  %4837 = load i64, ptr %17, align 8, !tbaa !25
  %4838 = load ptr, ptr %8, align 8, !tbaa !5
  %4839 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4838, i32 0, i32 2
  %4840 = load i64, ptr %4839, align 8, !tbaa !24
  %4841 = sub nsw i64 %4840, 1
  %4842 = icmp sle i64 %4837, %4841
  br i1 %4842, label %4843, label %4857

4843:                                             ; preds = %4836
  %4844 = load double, ptr %26, align 8, !tbaa !28
  %4845 = load ptr, ptr %9, align 8, !tbaa !5
  %4846 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4845, i32 0, i32 4
  %4847 = load ptr, ptr %4846, align 8, !tbaa !27
  %4848 = load i64, ptr %17, align 8, !tbaa !25
  %4849 = getelementptr inbounds double, ptr %4847, i64 %4848
  %4850 = load double, ptr %4849, align 8, !tbaa !28
  %4851 = load ptr, ptr %14, align 8, !tbaa !5
  %4852 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %4850, ptr noundef %4851)
  %4853 = fsub double %4844, %4852
  store double %4853, ptr %26, align 8, !tbaa !28
  br label %4854

4854:                                             ; preds = %4843
  %4855 = load i64, ptr %17, align 8, !tbaa !25
  %4856 = add nsw i64 %4855, 1
  store i64 %4856, ptr %17, align 8, !tbaa !25
  br label %4836, !llvm.loop !67

4857:                                             ; preds = %4836
  %4858 = load double, ptr %26, align 8, !tbaa !28
  %4859 = load i64, ptr %16, align 8, !tbaa !25
  %4860 = add nsw i64 1, %4859
  %4861 = sitofp i64 %4860 to double
  %4862 = load ptr, ptr %9, align 8, !tbaa !5
  %4863 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4862, i32 0, i32 4
  %4864 = load ptr, ptr %4863, align 8, !tbaa !27
  %4865 = load i64, ptr %16, align 8, !tbaa !25
  %4866 = getelementptr inbounds double, ptr %4864, i64 %4865
  %4867 = load double, ptr %4866, align 8, !tbaa !28
  %4868 = load ptr, ptr %14, align 8, !tbaa !5
  %4869 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %4867, ptr noundef %4868)
  %4870 = fsub double 1.000000e+00, %4869
  %4871 = load ptr, ptr %9, align 8, !tbaa !5
  %4872 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4871, i32 0, i32 4
  %4873 = load ptr, ptr %4872, align 8, !tbaa !27
  %4874 = load i64, ptr %16, align 8, !tbaa !25
  %4875 = getelementptr inbounds double, ptr %4873, i64 %4874
  %4876 = load double, ptr %4875, align 8, !tbaa !28
  %4877 = load ptr, ptr %14, align 8, !tbaa !5
  %4878 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %4876, ptr noundef %4877)
  %4879 = fsub double %4870, %4878
  %4880 = call double @llvm.fmuladd.f64(double %4861, double %4879, double %4858)
  store double %4880, ptr %26, align 8, !tbaa !28
  %4881 = load ptr, ptr %10, align 8, !tbaa !5
  %4882 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4881, i32 0, i32 4
  %4883 = load ptr, ptr %4882, align 8, !tbaa !27
  %4884 = getelementptr inbounds double, ptr %4883, i64 0
  %4885 = load double, ptr %4884, align 8, !tbaa !28
  %4886 = load double, ptr %26, align 8, !tbaa !28
  %4887 = load double, ptr %26, align 8, !tbaa !28
  %4888 = call double @llvm.fmuladd.f64(double %4886, double %4887, double %4885)
  %4889 = load ptr, ptr %10, align 8, !tbaa !5
  %4890 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4889, i32 0, i32 4
  %4891 = load ptr, ptr %4890, align 8, !tbaa !27
  %4892 = getelementptr inbounds double, ptr %4891, i64 0
  store double %4888, ptr %4892, align 8, !tbaa !28
  br label %4893

4893:                                             ; preds = %4857
  %4894 = load i64, ptr %16, align 8, !tbaa !25
  %4895 = add nsw i64 %4894, 1
  store i64 %4895, ptr %16, align 8, !tbaa !25
  br label %4824, !llvm.loop !68

4896:                                             ; preds = %4824
  %4897 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %4897)
  store i32 1, ptr %36, align 4
  br label %5101

4898:                                             ; preds = %4810
  %4899 = load ptr, ptr %8, align 8, !tbaa !5
  %4900 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4899, i32 0, i32 1
  %4901 = load i64, ptr %4900, align 8, !tbaa !35
  %4902 = icmp eq i64 %4901, 1
  br i1 %4902, label %4903, label %4954

4903:                                             ; preds = %4898
  store double 0.000000e+00, ptr %33, align 8, !tbaa !28
  store double 0.000000e+00, ptr %34, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %4904

4904:                                             ; preds = %4939, %4903
  %4905 = load i64, ptr %16, align 8, !tbaa !25
  %4906 = load ptr, ptr %8, align 8, !tbaa !5
  %4907 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4906, i32 0, i32 2
  %4908 = load i64, ptr %4907, align 8, !tbaa !24
  %4909 = sub nsw i64 %4908, 1
  %4910 = icmp sle i64 %4905, %4909
  br i1 %4910, label %4911, label %4942

4911:                                             ; preds = %4904
  %4912 = load double, ptr %33, align 8, !tbaa !28
  %4913 = load ptr, ptr %9, align 8, !tbaa !5
  %4914 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4913, i32 0, i32 4
  %4915 = load ptr, ptr %4914, align 8, !tbaa !27
  %4916 = load i64, ptr %16, align 8, !tbaa !25
  %4917 = getelementptr inbounds double, ptr %4915, i64 %4916
  %4918 = load double, ptr %4917, align 8, !tbaa !28
  %4919 = load ptr, ptr %14, align 8, !tbaa !5
  %4920 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %4918, ptr noundef %4919)
  %4921 = fadd double %4912, %4920
  store double %4921, ptr %33, align 8, !tbaa !28
  %4922 = load double, ptr %34, align 8, !tbaa !28
  %4923 = load ptr, ptr %9, align 8, !tbaa !5
  %4924 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4923, i32 0, i32 4
  %4925 = load ptr, ptr %4924, align 8, !tbaa !27
  %4926 = load i64, ptr %16, align 8, !tbaa !25
  %4927 = getelementptr inbounds double, ptr %4925, i64 %4926
  %4928 = load double, ptr %4927, align 8, !tbaa !28
  %4929 = load ptr, ptr %9, align 8, !tbaa !5
  %4930 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4929, i32 0, i32 4
  %4931 = load ptr, ptr %4930, align 8, !tbaa !27
  %4932 = load i64, ptr %16, align 8, !tbaa !25
  %4933 = getelementptr inbounds double, ptr %4931, i64 %4932
  %4934 = load double, ptr %4933, align 8, !tbaa !28
  %4935 = fmul double %4928, %4934
  %4936 = load ptr, ptr %14, align 8, !tbaa !5
  %4937 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %4935, ptr noundef %4936)
  %4938 = fadd double %4922, %4937
  store double %4938, ptr %34, align 8, !tbaa !28
  br label %4939

4939:                                             ; preds = %4911
  %4940 = load i64, ptr %16, align 8, !tbaa !25
  %4941 = add nsw i64 %4940, 1
  store i64 %4941, ptr %16, align 8, !tbaa !25
  br label %4904, !llvm.loop !69

4942:                                             ; preds = %4904
  %4943 = load double, ptr %33, align 8, !tbaa !28
  %4944 = load double, ptr %34, align 8, !tbaa !28
  %4945 = fneg double %4944
  %4946 = load ptr, ptr %14, align 8, !tbaa !5
  %4947 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %4945, ptr noundef %4946)
  %4948 = fmul double %4943, %4947
  %4949 = load ptr, ptr %10, align 8, !tbaa !5
  %4950 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4949, i32 0, i32 4
  %4951 = load ptr, ptr %4950, align 8, !tbaa !27
  %4952 = getelementptr inbounds double, ptr %4951, i64 0
  store double %4948, ptr %4952, align 8, !tbaa !28
  %4953 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %4953)
  store i32 1, ptr %36, align 4
  br label %5101

4954:                                             ; preds = %4898
  %4955 = load ptr, ptr %8, align 8, !tbaa !5
  %4956 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4955, i32 0, i32 1
  %4957 = load i64, ptr %4956, align 8, !tbaa !35
  %4958 = icmp eq i64 %4957, 2
  br i1 %4958, label %4959, label %5030

4959:                                             ; preds = %4954
  store double 0.000000e+00, ptr %33, align 8, !tbaa !28
  store double 0.000000e+00, ptr %34, align 8, !tbaa !28
  store double 0.000000e+00, ptr %35, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %4960

4960:                                             ; preds = %5010, %4959
  %4961 = load i64, ptr %16, align 8, !tbaa !25
  %4962 = load ptr, ptr %8, align 8, !tbaa !5
  %4963 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %4962, i32 0, i32 2
  %4964 = load i64, ptr %4963, align 8, !tbaa !24
  %4965 = sub nsw i64 %4964, 1
  %4966 = icmp sle i64 %4961, %4965
  br i1 %4966, label %4967, label %5013

4967:                                             ; preds = %4960
  %4968 = load double, ptr %33, align 8, !tbaa !28
  %4969 = load ptr, ptr %9, align 8, !tbaa !5
  %4970 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4969, i32 0, i32 4
  %4971 = load ptr, ptr %4970, align 8, !tbaa !27
  %4972 = load i64, ptr %16, align 8, !tbaa !25
  %4973 = getelementptr inbounds double, ptr %4971, i64 %4972
  %4974 = load double, ptr %4973, align 8, !tbaa !28
  %4975 = load ptr, ptr %14, align 8, !tbaa !5
  %4976 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %4974, ptr noundef %4975)
  %4977 = load ptr, ptr %14, align 8, !tbaa !5
  %4978 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %4976, ptr noundef %4977)
  %4979 = fadd double %4968, %4978
  store double %4979, ptr %33, align 8, !tbaa !28
  %4980 = load double, ptr %34, align 8, !tbaa !28
  %4981 = load ptr, ptr %9, align 8, !tbaa !5
  %4982 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4981, i32 0, i32 4
  %4983 = load ptr, ptr %4982, align 8, !tbaa !27
  %4984 = load i64, ptr %16, align 8, !tbaa !25
  %4985 = getelementptr inbounds double, ptr %4983, i64 %4984
  %4986 = load double, ptr %4985, align 8, !tbaa !28
  %4987 = load ptr, ptr %9, align 8, !tbaa !5
  %4988 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4987, i32 0, i32 4
  %4989 = load ptr, ptr %4988, align 8, !tbaa !27
  %4990 = load i64, ptr %16, align 8, !tbaa !25
  %4991 = getelementptr inbounds double, ptr %4989, i64 %4990
  %4992 = load double, ptr %4991, align 8, !tbaa !28
  %4993 = call double @llvm.fmuladd.f64(double %4986, double %4992, double %4980)
  store double %4993, ptr %34, align 8, !tbaa !28
  %4994 = load double, ptr %35, align 8, !tbaa !28
  %4995 = load ptr, ptr %9, align 8, !tbaa !5
  %4996 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %4995, i32 0, i32 4
  %4997 = load ptr, ptr %4996, align 8, !tbaa !27
  %4998 = load i64, ptr %16, align 8, !tbaa !25
  %4999 = getelementptr inbounds double, ptr %4997, i64 %4998
  %5000 = load double, ptr %4999, align 8, !tbaa !28
  %5001 = load ptr, ptr %14, align 8, !tbaa !5
  %5002 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %5000, ptr noundef %5001)
  %5003 = load ptr, ptr %14, align 8, !tbaa !5
  %5004 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %5002, ptr noundef %5003)
  %5005 = load ptr, ptr %14, align 8, !tbaa !5
  %5006 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %5004, ptr noundef %5005)
  %5007 = load ptr, ptr %14, align 8, !tbaa !5
  %5008 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %5006, ptr noundef %5007)
  %5009 = fadd double %4994, %5008
  store double %5009, ptr %35, align 8, !tbaa !28
  br label %5010

5010:                                             ; preds = %4967
  %5011 = load i64, ptr %16, align 8, !tbaa !25
  %5012 = add nsw i64 %5011, 1
  store i64 %5012, ptr %16, align 8, !tbaa !25
  br label %4960, !llvm.loop !70

5013:                                             ; preds = %4960
  %5014 = load double, ptr %33, align 8, !tbaa !28
  %5015 = load double, ptr %34, align 8, !tbaa !28
  %5016 = fneg double %5015
  %5017 = load ptr, ptr %14, align 8, !tbaa !5
  %5018 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %5016, ptr noundef %5017)
  %5019 = fsub double %5014, %5018
  %5020 = load double, ptr %35, align 8, !tbaa !28
  %5021 = fneg double %5020
  %5022 = load ptr, ptr %14, align 8, !tbaa !5
  %5023 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %5021, ptr noundef %5022)
  %5024 = fmul double %5019, %5023
  %5025 = load ptr, ptr %10, align 8, !tbaa !5
  %5026 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %5025, i32 0, i32 4
  %5027 = load ptr, ptr %5026, align 8, !tbaa !27
  %5028 = getelementptr inbounds double, ptr %5027, i64 0
  store double %5024, ptr %5028, align 8, !tbaa !28
  %5029 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %5029)
  store i32 1, ptr %36, align 4
  br label %5101

5030:                                             ; preds = %4954
  %5031 = load ptr, ptr %8, align 8, !tbaa !5
  %5032 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %5031, i32 0, i32 1
  %5033 = load i64, ptr %5032, align 8, !tbaa !35
  %5034 = icmp eq i64 %5033, 3
  br i1 %5034, label %5035, label %5096

5035:                                             ; preds = %5030
  %5036 = load ptr, ptr %10, align 8, !tbaa !5
  %5037 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %5036, i32 0, i32 4
  %5038 = load ptr, ptr %5037, align 8, !tbaa !27
  %5039 = getelementptr inbounds double, ptr %5038, i64 0
  store double 0.000000e+00, ptr %5039, align 8, !tbaa !28
  store i64 0, ptr %16, align 8, !tbaa !25
  br label %5040

5040:                                             ; preds = %5091, %5035
  %5041 = load i64, ptr %16, align 8, !tbaa !25
  %5042 = load ptr, ptr %8, align 8, !tbaa !5
  %5043 = getelementptr inbounds %"struct.alglib_impl::multiobjectivetestfunction", ptr %5042, i32 0, i32 2
  %5044 = load i64, ptr %5043, align 8, !tbaa !24
  %5045 = sub nsw i64 %5044, 2
  %5046 = icmp sle i64 %5041, %5045
  br i1 %5046, label %5047, label %5094

5047:                                             ; preds = %5040
  %5048 = load ptr, ptr %10, align 8, !tbaa !5
  %5049 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %5048, i32 0, i32 4
  %5050 = load ptr, ptr %5049, align 8, !tbaa !27
  %5051 = getelementptr inbounds double, ptr %5050, i64 0
  %5052 = load double, ptr %5051, align 8, !tbaa !28
  %5053 = load ptr, ptr %9, align 8, !tbaa !5
  %5054 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %5053, i32 0, i32 4
  %5055 = load ptr, ptr %5054, align 8, !tbaa !27
  %5056 = load i64, ptr %16, align 8, !tbaa !25
  %5057 = add nsw i64 %5056, 1
  %5058 = getelementptr inbounds double, ptr %5055, i64 %5057
  %5059 = load double, ptr %5058, align 8, !tbaa !28
  %5060 = load ptr, ptr %9, align 8, !tbaa !5
  %5061 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %5060, i32 0, i32 4
  %5062 = load ptr, ptr %5061, align 8, !tbaa !27
  %5063 = load i64, ptr %16, align 8, !tbaa !25
  %5064 = getelementptr inbounds double, ptr %5062, i64 %5063
  %5065 = load double, ptr %5064, align 8, !tbaa !28
  %5066 = load ptr, ptr %9, align 8, !tbaa !5
  %5067 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %5066, i32 0, i32 4
  %5068 = load ptr, ptr %5067, align 8, !tbaa !27
  %5069 = load i64, ptr %16, align 8, !tbaa !25
  %5070 = getelementptr inbounds double, ptr %5068, i64 %5069
  %5071 = load double, ptr %5070, align 8, !tbaa !28
  %5072 = fneg double %5065
  %5073 = call double @llvm.fmuladd.f64(double %5072, double %5071, double %5059)
  %5074 = load ptr, ptr %14, align 8, !tbaa !5
  %5075 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %5073, ptr noundef %5074)
  %5076 = load ptr, ptr %9, align 8, !tbaa !5
  %5077 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %5076, i32 0, i32 4
  %5078 = load ptr, ptr %5077, align 8, !tbaa !27
  %5079 = load i64, ptr %16, align 8, !tbaa !25
  %5080 = getelementptr inbounds double, ptr %5078, i64 %5079
  %5081 = load double, ptr %5080, align 8, !tbaa !28
  %5082 = fsub double %5081, 1.000000e+00
  %5083 = load ptr, ptr %14, align 8, !tbaa !5
  %5084 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %5082, ptr noundef %5083)
  %5085 = call double @llvm.fmuladd.f64(double 1.000000e+02, double %5075, double %5084)
  %5086 = fadd double %5052, %5085
  %5087 = load ptr, ptr %10, align 8, !tbaa !5
  %5088 = getelementptr inbounds %"struct.alglib_impl::ae_vector", ptr %5087, i32 0, i32 4
  %5089 = load ptr, ptr %5088, align 8, !tbaa !27
  %5090 = getelementptr inbounds double, ptr %5089, i64 0
  store double %5086, ptr %5090, align 8, !tbaa !28
  br label %5091

5091:                                             ; preds = %5047
  %5092 = load i64, ptr %16, align 8, !tbaa !25
  %5093 = add nsw i64 %5092, 1
  store i64 %5093, ptr %16, align 8, !tbaa !25
  br label %5040, !llvm.loop !71

5094:                                             ; preds = %5040
  %5095 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %5095)
  store i32 1, ptr %36, align 4
  br label %5101

5096:                                             ; preds = %5030
  %5097 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.323, ptr noundef %5097)
  br label %5098

5098:                                             ; preds = %5096, %4790
  %5099 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef @.str.324, ptr noundef %5099)
  %5100 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %5100)
  store i32 0, ptr %36, align 4
  br label %5101

5101:                                             ; preds = %5098, %5094, %5013, %4942, %4896, %4808, %4787, %4500, %4485, %4412, %4184, %3873, %3763, %3504, %3259, %3020, %2881, %2697, %2589, %2454, %2319, %2223, %2112, %1947, %1823, %1807, %1749, %1658, %1523, %1439, %1357, %1293, %1240, %1164, %1093, %1017, %1001, %935, %896, %843, %821, %801, %794, %736, %699, %644, %607, %541, %527
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 64, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 64, 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 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #5
  %5102 = load i32, ptr %36, align 4
  switch i32 %5102, label %5104 [
    i32 0, label %5103
    i32 1, label %5103
  ]

5103:                                             ; preds = %5101, %5101
  ret void

5104:                                             ; preds = %5101
  unreachable
}

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

declare void @_ZN11alglib_impl6raddvrEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

declare noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef, ptr noundef) #2

declare noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef, ptr noundef) #2

declare noundef double @_ZN11alglib_impl7ae_coshEdPNS_8ae_stateE(double noundef, ptr noundef) #2

declare noundef double @_ZN11alglib_impl7ae_sinhEdPNS_8ae_stateE(double noundef, ptr noundef) #2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { mustprogress 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, !13, i64 0}
!12 = !{!"_ZTSN11alglib_impl26multiobjectivetestfunctionE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !14, i64 32, !13, i64 112, !14, i64 120, !14, i64 200, !13, i64 280, !16, i64 288, !16, i64 352, !16, i64 416, !10, i64 480, !14, i64 488, !16, i64 568, !14, i64 632, !14, i64 712, !14, i64 792, !16, i64 872, !16, i64 936, !14, i64 1000, !16, i64 1080, !16, i64 1144, !13, i64 1208, !16, i64 1216, !14, i64 1280, !14, i64 1360, !14, i64 1440, !16, i64 1520, !16, i64 1584, !13, i64 1648}
!13 = !{!"long", !7, i64 0}
!14 = !{!"_ZTSN11alglib_impl9ae_matrixE", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !10, i64 32, !15, i64 40, !7, i64 72}
!15 = !{!"_ZTSN11alglib_impl12ae_dyn_blockE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!16 = !{!"_ZTSN11alglib_impl9ae_vectorE", !13, i64 0, !13, i64 8, !10, i64 16, !15, i64 24, !7, i64 56}
!17 = !{i8 0, i8 2}
!18 = !{}
!19 = !{!16, !13, i64 0}
!20 = !{!12, !13, i64 24}
!21 = !{!12, !13, i64 1648}
!22 = !{!14, !13, i64 0}
!23 = !{!14, !13, i64 8}
!24 = !{!12, !13, i64 16}
!25 = !{!13, !13, i64 0}
!26 = !{!12, !10, i64 480}
!27 = !{!7, !7, i64 0}
!28 = !{!29, !29, i64 0}
!29 = !{!"double", !7, i64 0}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = distinct !{!32, !31}
!33 = distinct !{!33, !31}
!34 = distinct !{!34, !31}
!35 = !{!12, !13, i64 8}
!36 = distinct !{!36, !31}
!37 = distinct !{!37, !31}
!38 = distinct !{!38, !31}
!39 = distinct !{!39, !31}
!40 = distinct !{!40, !31}
!41 = distinct !{!41, !31}
!42 = distinct !{!42, !31}
!43 = distinct !{!43, !31}
!44 = distinct !{!44, !31}
!45 = distinct !{!45, !31}
!46 = distinct !{!46, !31}
!47 = distinct !{!47, !31}
!48 = distinct !{!48, !31}
!49 = distinct !{!49, !31}
!50 = distinct !{!50, !31}
!51 = distinct !{!51, !31}
!52 = distinct !{!52, !31}
!53 = distinct !{!53, !31}
!54 = distinct !{!54, !31}
!55 = distinct !{!55, !31}
!56 = distinct !{!56, !31}
!57 = distinct !{!57, !31}
!58 = distinct !{!58, !31}
!59 = distinct !{!59, !31}
!60 = distinct !{!60, !31}
!61 = distinct !{!61, !31}
!62 = distinct !{!62, !31}
!63 = distinct !{!63, !31}
!64 = distinct !{!64, !31}
!65 = distinct !{!65, !31}
!66 = distinct !{!66, !31}
!67 = distinct !{!67, !31}
!68 = distinct !{!68, !31}
!69 = distinct !{!69, !31}
!70 = distinct !{!70, !31}
!71 = distinct !{!71, !31}


; 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"

%"struct.alglib_impl::ae_frame" = type { %"struct.alglib_impl::ae_dyn_block" }
%"struct.alglib_impl::ae_dyn_block" = type { ptr, ptr, ptr, ptr }
%"struct.alglib_impl::ae_vector" = type { i64, i64, i8, %"struct.alglib_impl::ae_dyn_block", %union.anon.0 }
%union.anon.0 = type { ptr }

@.str.313 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.314 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.315 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.316 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.317 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.318 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.319 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.320 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.321 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.322 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.323 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.324 = external hidden unnamed_addr constant [37 x i8], align 1

; 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 nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #1

; 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 #2

declare void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef, i64 noundef, i64 noundef, ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef) local_unnamed_addr #2

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

declare void @_ZN11alglib_impl11rmatrixgemvElldPKNS_9ae_matrixElllPKNS_9ae_vectorEldPS3_lPNS_8ae_stateE(i64 noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #2

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

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

declare void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef, i64 noundef, double noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @_ZN11alglib_impl5rgemvElldPKNS_9ae_matrixElPKNS_9ae_vectorEdPS3_PNS_8ae_stateE(i64 noundef, i64 noundef, double noundef, ptr noundef, i64 noundef, ptr noundef, double noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef, double noundef, ptr noundef) local_unnamed_addr #2

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

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

declare noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN11alglib_impl8motfevalEPKNS_26multiobjectivetestfunctionEPKNS_9ae_vectorEPS3_bPNS_9ae_matrixEbPNS_8ae_stateE(ptr noundef %0, ptr noundef %1, ptr noundef readonly %2, i1 noundef zeroext %3, ptr noundef %4, i1 noundef zeroext %5, ptr noundef %6) local_unnamed_addr #4 {
switch.edge:
  %7 = alloca %"struct.alglib_impl::ae_frame", align 8
  %8 = alloca %"struct.alglib_impl::ae_vector", align 8
  %9 = alloca %"struct.alglib_impl::ae_vector", align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %9) #6
  call void @_ZN11alglib_impl13ae_frame_makeEPNS_8ae_stateEPNS_8ae_frameE(ptr noundef %6, ptr noundef nonnull %7)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %8, i8 0, i64 64, i1 false)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %9, i8 0, i64 64, i1 false)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %8, i64 noundef 0, i64 noundef 3, ptr noundef %6, i1 noundef zeroext true)
  call void @_ZN11alglib_impl14ae_vector_initEPNS_9ae_vectorEllPNS_8ae_stateEb(ptr noundef nonnull %9, i64 noundef 0, i64 noundef 3, ptr noundef %6, i1 noundef zeroext true)
  %10 = load i64, ptr %0, align 8, !tbaa !5
  %11 = icmp ult i64 %10, 52
  %switch.cast = trunc i64 %10 to i52
  %switch.downshift = lshr i52 -1125899906842609, %switch.cast
  %switch.masked = trunc i52 %switch.downshift to i1
  %12 = select i1 %11, i1 %switch.masked, i1 false
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %12, ptr noundef nonnull @.str.313, ptr noundef %6)
  br i1 %3, label %13, label %21

13:                                               ; preds = %switch.edge
  %14 = load i64, ptr %2, align 8, !tbaa !15
  %15 = getelementptr inbounds i8, ptr %0, i64 24
  %16 = load i64, ptr %15, align 8, !tbaa !16
  %17 = getelementptr inbounds i8, ptr %0, i64 1648
  %18 = load i64, ptr %17, align 8, !tbaa !17
  %19 = add nsw i64 %18, %16
  %20 = icmp sge i64 %14, %19
  br label %21

21:                                               ; preds = %13, %switch.edge
  %22 = phi i1 [ true, %switch.edge ], [ %20, %13 ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %22, ptr noundef nonnull @.str.314, ptr noundef %6)
  br i1 %5, label %23, label %.critedge

23:                                               ; preds = %21
  %24 = load i64, ptr %4, align 8, !tbaa !18
  %25 = getelementptr inbounds i8, ptr %0, i64 24
  %26 = load i64, ptr %25, align 8, !tbaa !16
  %27 = getelementptr inbounds i8, ptr %0, i64 1648
  %28 = load i64, ptr %27, align 8, !tbaa !17
  %29 = add nsw i64 %28, %26
  %30 = icmp sge i64 %24, %29
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %30, ptr noundef nonnull @.str.315, ptr noundef %6)
  %31 = getelementptr inbounds i8, ptr %4, i64 8
  %32 = load i64, ptr %31, align 8, !tbaa !19
  %33 = getelementptr inbounds i8, ptr %0, i64 16
  %34 = load i64, ptr %33, align 8, !tbaa !20
  %35 = icmp sge i64 %32, %34
  br label %36

.critedge:                                        ; preds = %21
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext true, ptr noundef nonnull @.str.315, ptr noundef %6)
  br label %36

36:                                               ; preds = %.critedge, %23
  %37 = phi i1 [ %35, %23 ], [ true, %.critedge ]
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %37, ptr noundef nonnull @.str.315, ptr noundef %6)
  %38 = getelementptr inbounds i8, ptr %0, i64 16
  %39 = load i64, ptr %38, align 8, !tbaa !20
  %40 = getelementptr inbounds i8, ptr %0, i64 24
  %41 = load i64, ptr %40, align 8, !tbaa !16
  %42 = load i64, ptr %0, align 8, !tbaa !5
  switch i64 %42, label %762 [
    i64 0, label %43
    i64 1, label %240
    i64 2, label %426
  ]

43:                                               ; preds = %36
  %44 = getelementptr inbounds i8, ptr %0, i64 480
  %45 = load i8, ptr %44, align 8, !tbaa !21, !range !22, !noundef !23
  %46 = trunc nuw i8 %45 to i1
  %47 = xor i1 %46, true
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %47, ptr noundef nonnull @.str.316, ptr noundef %6)
  %.not1483.not1622 = icmp sgt i64 %41, 0
  br i1 %.not1483.not1622, label %.lr.ph1627, label %.preheader1503

.lr.ph1627:                                       ; preds = %43
  %48 = getelementptr inbounds i8, ptr %0, i64 624
  %49 = getelementptr inbounds i8, ptr %2, i64 56
  %50 = getelementptr inbounds i8, ptr %0, i64 632
  %51 = getelementptr inbounds i8, ptr %0, i64 712
  %.not1486.not1615 = icmp sgt i64 %39, 0
  %52 = getelementptr inbounds i8, ptr %0, i64 864
  %53 = getelementptr inbounds i8, ptr %1, i64 56
  %54 = getelementptr inbounds i8, ptr %4, i64 72
  %brmerge1742.not = and i1 %.not1486.not1615, %3
  br label %64

.preheader1503:                                   ; preds = %._crit_edge1619, %43
  %55 = getelementptr inbounds i8, ptr %0, i64 1648
  %56 = load i64, ptr %55, align 8, !tbaa !17
  %.not1484.not1635 = icmp sgt i64 %56, 0
  br i1 %.not1484.not1635, label %.lr.ph1639, label %._crit_edge1640

.lr.ph1639:                                       ; preds = %.preheader1503
  %57 = getelementptr inbounds i8, ptr %0, i64 1272
  %58 = getelementptr inbounds i8, ptr %2, i64 56
  %59 = getelementptr inbounds i8, ptr %0, i64 1280
  %60 = getelementptr inbounds i8, ptr %0, i64 1360
  %.not1485.not1628 = icmp sgt i64 %39, 0
  %61 = getelementptr inbounds i8, ptr %0, i64 1512
  %62 = getelementptr inbounds i8, ptr %1, i64 56
  %63 = getelementptr inbounds i8, ptr %4, i64 72
  %brmerge1744.not = and i1 %.not1485.not1628, %3
  br label %151

64:                                               ; preds = %.lr.ph1627, %._crit_edge1619
  %.014501623 = phi i64 [ 0, %.lr.ph1627 ], [ %150, %._crit_edge1619 ]
  br i1 %3, label %65, label %71

65:                                               ; preds = %64
  %66 = load ptr, ptr %48, align 8, !tbaa !24
  %67 = getelementptr inbounds double, ptr %66, i64 %.014501623
  %68 = load double, ptr %67, align 8, !tbaa !25
  %69 = load ptr, ptr %49, align 8, !tbaa !24
  %70 = getelementptr inbounds double, ptr %69, i64 %.014501623
  store double %68, ptr %70, align 8, !tbaa !25
  br label %71

71:                                               ; preds = %65, %64
  br i1 %5, label %72, label %73

72:                                               ; preds = %71
  call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %39, double noundef 0.000000e+00, ptr noundef %4, i64 noundef %.014501623, ptr noundef %6)
  br label %73

73:                                               ; preds = %72, %71
  br i1 %3, label %74, label %82

74:                                               ; preds = %73
  %75 = load ptr, ptr %49, align 8, !tbaa !24
  %76 = getelementptr inbounds double, ptr %75, i64 %.014501623
  %77 = load double, ptr %76, align 8, !tbaa !25
  %78 = call noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %39, ptr noundef %1, ptr noundef nonnull %50, i64 noundef %.014501623, ptr noundef %6)
  %79 = fadd double %77, %78
  %80 = load ptr, ptr %49, align 8, !tbaa !24
  %81 = getelementptr inbounds double, ptr %80, i64 %.014501623
  store double %79, ptr %81, align 8, !tbaa !25
  br label %82

82:                                               ; preds = %74, %73
  br i1 %5, label %83, label %84

83:                                               ; preds = %82
  call void @_ZN11alglib_impl6raddrrEldPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %39, double noundef 1.000000e+00, ptr noundef nonnull %50, i64 noundef %.014501623, ptr noundef %4, i64 noundef %.014501623, ptr noundef %6)
  br label %84

84:                                               ; preds = %83, %82
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %39, ptr noundef nonnull %8, ptr noundef %6)
  %85 = mul nsw i64 %.014501623, %39
  call void @_ZN11alglib_impl11rmatrixgemvElldPKNS_9ae_matrixElllPKNS_9ae_vectorEldPS3_lPNS_8ae_stateE(i64 noundef %39, i64 noundef %39, double noundef 1.000000e+00, ptr noundef nonnull %51, i64 noundef %85, i64 noundef 0, i64 noundef 0, ptr noundef %1, i64 noundef 0, double noundef 0.000000e+00, ptr noundef nonnull %8, i64 noundef 0, ptr noundef %6)
  br i1 %3, label %86, label %94

86:                                               ; preds = %84
  %87 = load ptr, ptr %49, align 8, !tbaa !24
  %88 = getelementptr inbounds double, ptr %87, i64 %.014501623
  %89 = load double, ptr %88, align 8, !tbaa !25
  %90 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %39, ptr noundef %1, ptr noundef nonnull %8, ptr noundef %6)
  %91 = call double @llvm.fmuladd.f64(double %90, double 5.000000e-01, double %89)
  %92 = load ptr, ptr %49, align 8, !tbaa !24
  %93 = getelementptr inbounds double, ptr %92, i64 %.014501623
  store double %91, ptr %93, align 8, !tbaa !25
  br label %94

94:                                               ; preds = %86, %84
  br i1 %5, label %95, label %.thread1722

95:                                               ; preds = %94
  call void @_ZN11alglib_impl6raddvrEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %39, double noundef 1.000000e+00, ptr noundef nonnull %8, ptr noundef %4, i64 noundef %.014501623, ptr noundef %6)
  br i1 %.not1486.not1615, label %.lr.ph1618.split.us, label %._crit_edge1619

.thread1722:                                      ; preds = %94
  br i1 %brmerge1742.not, label %.lr.ph1618.split.split.us, label %._crit_edge1619

.lr.ph1618.split.us:                              ; preds = %95, %112
  %.014301616.us = phi i64 [ %133, %112 ], [ 0, %95 ]
  br i1 %3, label %96, label %112

96:                                               ; preds = %.lr.ph1618.split.us
  %97 = load ptr, ptr %49, align 8, !tbaa !24
  %98 = getelementptr inbounds double, ptr %97, i64 %.014501623
  %99 = load double, ptr %98, align 8, !tbaa !25
  %100 = load ptr, ptr %52, align 8, !tbaa !24
  %101 = getelementptr inbounds ptr, ptr %100, i64 %.014501623
  %102 = load ptr, ptr %101, align 8, !tbaa !27
  %103 = getelementptr inbounds double, ptr %102, i64 %.014301616.us
  %104 = load double, ptr %103, align 8, !tbaa !25
  %105 = load ptr, ptr %53, align 8, !tbaa !24
  %106 = getelementptr inbounds double, ptr %105, i64 %.014301616.us
  %107 = load double, ptr %106, align 8, !tbaa !25
  %108 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %107, double noundef 4.000000e+00, ptr noundef %6)
  %109 = call double @llvm.fmuladd.f64(double %104, double %108, double %99)
  %110 = load ptr, ptr %49, align 8, !tbaa !24
  %111 = getelementptr inbounds double, ptr %110, i64 %.014501623
  store double %109, ptr %111, align 8, !tbaa !25
  br label %112

112:                                              ; preds = %96, %.lr.ph1618.split.us
  %113 = load ptr, ptr %54, align 8, !tbaa !24
  %114 = getelementptr inbounds ptr, ptr %113, i64 %.014501623
  %115 = load ptr, ptr %114, align 8, !tbaa !27
  %116 = getelementptr inbounds double, ptr %115, i64 %.014301616.us
  %117 = load double, ptr %116, align 8, !tbaa !25
  %118 = load ptr, ptr %52, align 8, !tbaa !24
  %119 = getelementptr inbounds ptr, ptr %118, i64 %.014501623
  %120 = load ptr, ptr %119, align 8, !tbaa !27
  %121 = getelementptr inbounds double, ptr %120, i64 %.014301616.us
  %122 = load double, ptr %121, align 8, !tbaa !25
  %123 = fmul double %122, 4.000000e+00
  %124 = load ptr, ptr %53, align 8, !tbaa !24
  %125 = getelementptr inbounds double, ptr %124, i64 %.014301616.us
  %126 = load double, ptr %125, align 8, !tbaa !25
  %127 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %126, double noundef 3.000000e+00, ptr noundef %6)
  %128 = call double @llvm.fmuladd.f64(double %123, double %127, double %117)
  %129 = load ptr, ptr %54, align 8, !tbaa !24
  %130 = getelementptr inbounds ptr, ptr %129, i64 %.014501623
  %131 = load ptr, ptr %130, align 8, !tbaa !27
  %132 = getelementptr inbounds double, ptr %131, i64 %.014301616.us
  store double %128, ptr %132, align 8, !tbaa !25
  %133 = add nuw nsw i64 %.014301616.us, 1
  %exitcond1705.not = icmp eq i64 %133, %39
  br i1 %exitcond1705.not, label %._crit_edge1619, label %.lr.ph1618.split.us, !llvm.loop !28

.lr.ph1618.split.split.us:                        ; preds = %.thread1722, %.lr.ph1618.split.split.us
  %.014301616.us1620 = phi i64 [ %149, %.lr.ph1618.split.split.us ], [ 0, %.thread1722 ]
  %134 = load ptr, ptr %49, align 8, !tbaa !24
  %135 = getelementptr inbounds double, ptr %134, i64 %.014501623
  %136 = load double, ptr %135, align 8, !tbaa !25
  %137 = load ptr, ptr %52, align 8, !tbaa !24
  %138 = getelementptr inbounds ptr, ptr %137, i64 %.014501623
  %139 = load ptr, ptr %138, align 8, !tbaa !27
  %140 = getelementptr inbounds double, ptr %139, i64 %.014301616.us1620
  %141 = load double, ptr %140, align 8, !tbaa !25
  %142 = load ptr, ptr %53, align 8, !tbaa !24
  %143 = getelementptr inbounds double, ptr %142, i64 %.014301616.us1620
  %144 = load double, ptr %143, align 8, !tbaa !25
  %145 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %144, double noundef 4.000000e+00, ptr noundef %6)
  %146 = call double @llvm.fmuladd.f64(double %141, double %145, double %136)
  %147 = load ptr, ptr %49, align 8, !tbaa !24
  %148 = getelementptr inbounds double, ptr %147, i64 %.014501623
  store double %146, ptr %148, align 8, !tbaa !25
  %149 = add nuw nsw i64 %.014301616.us1620, 1
  %exitcond1704.not = icmp eq i64 %149, %39
  br i1 %exitcond1704.not, label %._crit_edge1619, label %.lr.ph1618.split.split.us, !llvm.loop !28

._crit_edge1619:                                  ; preds = %.lr.ph1618.split.split.us, %112, %.thread1722, %95
  %150 = add nuw nsw i64 %.014501623, 1
  %exitcond1706.not = icmp eq i64 %150, %41
  br i1 %exitcond1706.not, label %.preheader1503, label %64, !llvm.loop !30

151:                                              ; preds = %.lr.ph1639, %._crit_edge1632
  %.114511636 = phi i64 [ 0, %.lr.ph1639 ], [ %238, %._crit_edge1632 ]
  %152 = add nsw i64 %.114511636, %41
  br i1 %3, label %153, label %159

153:                                              ; preds = %151
  %154 = load ptr, ptr %57, align 8, !tbaa !24
  %155 = getelementptr inbounds double, ptr %154, i64 %.114511636
  %156 = load double, ptr %155, align 8, !tbaa !25
  %157 = load ptr, ptr %58, align 8, !tbaa !24
  %158 = getelementptr inbounds double, ptr %157, i64 %152
  store double %156, ptr %158, align 8, !tbaa !25
  br label %159

159:                                              ; preds = %153, %151
  br i1 %5, label %160, label %161

160:                                              ; preds = %159
  call void @_ZN11alglib_impl5rsetrEldPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %39, double noundef 0.000000e+00, ptr noundef %4, i64 noundef %152, ptr noundef %6)
  br label %161

161:                                              ; preds = %160, %159
  br i1 %3, label %162, label %170

162:                                              ; preds = %161
  %163 = load ptr, ptr %58, align 8, !tbaa !24
  %164 = getelementptr inbounds double, ptr %163, i64 %152
  %165 = load double, ptr %164, align 8, !tbaa !25
  %166 = call noundef double @_ZN11alglib_impl6rdotvrElPKNS_9ae_vectorEPKNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %39, ptr noundef %1, ptr noundef nonnull %59, i64 noundef %.114511636, ptr noundef %6)
  %167 = fadd double %165, %166
  %168 = load ptr, ptr %58, align 8, !tbaa !24
  %169 = getelementptr inbounds double, ptr %168, i64 %152
  store double %167, ptr %169, align 8, !tbaa !25
  br label %170

170:                                              ; preds = %162, %161
  br i1 %5, label %171, label %172

171:                                              ; preds = %170
  call void @_ZN11alglib_impl6raddrrEldPKNS_9ae_matrixElPS0_lPNS_8ae_stateE(i64 noundef %39, double noundef 1.000000e+00, ptr noundef nonnull %59, i64 noundef %.114511636, ptr noundef %4, i64 noundef %152, ptr noundef %6)
  br label %172

172:                                              ; preds = %171, %170
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %39, ptr noundef nonnull %8, ptr noundef %6)
  %173 = mul nsw i64 %.114511636, %39
  call void @_ZN11alglib_impl11rmatrixgemvElldPKNS_9ae_matrixElllPKNS_9ae_vectorEldPS3_lPNS_8ae_stateE(i64 noundef %39, i64 noundef %39, double noundef 1.000000e+00, ptr noundef nonnull %60, i64 noundef %173, i64 noundef 0, i64 noundef 0, ptr noundef %1, i64 noundef 0, double noundef 0.000000e+00, ptr noundef nonnull %8, i64 noundef 0, ptr noundef %6)
  br i1 %3, label %174, label %182

174:                                              ; preds = %172
  %175 = load ptr, ptr %58, align 8, !tbaa !24
  %176 = getelementptr inbounds double, ptr %175, i64 %152
  %177 = load double, ptr %176, align 8, !tbaa !25
  %178 = call noundef double @_ZN11alglib_impl5rdotvElPKNS_9ae_vectorES2_PNS_8ae_stateE(i64 noundef %39, ptr noundef %1, ptr noundef nonnull %8, ptr noundef %6)
  %179 = call double @llvm.fmuladd.f64(double %178, double 5.000000e-01, double %177)
  %180 = load ptr, ptr %58, align 8, !tbaa !24
  %181 = getelementptr inbounds double, ptr %180, i64 %152
  store double %179, ptr %181, align 8, !tbaa !25
  br label %182

182:                                              ; preds = %174, %172
  br i1 %5, label %183, label %.thread1723

183:                                              ; preds = %182
  call void @_ZN11alglib_impl6raddvrEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef %39, double noundef 1.000000e+00, ptr noundef nonnull %8, ptr noundef %4, i64 noundef %152, ptr noundef %6)
  br i1 %.not1485.not1628, label %.lr.ph1631.split.us, label %._crit_edge1632

.thread1723:                                      ; preds = %182
  br i1 %brmerge1744.not, label %.lr.ph1631.split.split.us, label %._crit_edge1632

.lr.ph1631.split.us:                              ; preds = %183, %200
  %.114311629.us = phi i64 [ %221, %200 ], [ 0, %183 ]
  br i1 %3, label %184, label %200

184:                                              ; preds = %.lr.ph1631.split.us
  %185 = load ptr, ptr %58, align 8, !tbaa !24
  %186 = getelementptr inbounds double, ptr %185, i64 %152
  %187 = load double, ptr %186, align 8, !tbaa !25
  %188 = load ptr, ptr %61, align 8, !tbaa !24
  %189 = getelementptr inbounds ptr, ptr %188, i64 %.114511636
  %190 = load ptr, ptr %189, align 8, !tbaa !27
  %191 = getelementptr inbounds double, ptr %190, i64 %.114311629.us
  %192 = load double, ptr %191, align 8, !tbaa !25
  %193 = load ptr, ptr %62, align 8, !tbaa !24
  %194 = getelementptr inbounds double, ptr %193, i64 %.114311629.us
  %195 = load double, ptr %194, align 8, !tbaa !25
  %196 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %195, double noundef 4.000000e+00, ptr noundef %6)
  %197 = call double @llvm.fmuladd.f64(double %192, double %196, double %187)
  %198 = load ptr, ptr %58, align 8, !tbaa !24
  %199 = getelementptr inbounds double, ptr %198, i64 %152
  store double %197, ptr %199, align 8, !tbaa !25
  br label %200

200:                                              ; preds = %184, %.lr.ph1631.split.us
  %201 = load ptr, ptr %63, align 8, !tbaa !24
  %202 = getelementptr inbounds ptr, ptr %201, i64 %152
  %203 = load ptr, ptr %202, align 8, !tbaa !27
  %204 = getelementptr inbounds double, ptr %203, i64 %.114311629.us
  %205 = load double, ptr %204, align 8, !tbaa !25
  %206 = load ptr, ptr %61, align 8, !tbaa !24
  %207 = getelementptr inbounds ptr, ptr %206, i64 %.114511636
  %208 = load ptr, ptr %207, align 8, !tbaa !27
  %209 = getelementptr inbounds double, ptr %208, i64 %.114311629.us
  %210 = load double, ptr %209, align 8, !tbaa !25
  %211 = fmul double %210, 4.000000e+00
  %212 = load ptr, ptr %62, align 8, !tbaa !24
  %213 = getelementptr inbounds double, ptr %212, i64 %.114311629.us
  %214 = load double, ptr %213, align 8, !tbaa !25
  %215 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %214, double noundef 3.000000e+00, ptr noundef %6)
  %216 = call double @llvm.fmuladd.f64(double %211, double %215, double %205)
  %217 = load ptr, ptr %63, align 8, !tbaa !24
  %218 = getelementptr inbounds ptr, ptr %217, i64 %152
  %219 = load ptr, ptr %218, align 8, !tbaa !27
  %220 = getelementptr inbounds double, ptr %219, i64 %.114311629.us
  store double %216, ptr %220, align 8, !tbaa !25
  %221 = add nuw nsw i64 %.114311629.us, 1
  %exitcond1708.not = icmp eq i64 %221, %39
  br i1 %exitcond1708.not, label %._crit_edge1632, label %.lr.ph1631.split.us, !llvm.loop !31

.lr.ph1631.split.split.us:                        ; preds = %.thread1723, %.lr.ph1631.split.split.us
  %.114311629.us1633 = phi i64 [ %237, %.lr.ph1631.split.split.us ], [ 0, %.thread1723 ]
  %222 = load ptr, ptr %58, align 8, !tbaa !24
  %223 = getelementptr inbounds double, ptr %222, i64 %152
  %224 = load double, ptr %223, align 8, !tbaa !25
  %225 = load ptr, ptr %61, align 8, !tbaa !24
  %226 = getelementptr inbounds ptr, ptr %225, i64 %.114511636
  %227 = load ptr, ptr %226, align 8, !tbaa !27
  %228 = getelementptr inbounds double, ptr %227, i64 %.114311629.us1633
  %229 = load double, ptr %228, align 8, !tbaa !25
  %230 = load ptr, ptr %62, align 8, !tbaa !24
  %231 = getelementptr inbounds double, ptr %230, i64 %.114311629.us1633
  %232 = load double, ptr %231, align 8, !tbaa !25
  %233 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %232, double noundef 4.000000e+00, ptr noundef %6)
  %234 = call double @llvm.fmuladd.f64(double %229, double %233, double %224)
  %235 = load ptr, ptr %58, align 8, !tbaa !24
  %236 = getelementptr inbounds double, ptr %235, i64 %152
  store double %234, ptr %236, align 8, !tbaa !25
  %237 = add nuw nsw i64 %.114311629.us1633, 1
  %exitcond1707.not = icmp eq i64 %237, %39
  br i1 %exitcond1707.not, label %._crit_edge1632, label %.lr.ph1631.split.split.us, !llvm.loop !31

._crit_edge1632:                                  ; preds = %.lr.ph1631.split.split.us, %200, %.thread1723, %183
  %238 = add nuw nsw i64 %.114511636, 1
  %239 = load i64, ptr %55, align 8, !tbaa !17
  %.not1484.not = icmp slt i64 %238, %239
  br i1 %.not1484.not, label %151, label %._crit_edge1640, !llvm.loop !32

240:                                              ; preds = %36
  %241 = xor i1 %5, true
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %241, ptr noundef nonnull @.str.317, ptr noundef %6)
  br i1 %3, label %242, label %._crit_edge1640

242:                                              ; preds = %240
  %243 = load i64, ptr %38, align 8, !tbaa !20
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %243, ptr noundef nonnull %9, ptr noundef %6)
  %244 = getelementptr inbounds i8, ptr %0, i64 480
  %245 = load i8, ptr %244, align 8, !tbaa !21, !range !22, !noundef !23
  %246 = trunc nuw i8 %245 to i1
  %247 = load i64, ptr %38, align 8, !tbaa !20
  br i1 %246, label %248, label %250

248:                                              ; preds = %242
  %249 = getelementptr inbounds i8, ptr %0, i64 488
  call void @_ZN11alglib_impl5rgemvElldPKNS_9ae_matrixElPKNS_9ae_vectorEdPS3_PNS_8ae_stateE(i64 noundef %247, i64 noundef %247, double noundef 1.000000e+00, ptr noundef nonnull %249, i64 noundef 0, ptr noundef %1, double noundef 0.000000e+00, ptr noundef nonnull %9, ptr noundef %6)
  br label %251

250:                                              ; preds = %242
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %247, ptr noundef %1, ptr noundef nonnull %9, ptr noundef %6)
  br label %251

251:                                              ; preds = %250, %248
  %252 = getelementptr inbounds i8, ptr %2, i64 56
  %253 = load ptr, ptr %252, align 8, !tbaa !24
  store double 0.000000e+00, ptr %253, align 8, !tbaa !25
  %254 = getelementptr inbounds i8, ptr %0, i64 8
  %255 = load i64, ptr %254, align 8, !tbaa !33
  switch i64 %255, label %.thread [
    i64 0, label %.preheader1510
    i64 1, label %.preheader1511
    i64 2, label %.preheader1513
    i64 3, label %.preheader1514
    i64 4, label %.preheader1515
    i64 5, label %353
    i64 6, label %359
    i64 7, label %366
    i64 8, label %.preheader1516
    i64 9, label %.preheader1517
    i64 10, label %.preheader1518
  ]

.preheader1518:                                   ; preds = %251
  %256 = load i64, ptr %38, align 8, !tbaa !20
  %.not14741520 = icmp slt i64 %256, 2
  br i1 %.not14741520, label %._crit_edge1640, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader1518
  %257 = getelementptr inbounds i8, ptr %9, i64 56
  br label %396

.preheader1517:                                   ; preds = %251
  %258 = load i64, ptr %38, align 8, !tbaa !20
  %.not1475.not1522 = icmp sgt i64 %258, 0
  br i1 %.not1475.not1522, label %.lr.ph1524, label %._crit_edge1640

.lr.ph1524:                                       ; preds = %.preheader1517
  %259 = getelementptr inbounds i8, ptr %9, i64 56
  br label %384

.preheader1516:                                   ; preds = %251
  %260 = load i64, ptr %38, align 8, !tbaa !20
  %.not1476.not1526 = icmp sgt i64 %260, 0
  br i1 %.not1476.not1526, label %.lr.ph1528, label %._crit_edge1640

.lr.ph1528:                                       ; preds = %.preheader1516
  %261 = getelementptr inbounds i8, ptr %9, i64 56
  br label %372

.preheader1515:                                   ; preds = %251
  %262 = load i64, ptr %38, align 8, !tbaa !20
  %.not14771530 = icmp slt i64 %262, 2
  br i1 %.not14771530, label %._crit_edge1640, label %.lr.ph1532

.lr.ph1532:                                       ; preds = %.preheader1515
  %263 = getelementptr inbounds i8, ptr %9, i64 56
  br label %331

.preheader1514:                                   ; preds = %251
  %264 = load i64, ptr %38, align 8, !tbaa !20
  %.not1478.not1534 = icmp sgt i64 %264, 0
  br i1 %.not1478.not1534, label %.lr.ph1536, label %._crit_edge1640

.lr.ph1536:                                       ; preds = %.preheader1514
  %265 = getelementptr inbounds i8, ptr %9, i64 56
  br label %320

.preheader1513:                                   ; preds = %251
  %266 = load i64, ptr %38, align 8, !tbaa !20
  %.not1479.not1540 = icmp sgt i64 %266, 0
  br i1 %.not1479.not1540, label %.preheader1512.lr.ph, label %._crit_edge1640

.preheader1512.lr.ph:                             ; preds = %.preheader1513
  %267 = getelementptr inbounds i8, ptr %9, i64 56
  br label %.preheader1512

.preheader1511:                                   ; preds = %251
  %268 = load i64, ptr %38, align 8, !tbaa !20
  %.not1481.not1543 = icmp sgt i64 %268, 0
  br i1 %.not1481.not1543, label %.lr.ph1547, label %._crit_edge1548

.lr.ph1547:                                       ; preds = %.preheader1511
  %269 = getelementptr inbounds i8, ptr %9, i64 56
  br label %283

.preheader1510:                                   ; preds = %251
  %270 = load i64, ptr %38, align 8, !tbaa !20
  %.not1482.not1550 = icmp sgt i64 %270, 0
  br i1 %.not1482.not1550, label %.lr.ph1552, label %._crit_edge1640

.lr.ph1552:                                       ; preds = %.preheader1510
  %271 = getelementptr inbounds i8, ptr %9, i64 56
  br label %272

272:                                              ; preds = %.lr.ph1552, %272
  %.214321551 = phi i64 [ 0, %.lr.ph1552 ], [ %281, %272 ]
  %273 = load ptr, ptr %252, align 8, !tbaa !24
  %274 = load double, ptr %273, align 8, !tbaa !25
  %275 = load ptr, ptr %271, align 8, !tbaa !24
  %276 = getelementptr inbounds double, ptr %275, i64 %.214321551
  %277 = load double, ptr %276, align 8, !tbaa !25
  %278 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %277, ptr noundef %6)
  %279 = fadd double %274, %278
  %280 = load ptr, ptr %252, align 8, !tbaa !24
  store double %279, ptr %280, align 8, !tbaa !25
  %281 = add nuw nsw i64 %.214321551, 1
  %282 = load i64, ptr %38, align 8, !tbaa !20
  %.not1482.not = icmp slt i64 %281, %282
  br i1 %.not1482.not, label %272, label %._crit_edge1640, !llvm.loop !34

283:                                              ; preds = %.lr.ph1547, %283
  %.314331546 = phi i64 [ 0, %.lr.ph1547 ], [ %294, %283 ]
  %.014481545 = phi double [ 1.000000e+00, %.lr.ph1547 ], [ %293, %283 ]
  %.014491544 = phi double [ 0.000000e+00, %.lr.ph1547 ], [ %288, %283 ]
  %284 = load ptr, ptr %269, align 8, !tbaa !24
  %285 = getelementptr inbounds double, ptr %284, i64 %.314331546
  %286 = load double, ptr %285, align 8, !tbaa !25
  %287 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %286, ptr noundef %6)
  %288 = fadd double %.014491544, %287
  %289 = load ptr, ptr %269, align 8, !tbaa !24
  %290 = getelementptr inbounds double, ptr %289, i64 %.314331546
  %291 = load double, ptr %290, align 8, !tbaa !25
  %292 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %291, ptr noundef %6)
  %293 = fmul double %.014481545, %292
  %294 = add nuw nsw i64 %.314331546, 1
  %295 = load i64, ptr %38, align 8, !tbaa !20
  %.not1481.not = icmp slt i64 %294, %295
  br i1 %.not1481.not, label %283, label %._crit_edge1548.loopexit, !llvm.loop !35

._crit_edge1548.loopexit:                         ; preds = %283
  %296 = fadd double %288, %293
  br label %._crit_edge1548

._crit_edge1548:                                  ; preds = %._crit_edge1548.loopexit, %.preheader1511
  %297 = phi double [ 1.000000e+00, %.preheader1511 ], [ %296, %._crit_edge1548.loopexit ]
  %298 = load ptr, ptr %252, align 8, !tbaa !24
  store double %297, ptr %298, align 8, !tbaa !25
  br label %._crit_edge1640

.preheader1512:                                   ; preds = %.preheader1512.lr.ph, %.epilog-lcssa
  %indvars.iv = phi i64 [ 1, %.preheader1512.lr.ph ], [ %indvars.iv.next, %.epilog-lcssa ]
  %.414341541 = phi i64 [ 0, %.preheader1512.lr.ph ], [ %318, %.epilog-lcssa ]
  %299 = load ptr, ptr %267, align 8, !tbaa !24
  %300 = getelementptr inbounds double, ptr %299, i64 %.414341541
  %301 = load double, ptr %300, align 8, !tbaa !25
  %xtraiter = and i64 %indvars.iv, 7
  %302 = icmp ult i64 %.414341541, 7
  br i1 %302, label %.unr-lcssa, label %.preheader1512.new

.preheader1512.new:                               ; preds = %.preheader1512
  %unroll_iter = and i64 %indvars.iv, -8
  br label %303

303:                                              ; preds = %303, %.preheader1512.new
  %.014431538 = phi double [ 0.000000e+00, %.preheader1512.new ], [ %311, %303 ]
  %niter = phi i64 [ 0, %.preheader1512.new ], [ %niter.next.7, %303 ]
  %304 = fadd double %.014431538, %301
  %305 = fadd double %304, %301
  %306 = fadd double %305, %301
  %307 = fadd double %306, %301
  %308 = fadd double %307, %301
  %309 = fadd double %308, %301
  %310 = fadd double %309, %301
  %311 = fadd double %310, %301
  %niter.next.7 = add i64 %niter, 8
  %niter.ncmp.7 = icmp eq i64 %niter.next.7, %unroll_iter
  br i1 %niter.ncmp.7, label %.unr-lcssa, label %303, !llvm.loop !36

.unr-lcssa:                                       ; preds = %303, %.preheader1512
  %.lcssa1839.ph = phi double [ poison, %.preheader1512 ], [ %311, %303 ]
  %.014431538.unr = phi double [ 0.000000e+00, %.preheader1512 ], [ %311, %303 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.epilog-lcssa, label %.epil.preheader

.epil.preheader:                                  ; preds = %.unr-lcssa, %.epil.preheader
  %.014431538.epil = phi double [ %312, %.epil.preheader ], [ %.014431538.unr, %.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %.unr-lcssa ]
  %312 = fadd double %.014431538.epil, %301
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %.epilog-lcssa, label %.epil.preheader, !llvm.loop !37

.epilog-lcssa:                                    ; preds = %.epil.preheader, %.unr-lcssa
  %.lcssa1839 = phi double [ %.lcssa1839.ph, %.unr-lcssa ], [ %312, %.epil.preheader ]
  %313 = load ptr, ptr %252, align 8, !tbaa !24
  %314 = load double, ptr %313, align 8, !tbaa !25
  %315 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %.lcssa1839, ptr noundef %6)
  %316 = fadd double %314, %315
  %317 = load ptr, ptr %252, align 8, !tbaa !24
  store double %316, ptr %317, align 8, !tbaa !25
  %318 = add nuw nsw i64 %.414341541, 1
  %319 = load i64, ptr %38, align 8, !tbaa !20
  %.not1479.not = icmp slt i64 %318, %319
  %indvars.iv.next = add nuw i64 %indvars.iv, 1
  br i1 %.not1479.not, label %.preheader1512, label %._crit_edge1640, !llvm.loop !39

320:                                              ; preds = %.lr.ph1536, %320
  %.514351535 = phi i64 [ 0, %.lr.ph1536 ], [ %329, %320 ]
  %321 = load ptr, ptr %252, align 8, !tbaa !24
  %322 = load double, ptr %321, align 8, !tbaa !25
  %323 = load ptr, ptr %265, align 8, !tbaa !24
  %324 = getelementptr inbounds double, ptr %323, i64 %.514351535
  %325 = load double, ptr %324, align 8, !tbaa !25
  %326 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %325, ptr noundef %6)
  %327 = call noundef double @_ZN11alglib_impl10ae_maxrealEddPNS_8ae_stateE(double noundef %322, double noundef %326, ptr noundef %6)
  %328 = load ptr, ptr %252, align 8, !tbaa !24
  store double %327, ptr %328, align 8, !tbaa !25
  %329 = add nuw nsw i64 %.514351535, 1
  %330 = load i64, ptr %38, align 8, !tbaa !20
  %.not1478.not = icmp slt i64 %329, %330
  br i1 %.not1478.not, label %320, label %._crit_edge1640, !llvm.loop !40

331:                                              ; preds = %.lr.ph1532, %331
  %.614361531 = phi i64 [ 0, %.lr.ph1532 ], [ %335, %331 ]
  %332 = load ptr, ptr %252, align 8, !tbaa !24
  %333 = load double, ptr %332, align 8, !tbaa !25
  %334 = load ptr, ptr %263, align 8, !tbaa !24
  %335 = add nuw nsw i64 %.614361531, 1
  %336 = getelementptr inbounds double, ptr %334, i64 %335
  %337 = load double, ptr %336, align 8, !tbaa !25
  %338 = getelementptr inbounds double, ptr %334, i64 %.614361531
  %339 = load double, ptr %338, align 8, !tbaa !25
  %340 = fneg double %339
  %341 = call double @llvm.fmuladd.f64(double %340, double %339, double %337)
  %342 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %341, ptr noundef %6)
  %343 = load ptr, ptr %263, align 8, !tbaa !24
  %344 = getelementptr inbounds double, ptr %343, i64 %.614361531
  %345 = load double, ptr %344, align 8, !tbaa !25
  %346 = fadd double %345, -1.000000e+00
  %347 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %346, ptr noundef %6)
  %348 = call double @llvm.fmuladd.f64(double %342, double 1.000000e+02, double %347)
  %349 = fadd double %333, %348
  %350 = load ptr, ptr %252, align 8, !tbaa !24
  store double %349, ptr %350, align 8, !tbaa !25
  %351 = load i64, ptr %38, align 8, !tbaa !20
  %352 = add nsw i64 %351, -2
  %.not1477.not = icmp slt i64 %.614361531, %352
  br i1 %.not1477.not, label %331, label %._crit_edge1640, !llvm.loop !41

353:                                              ; preds = %251
  %354 = load i64, ptr %38, align 8, !tbaa !20
  %355 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %354, ptr noundef nonnull %9, ptr noundef %6)
  %356 = fadd double %355, 1.000000e+00
  %357 = fdiv double %355, %356
  %358 = load ptr, ptr %252, align 8, !tbaa !24
  store double %357, ptr %358, align 8, !tbaa !25
  br label %._crit_edge1640

359:                                              ; preds = %251
  %360 = load i64, ptr %38, align 8, !tbaa !20
  %361 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %360, ptr noundef nonnull %9, ptr noundef %6)
  %362 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %361, ptr noundef %6)
  %363 = fadd double %362, 1.000000e+00
  %364 = fdiv double %362, %363
  %365 = load ptr, ptr %252, align 8, !tbaa !24
  store double %364, ptr %365, align 8, !tbaa !25
  br label %._crit_edge1640

366:                                              ; preds = %251
  %367 = load i64, ptr %38, align 8, !tbaa !20
  %368 = call noundef double @_ZN11alglib_impl6rdotv2ElPKNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %367, ptr noundef nonnull %9, ptr noundef %6)
  %369 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %368, ptr noundef %6)
  %370 = fadd double %368, %369
  %371 = load ptr, ptr %252, align 8, !tbaa !24
  store double %370, ptr %371, align 8, !tbaa !25
  br label %._crit_edge1640

372:                                              ; preds = %.lr.ph1528, %372
  %.714371527 = phi i64 [ 0, %.lr.ph1528 ], [ %375, %372 ]
  %373 = load ptr, ptr %252, align 8, !tbaa !24
  %374 = load double, ptr %373, align 8, !tbaa !25
  %375 = add nuw nsw i64 %.714371527, 1
  %376 = uitofp nneg i64 %375 to double
  %377 = load ptr, ptr %261, align 8, !tbaa !24
  %378 = getelementptr inbounds double, ptr %377, i64 %.714371527
  %379 = load double, ptr %378, align 8, !tbaa !25
  %380 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %379, ptr noundef %6)
  %381 = call double @llvm.fmuladd.f64(double %376, double %380, double %374)
  %382 = load ptr, ptr %252, align 8, !tbaa !24
  store double %381, ptr %382, align 8, !tbaa !25
  %383 = load i64, ptr %38, align 8, !tbaa !20
  %.not1476.not = icmp slt i64 %375, %383
  br i1 %.not1476.not, label %372, label %._crit_edge1640, !llvm.loop !42

384:                                              ; preds = %.lr.ph1524, %384
  %.814381523 = phi i64 [ 0, %.lr.ph1524 ], [ %387, %384 ]
  %385 = load ptr, ptr %252, align 8, !tbaa !24
  %386 = load double, ptr %385, align 8, !tbaa !25
  %387 = add nuw nsw i64 %.814381523, 1
  %388 = uitofp nneg i64 %387 to double
  %389 = load ptr, ptr %259, align 8, !tbaa !24
  %390 = getelementptr inbounds double, ptr %389, i64 %.814381523
  %391 = load double, ptr %390, align 8, !tbaa !25
  %392 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %391, ptr noundef %6)
  %393 = call double @llvm.fmuladd.f64(double %388, double %392, double %386)
  %394 = load ptr, ptr %252, align 8, !tbaa !24
  store double %393, ptr %394, align 8, !tbaa !25
  %395 = load i64, ptr %38, align 8, !tbaa !20
  %.not1475.not = icmp slt i64 %387, %395
  br i1 %.not1475.not, label %384, label %._crit_edge1640, !llvm.loop !43

396:                                              ; preds = %.lr.ph, %396
  %.914391521 = phi i64 [ 0, %.lr.ph ], [ %404, %396 ]
  %397 = load ptr, ptr %252, align 8, !tbaa !24
  %398 = load double, ptr %397, align 8, !tbaa !25
  %399 = load ptr, ptr %257, align 8, !tbaa !24
  %400 = getelementptr inbounds double, ptr %399, i64 %.914391521
  %401 = load double, ptr %400, align 8, !tbaa !25
  %402 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %401, ptr noundef %6)
  %403 = load ptr, ptr %257, align 8, !tbaa !24
  %404 = add nuw nsw i64 %.914391521, 1
  %405 = getelementptr inbounds double, ptr %403, i64 %404
  %406 = load double, ptr %405, align 8, !tbaa !25
  %407 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %406, ptr noundef %6)
  %408 = fadd double %407, 1.000000e+00
  %409 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %402, double noundef %408, ptr noundef %6)
  %410 = fadd double %398, %409
  %411 = load ptr, ptr %257, align 8, !tbaa !24
  %412 = getelementptr inbounds double, ptr %411, i64 %404
  %413 = load double, ptr %412, align 8, !tbaa !25
  %414 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %413, ptr noundef %6)
  %415 = load ptr, ptr %257, align 8, !tbaa !24
  %416 = getelementptr inbounds double, ptr %415, i64 %.914391521
  %417 = load double, ptr %416, align 8, !tbaa !25
  %418 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %417, ptr noundef %6)
  %419 = fadd double %418, 1.000000e+00
  %420 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %414, double noundef %419, ptr noundef %6)
  %421 = fadd double %410, %420
  %422 = load ptr, ptr %252, align 8, !tbaa !24
  store double %421, ptr %422, align 8, !tbaa !25
  %423 = load i64, ptr %38, align 8, !tbaa !20
  %424 = add nsw i64 %423, -2
  %.not1474.not = icmp slt i64 %.914391521, %424
  br i1 %.not1474.not, label %396, label %._crit_edge1640, !llvm.loop !44

.thread:                                          ; preds = %251
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.318, ptr noundef %6)
  %.pr = load i64, ptr %0, align 8, !tbaa !5
  %425 = icmp eq i64 %.pr, 2
  br i1 %425, label %.thread1488, label %762

.thread1488:                                      ; preds = %.thread
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %241, ptr noundef nonnull @.str.319, ptr noundef %6)
  br label %428

426:                                              ; preds = %36
  %427 = xor i1 %5, true
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %427, ptr noundef nonnull @.str.319, ptr noundef %6)
  br i1 %3, label %428, label %._crit_edge1640

428:                                              ; preds = %.thread1488, %426
  %429 = load i64, ptr %38, align 8, !tbaa !20
  call void @_ZN11alglib_impl7rallocvElPNS_9ae_vectorEPNS_8ae_stateE(i64 noundef %429, ptr noundef nonnull %9, ptr noundef %6)
  %430 = getelementptr inbounds i8, ptr %0, i64 480
  %431 = load i8, ptr %430, align 8, !tbaa !21, !range !22, !noundef !23
  %432 = trunc nuw i8 %431 to i1
  %433 = load i64, ptr %38, align 8, !tbaa !20
  br i1 %432, label %434, label %436

434:                                              ; preds = %428
  %435 = getelementptr inbounds i8, ptr %0, i64 488
  call void @_ZN11alglib_impl5rgemvElldPKNS_9ae_matrixElPKNS_9ae_vectorEdPS3_PNS_8ae_stateE(i64 noundef %433, i64 noundef %433, double noundef 1.000000e+00, ptr noundef nonnull %435, i64 noundef 0, ptr noundef %1, double noundef 0.000000e+00, ptr noundef nonnull %9, ptr noundef %6)
  br label %437

436:                                              ; preds = %428
  call void @_ZN11alglib_impl6rcopyvElPKNS_9ae_vectorEPS0_PNS_8ae_stateE(i64 noundef %433, ptr noundef %1, ptr noundef nonnull %9, ptr noundef %6)
  br label %437

437:                                              ; preds = %436, %434
  %438 = getelementptr inbounds i8, ptr %2, i64 56
  %439 = load ptr, ptr %438, align 8, !tbaa !24
  store double 0.000000e+00, ptr %439, align 8, !tbaa !25
  %440 = getelementptr inbounds i8, ptr %0, i64 8
  %441 = load i64, ptr %440, align 8, !tbaa !33
  switch i64 %441, label %761 [
    i64 0, label %.preheader1504
    i64 1, label %.preheader1505
    i64 2, label %.preheader1506
    i64 3, label %.preheader1507
    i64 4, label %.preheader1509
    i64 5, label %577
    i64 6, label %610
    i64 7, label %645
    i64 8, label %704
    i64 9, label %736
  ]

.preheader1509:                                   ; preds = %437
  %442 = load i64, ptr %38, align 8, !tbaa !20
  %.not1467.not1579 = icmp sgt i64 %442, 0
  br i1 %.not1467.not1579, label %.lr.ph1581, label %._crit_edge1586

.lr.ph1581:                                       ; preds = %.preheader1509
  %443 = getelementptr inbounds i8, ptr %9, i64 56
  br label %550

.preheader1507:                                   ; preds = %437
  %444 = load i64, ptr %38, align 8, !tbaa !20
  %.not1469.not1588 = icmp sgt i64 %444, 0
  br i1 %.not1469.not1588, label %.lr.ph1590, label %._crit_edge1640

.lr.ph1590:                                       ; preds = %.preheader1507
  %445 = getelementptr inbounds i8, ptr %9, i64 56
  br label %525

.preheader1506:                                   ; preds = %437
  %446 = load i64, ptr %38, align 8, !tbaa !20
  %.not1470.not1592 = icmp sgt i64 %446, 0
  br i1 %.not1470.not1592, label %.lr.ph1594, label %._crit_edge1640

.lr.ph1594:                                       ; preds = %.preheader1506
  %447 = getelementptr inbounds i8, ptr %9, i64 56
  br label %511

.preheader1505:                                   ; preds = %437
  %448 = load i64, ptr %38, align 8, !tbaa !20
  %.not1471.not1596 = icmp sgt i64 %448, 0
  br i1 %.not1471.not1596, label %.lr.ph1599, label %._crit_edge1600

.lr.ph1599:                                       ; preds = %.preheader1505
  %449 = getelementptr inbounds i8, ptr %9, i64 56
  br label %470

.preheader1504:                                   ; preds = %437
  %450 = load i64, ptr %38, align 8, !tbaa !20
  %.not1473.not1611 = icmp sgt i64 %450, 0
  br i1 %.not1473.not1611, label %.lr.ph1613, label %._crit_edge1640

.lr.ph1613:                                       ; preds = %.preheader1504
  %451 = getelementptr inbounds i8, ptr %9, i64 56
  br label %452

452:                                              ; preds = %.lr.ph1613, %452
  %.1014401612 = phi i64 [ 0, %.lr.ph1613 ], [ %468, %452 ]
  %453 = load ptr, ptr %438, align 8, !tbaa !24
  %454 = load double, ptr %453, align 8, !tbaa !25
  %455 = load ptr, ptr %451, align 8, !tbaa !24
  %456 = getelementptr inbounds double, ptr %455, i64 %.1014401612
  %457 = load double, ptr %456, align 8, !tbaa !25
  %458 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %457, ptr noundef %6)
  %459 = fadd double %454, %458
  %460 = load ptr, ptr %451, align 8, !tbaa !24
  %461 = getelementptr inbounds double, ptr %460, i64 %.1014401612
  %462 = load double, ptr %461, align 8, !tbaa !25
  %463 = fmul double %462, 0x401921FB54442D18
  %464 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %463, ptr noundef %6)
  %465 = call double @llvm.fmuladd.f64(double %464, double -1.000000e+01, double %459)
  %466 = fadd double %465, 1.000000e+01
  %467 = load ptr, ptr %438, align 8, !tbaa !24
  store double %466, ptr %467, align 8, !tbaa !25
  %468 = add nuw nsw i64 %.1014401612, 1
  %469 = load i64, ptr %38, align 8, !tbaa !20
  %.not1473.not = icmp slt i64 %468, %469
  br i1 %.not1473.not, label %452, label %._crit_edge1640, !llvm.loop !45

470:                                              ; preds = %.lr.ph1599, %470
  %.111598 = phi i64 [ 0, %.lr.ph1599 ], [ %476, %470 ]
  %.114441597 = phi double [ 0.000000e+00, %.lr.ph1599 ], [ %475, %470 ]
  %471 = load ptr, ptr %449, align 8, !tbaa !24
  %472 = getelementptr inbounds double, ptr %471, i64 %.111598
  %473 = load double, ptr %472, align 8, !tbaa !25
  %474 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %473, ptr noundef %6)
  %475 = fadd double %.114441597, %474
  %476 = add nuw nsw i64 %.111598, 1
  %477 = load i64, ptr %38, align 8, !tbaa !20
  %.not1471.not = icmp slt i64 %476, %477
  br i1 %.not1471.not, label %470, label %._crit_edge1600, !llvm.loop !46

._crit_edge1600:                                  ; preds = %470, %.preheader1505
  %.11444.lcssa = phi double [ 0.000000e+00, %.preheader1505 ], [ %475, %470 ]
  %.lcssa1519 = phi i64 [ %448, %.preheader1505 ], [ %477, %470 ]
  %478 = load ptr, ptr %438, align 8, !tbaa !24
  %479 = load double, ptr %478, align 8, !tbaa !25
  %480 = sitofp i64 %.lcssa1519 to double
  %481 = fdiv double %.11444.lcssa, %480
  %482 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %481, ptr noundef %6)
  %483 = fmul double %482, -2.000000e-01
  %484 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %483, ptr noundef %6)
  %485 = call double @llvm.fmuladd.f64(double %484, double -2.000000e+01, double %479)
  %486 = load ptr, ptr %438, align 8, !tbaa !24
  store double %485, ptr %486, align 8, !tbaa !25
  %487 = load i64, ptr %38, align 8, !tbaa !20
  %.not1472.not1603 = icmp sgt i64 %487, 0
  br i1 %.not1472.not1603, label %.lr.ph1607, label %._crit_edge1608

.lr.ph1607:                                       ; preds = %._crit_edge1600
  %488 = getelementptr inbounds i8, ptr %9, i64 56
  br label %489

489:                                              ; preds = %.lr.ph1607, %489
  %.121605 = phi i64 [ 0, %.lr.ph1607 ], [ %496, %489 ]
  %.214451604 = phi double [ 0.000000e+00, %.lr.ph1607 ], [ %495, %489 ]
  %490 = load ptr, ptr %488, align 8, !tbaa !24
  %491 = getelementptr inbounds double, ptr %490, i64 %.121605
  %492 = load double, ptr %491, align 8, !tbaa !25
  %493 = fmul double %492, 0x401921FB54442D18
  %494 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %493, ptr noundef %6)
  %495 = fadd double %.214451604, %494
  %496 = add nuw nsw i64 %.121605, 1
  %497 = load i64, ptr %38, align 8, !tbaa !20
  %.not1472.not = icmp slt i64 %496, %497
  br i1 %.not1472.not, label %489, label %._crit_edge1608, !llvm.loop !47

._crit_edge1608:                                  ; preds = %489, %._crit_edge1600
  %.21445.lcssa = phi double [ 0.000000e+00, %._crit_edge1600 ], [ %495, %489 ]
  %.lcssa = phi i64 [ %487, %._crit_edge1600 ], [ %497, %489 ]
  %498 = load ptr, ptr %438, align 8, !tbaa !24
  %499 = load double, ptr %498, align 8, !tbaa !25
  %500 = sitofp i64 %.lcssa to double
  %501 = fdiv double %.21445.lcssa, %500
  %502 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %501, ptr noundef %6)
  %503 = fsub double %499, %502
  %504 = load ptr, ptr %438, align 8, !tbaa !24
  store double %503, ptr %504, align 8, !tbaa !25
  %505 = load ptr, ptr %438, align 8, !tbaa !24
  %506 = load double, ptr %505, align 8, !tbaa !25
  %507 = fadd double %506, 2.000000e+01
  %508 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef 1.000000e+00, ptr noundef %6)
  %509 = fadd double %507, %508
  %510 = load ptr, ptr %438, align 8, !tbaa !24
  store double %509, ptr %510, align 8, !tbaa !25
  br label %._crit_edge1640

511:                                              ; preds = %.lr.ph1594, %511
  %.131593 = phi i64 [ 0, %.lr.ph1594 ], [ %523, %511 ]
  %512 = load ptr, ptr %438, align 8, !tbaa !24
  %513 = load double, ptr %512, align 8, !tbaa !25
  %514 = load ptr, ptr %447, align 8, !tbaa !24
  %515 = getelementptr inbounds double, ptr %514, i64 %.131593
  %516 = load double, ptr %515, align 8, !tbaa !25
  %517 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %516, ptr noundef %6)
  %518 = fadd double %517, 1.000000e-01
  %519 = fmul double %516, %518
  %520 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %519, ptr noundef %6)
  %521 = fadd double %513, %520
  %522 = load ptr, ptr %438, align 8, !tbaa !24
  store double %521, ptr %522, align 8, !tbaa !25
  %523 = add nuw nsw i64 %.131593, 1
  %524 = load i64, ptr %38, align 8, !tbaa !20
  %.not1470.not = icmp slt i64 %523, %524
  br i1 %.not1470.not, label %511, label %._crit_edge1640, !llvm.loop !48

525:                                              ; preds = %.lr.ph1590, %545
  %.141589 = phi i64 [ 0, %.lr.ph1590 ], [ %546, %545 ]
  %526 = load ptr, ptr %445, align 8, !tbaa !24
  %527 = getelementptr inbounds double, ptr %526, i64 %.141589
  %528 = load double, ptr %527, align 8, !tbaa !25
  %529 = call noundef zeroext i1 @_ZN11alglib_impl9ae_fp_neqEdd(double noundef %528, double noundef 0.000000e+00)
  br i1 %529, label %530, label %545

530:                                              ; preds = %525
  %531 = load ptr, ptr %438, align 8, !tbaa !24
  %532 = load double, ptr %531, align 8, !tbaa !25
  %533 = load ptr, ptr %445, align 8, !tbaa !24
  %534 = getelementptr inbounds double, ptr %533, i64 %.141589
  %535 = load double, ptr %534, align 8, !tbaa !25
  %536 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %535, double noundef 6.000000e+00, ptr noundef %6)
  %537 = load ptr, ptr %445, align 8, !tbaa !24
  %538 = getelementptr inbounds double, ptr %537, i64 %.141589
  %539 = load double, ptr %538, align 8, !tbaa !25
  %540 = fdiv double 1.000000e+00, %539
  %541 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %540, ptr noundef %6)
  %542 = fadd double %541, 2.000000e+00
  %543 = call double @llvm.fmuladd.f64(double %536, double %542, double %532)
  %544 = load ptr, ptr %438, align 8, !tbaa !24
  store double %543, ptr %544, align 8, !tbaa !25
  br label %545

545:                                              ; preds = %525, %530
  %546 = add nuw nsw i64 %.141589, 1
  %547 = load i64, ptr %38, align 8, !tbaa !20
  %.not1469.not = icmp slt i64 %546, %547
  br i1 %.not1469.not, label %525, label %._crit_edge1640, !llvm.loop !49

.preheader1508:                                   ; preds = %550
  %548 = icmp sgt i64 %561, 0
  br i1 %548, label %.lr.ph1585, label %._crit_edge1586

.lr.ph1585:                                       ; preds = %.preheader1508
  %549 = getelementptr inbounds i8, ptr %9, i64 56
  br label %562

550:                                              ; preds = %.lr.ph1581, %550
  %.151580 = phi i64 [ 0, %.lr.ph1581 ], [ %560, %550 ]
  %551 = load ptr, ptr %438, align 8, !tbaa !24
  %552 = load double, ptr %551, align 8, !tbaa !25
  %553 = load ptr, ptr %443, align 8, !tbaa !24
  %554 = getelementptr inbounds double, ptr %553, i64 %.151580
  %555 = load double, ptr %554, align 8, !tbaa !25
  %556 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %555, ptr noundef %6)
  %557 = fdiv double %556, 4.000000e+03
  %558 = fadd double %552, %557
  %559 = load ptr, ptr %438, align 8, !tbaa !24
  store double %558, ptr %559, align 8, !tbaa !25
  %560 = add nuw nsw i64 %.151580, 1
  %561 = load i64, ptr %38, align 8, !tbaa !20
  %.not1467.not = icmp slt i64 %560, %561
  br i1 %.not1467.not, label %550, label %.preheader1508, !llvm.loop !50

562:                                              ; preds = %.lr.ph1585, %562
  %.161584 = phi i64 [ 0, %.lr.ph1585 ], [ %566, %562 ]
  %.314461583 = phi double [ 1.000000e+00, %.lr.ph1585 ], [ %571, %562 ]
  %563 = load ptr, ptr %549, align 8, !tbaa !24
  %564 = getelementptr inbounds double, ptr %563, i64 %.161584
  %565 = load double, ptr %564, align 8, !tbaa !25
  %566 = add nuw nsw i64 %.161584, 1
  %567 = uitofp nneg i64 %566 to double
  %568 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %567, ptr noundef %6)
  %569 = fdiv double %565, %568
  %570 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %569, ptr noundef %6)
  %571 = fmul double %.314461583, %570
  %572 = load i64, ptr %38, align 8, !tbaa !20
  %.not1468.not = icmp slt i64 %566, %572
  br i1 %.not1468.not, label %562, label %._crit_edge1586, !llvm.loop !51

._crit_edge1586:                                  ; preds = %562, %.preheader1509, %.preheader1508
  %.31446.lcssa = phi double [ 1.000000e+00, %.preheader1508 ], [ 1.000000e+00, %.preheader1509 ], [ %571, %562 ]
  %573 = load ptr, ptr %438, align 8, !tbaa !24
  %574 = load double, ptr %573, align 8, !tbaa !25
  %575 = fsub double 1.000000e+00, %.31446.lcssa
  %576 = fadd double %575, %574
  store double %576, ptr %573, align 8, !tbaa !25
  br label %._crit_edge1640

577:                                              ; preds = %437
  %578 = load ptr, ptr %438, align 8, !tbaa !24
  store double 0.000000e+00, ptr %578, align 8, !tbaa !25
  %579 = load i64, ptr %38, align 8, !tbaa !20
  %.not14661574 = icmp slt i64 %579, 2
  br i1 %.not14661574, label %._crit_edge1640, label %.lr.ph1577

.lr.ph1577:                                       ; preds = %577
  %580 = getelementptr inbounds i8, ptr %9, i64 56
  br label %581

581:                                              ; preds = %.lr.ph1577, %581
  %.171575 = phi i64 [ 0, %.lr.ph1577 ], [ %589, %581 ]
  %582 = load ptr, ptr %438, align 8, !tbaa !24
  %583 = load double, ptr %582, align 8, !tbaa !25
  %584 = load ptr, ptr %580, align 8, !tbaa !24
  %585 = getelementptr inbounds double, ptr %584, i64 %.171575
  %586 = load double, ptr %585, align 8, !tbaa !25
  %587 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %586, ptr noundef %6)
  %588 = load ptr, ptr %580, align 8, !tbaa !24
  %589 = add nuw nsw i64 %.171575, 1
  %590 = getelementptr inbounds double, ptr %588, i64 %589
  %591 = load double, ptr %590, align 8, !tbaa !25
  %592 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %591, ptr noundef %6)
  %593 = fadd double %592, 1.000000e+00
  %594 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %587, double noundef %593, ptr noundef %6)
  %595 = fadd double %583, %594
  %596 = load ptr, ptr %580, align 8, !tbaa !24
  %597 = getelementptr inbounds double, ptr %596, i64 %589
  %598 = load double, ptr %597, align 8, !tbaa !25
  %599 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %598, ptr noundef %6)
  %600 = load ptr, ptr %580, align 8, !tbaa !24
  %601 = getelementptr inbounds double, ptr %600, i64 %.171575
  %602 = load double, ptr %601, align 8, !tbaa !25
  %603 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %602, ptr noundef %6)
  %604 = fadd double %603, 1.000000e+00
  %605 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %599, double noundef %604, ptr noundef %6)
  %606 = fadd double %595, %605
  %607 = load ptr, ptr %438, align 8, !tbaa !24
  store double %606, ptr %607, align 8, !tbaa !25
  %608 = load i64, ptr %38, align 8, !tbaa !20
  %609 = add nsw i64 %608, -2
  %.not1466.not = icmp slt i64 %.171575, %609
  br i1 %.not1466.not, label %581, label %._crit_edge1640, !llvm.loop !52

610:                                              ; preds = %437
  %611 = load ptr, ptr %438, align 8, !tbaa !24
  store double 0.000000e+00, ptr %611, align 8, !tbaa !25
  %612 = load i64, ptr %38, align 8, !tbaa !20
  %.not14651569 = icmp slt i64 %612, 2
  br i1 %.not14651569, label %._crit_edge1640, label %.lr.ph1572

.lr.ph1572:                                       ; preds = %610
  %613 = getelementptr inbounds i8, ptr %9, i64 56
  br label %614

614:                                              ; preds = %.lr.ph1572, %614
  %.181570 = phi i64 [ 0, %.lr.ph1572 ], [ %622, %614 ]
  %615 = load ptr, ptr %438, align 8, !tbaa !24
  %616 = load double, ptr %615, align 8, !tbaa !25
  %617 = fadd double %616, 5.000000e-01
  %618 = load ptr, ptr %613, align 8, !tbaa !24
  %619 = getelementptr inbounds double, ptr %618, i64 %.181570
  %620 = load double, ptr %619, align 8, !tbaa !25
  %621 = fmul double %620, 1.000000e+02
  %622 = add nuw nsw i64 %.181570, 1
  %623 = getelementptr inbounds double, ptr %618, i64 %622
  %624 = load double, ptr %623, align 8, !tbaa !25
  %625 = fmul double %624, %624
  %626 = call double @llvm.fmuladd.f64(double %621, double %620, double %625)
  %627 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %626, ptr noundef %6)
  %628 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %627, ptr noundef %6)
  %629 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %628, ptr noundef %6)
  %630 = fadd double %629, -5.000000e-01
  %631 = load ptr, ptr %613, align 8, !tbaa !24
  %632 = getelementptr inbounds double, ptr %631, i64 %.181570
  %633 = load double, ptr %632, align 8, !tbaa !25
  %634 = getelementptr inbounds double, ptr %631, i64 %622
  %635 = load double, ptr %634, align 8, !tbaa !25
  %636 = fsub double %633, %635
  %637 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %636, ptr noundef %6)
  %638 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %637, ptr noundef %6)
  %639 = call double @llvm.fmuladd.f64(double %638, double 1.000000e-03, double 1.000000e+00)
  %640 = fdiv double %630, %639
  %641 = fadd double %617, %640
  %642 = load ptr, ptr %438, align 8, !tbaa !24
  store double %641, ptr %642, align 8, !tbaa !25
  %643 = load i64, ptr %38, align 8, !tbaa !20
  %644 = add nsw i64 %643, -2
  %.not1465.not = icmp slt i64 %.181570, %644
  br i1 %.not1465.not, label %614, label %._crit_edge1640, !llvm.loop !53

645:                                              ; preds = %437
  %646 = load ptr, ptr %438, align 8, !tbaa !24
  store double 0.000000e+00, ptr %646, align 8, !tbaa !25
  %647 = load i64, ptr %38, align 8, !tbaa !20
  %.not1464.not1564 = icmp sgt i64 %647, 0
  br i1 %.not1464.not1564, label %.lr.ph1567, label %._crit_edge1640

.lr.ph1567:                                       ; preds = %645
  %648 = getelementptr inbounds i8, ptr %9, i64 56
  br label %649

649:                                              ; preds = %.lr.ph1567, %649
  %650 = phi i64 [ %647, %.lr.ph1567 ], [ %703, %649 ]
  %.191565 = phi i64 [ 0, %.lr.ph1567 ], [ %661, %649 ]
  %651 = load ptr, ptr %648, align 8, !tbaa !24
  %652 = add nsw i64 %.191565, -1
  %653 = add nsw i64 %652, %650
  %654 = srem i64 %653, %650
  %655 = getelementptr inbounds double, ptr %651, i64 %654
  %656 = load double, ptr %655, align 8, !tbaa !25
  %657 = getelementptr inbounds double, ptr %651, i64 %.191565
  %658 = load double, ptr %657, align 8, !tbaa !25
  %659 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %658, ptr noundef %6)
  %660 = load ptr, ptr %648, align 8, !tbaa !24
  %661 = add nuw nsw i64 %.191565, 1
  %662 = load i64, ptr %38, align 8, !tbaa !20
  %663 = srem i64 %661, %662
  %664 = getelementptr inbounds double, ptr %660, i64 %663
  %665 = load double, ptr %664, align 8, !tbaa !25
  %666 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %665, ptr noundef %6)
  %667 = call double @llvm.fmuladd.f64(double %656, double %659, double %666)
  %668 = load ptr, ptr %648, align 8, !tbaa !24
  %669 = load i64, ptr %38, align 8, !tbaa !20
  %670 = add nsw i64 %669, %652
  %671 = srem i64 %670, %669
  %672 = getelementptr inbounds double, ptr %668, i64 %671
  %673 = load double, ptr %672, align 8, !tbaa !25
  %674 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %673, ptr noundef %6)
  %675 = load ptr, ptr %648, align 8, !tbaa !24
  %676 = getelementptr inbounds double, ptr %675, i64 %.191565
  %677 = load double, ptr %676, align 8, !tbaa !25
  %678 = call double @llvm.fmuladd.f64(double %677, double -2.000000e+00, double %674)
  %679 = load i64, ptr %38, align 8, !tbaa !20
  %680 = srem i64 %661, %679
  %681 = getelementptr inbounds double, ptr %675, i64 %680
  %682 = load double, ptr %681, align 8, !tbaa !25
  %683 = call double @llvm.fmuladd.f64(double %682, double 3.000000e+00, double %678)
  %684 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %677, ptr noundef %6)
  %685 = fsub double %683, %684
  %686 = fadd double %685, 1.000000e+00
  %687 = load ptr, ptr %438, align 8, !tbaa !24
  %688 = load double, ptr %687, align 8, !tbaa !25
  %689 = uitofp nneg i64 %661 to double
  %690 = load ptr, ptr %648, align 8, !tbaa !24
  %691 = getelementptr inbounds double, ptr %690, i64 %.191565
  %692 = load double, ptr %691, align 8, !tbaa !25
  %693 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %692, ptr noundef %6)
  %694 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %667, ptr noundef %6)
  %695 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %694, ptr noundef %6)
  %696 = call double @llvm.fmuladd.f64(double %695, double 2.000000e+01, double %693)
  %697 = fmul double %686, %689
  %698 = call double @llvm.fmuladd.f64(double %697, double %686, double 1.000000e+00)
  %699 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef %698, ptr noundef %6)
  %700 = fadd double %696, %699
  %701 = call double @llvm.fmuladd.f64(double %689, double %700, double %688)
  %702 = load ptr, ptr %438, align 8, !tbaa !24
  store double %701, ptr %702, align 8, !tbaa !25
  %703 = load i64, ptr %38, align 8, !tbaa !20
  %.not1464.not = icmp slt i64 %661, %703
  br i1 %.not1464.not, label %649, label %._crit_edge1640, !llvm.loop !54

704:                                              ; preds = %437
  %705 = load ptr, ptr %438, align 8, !tbaa !24
  store double 0.000000e+00, ptr %705, align 8, !tbaa !25
  %706 = load i64, ptr %38, align 8, !tbaa !20
  %.not14631559 = icmp slt i64 %706, 2
  br i1 %.not14631559, label %._crit_edge1640, label %.lr.ph1562

.lr.ph1562:                                       ; preds = %704
  %707 = getelementptr inbounds i8, ptr %9, i64 56
  br label %708

708:                                              ; preds = %.lr.ph1562, %708
  %.201560 = phi i64 [ 0, %.lr.ph1562 ], [ %712, %708 ]
  %709 = load ptr, ptr %438, align 8, !tbaa !24
  %710 = load double, ptr %709, align 8, !tbaa !25
  %711 = load ptr, ptr %707, align 8, !tbaa !24
  %712 = add nuw nsw i64 %.201560, 1
  %713 = getelementptr inbounds double, ptr %711, i64 %712
  %714 = load double, ptr %713, align 8, !tbaa !25
  %715 = getelementptr inbounds double, ptr %711, i64 %.201560
  %716 = load double, ptr %715, align 8, !tbaa !25
  %717 = fmul double %716, %716
  %718 = call double @llvm.fmuladd.f64(double %714, double %714, double %717)
  %719 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %718, double noundef 2.500000e-01, ptr noundef %6)
  %720 = load ptr, ptr %707, align 8, !tbaa !24
  %721 = getelementptr inbounds double, ptr %720, i64 %712
  %722 = load double, ptr %721, align 8, !tbaa !25
  %723 = getelementptr inbounds double, ptr %720, i64 %.201560
  %724 = load double, ptr %723, align 8, !tbaa !25
  %725 = fmul double %724, %724
  %726 = call double @llvm.fmuladd.f64(double %722, double %722, double %725)
  %727 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %726, double noundef 1.000000e-01, ptr noundef %6)
  %728 = fmul double %727, 5.000000e+01
  %729 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %728, ptr noundef %6)
  %730 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %729, ptr noundef %6)
  %731 = fadd double %730, 1.000000e-01
  %732 = call double @llvm.fmuladd.f64(double %719, double %731, double %710)
  %733 = load ptr, ptr %438, align 8, !tbaa !24
  store double %732, ptr %733, align 8, !tbaa !25
  %734 = load i64, ptr %38, align 8, !tbaa !20
  %735 = add nsw i64 %734, -2
  %.not1463.not = icmp slt i64 %.201560, %735
  br i1 %.not1463.not, label %708, label %._crit_edge1640, !llvm.loop !55

736:                                              ; preds = %437
  %737 = load ptr, ptr %438, align 8, !tbaa !24
  store double 1.000000e+00, ptr %737, align 8, !tbaa !25
  %738 = load i64, ptr %38, align 8, !tbaa !20
  %.not1462.not1554 = icmp sgt i64 %738, 0
  br i1 %.not1462.not1554, label %.lr.ph1557, label %._crit_edge1640

.lr.ph1557:                                       ; preds = %736
  %739 = getelementptr inbounds i8, ptr %9, i64 56
  br label %740

740:                                              ; preds = %.lr.ph1557, %740
  %.211555 = phi i64 [ 0, %.lr.ph1557 ], [ %760, %740 ]
  %741 = load ptr, ptr %438, align 8, !tbaa !24
  %742 = load double, ptr %741, align 8, !tbaa !25
  %743 = load ptr, ptr %739, align 8, !tbaa !24
  %744 = getelementptr inbounds double, ptr %743, i64 %.211555
  %745 = load double, ptr %744, align 8, !tbaa !25
  %746 = fmul double %745, 1.000000e+01
  %747 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %746, ptr noundef %6)
  %748 = load ptr, ptr %739, align 8, !tbaa !24
  %749 = getelementptr inbounds double, ptr %748, i64 %.211555
  %750 = load double, ptr %749, align 8, !tbaa !25
  %751 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %750, ptr noundef %6)
  %752 = fmul double %751, -5.000000e-01
  %753 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %752, ptr noundef %6)
  %754 = fmul double %747, %753
  %755 = load i64, ptr %38, align 8, !tbaa !20
  %756 = sitofp i64 %755 to double
  %757 = fdiv double %754, %756
  %758 = fsub double %742, %757
  %759 = load ptr, ptr %438, align 8, !tbaa !24
  store double %758, ptr %759, align 8, !tbaa !25
  %760 = add nuw nsw i64 %.211555, 1
  %.not1462.not = icmp slt i64 %760, %755
  br i1 %.not1462.not, label %740, label %._crit_edge1640, !llvm.loop !56

761:                                              ; preds = %437
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.320, ptr noundef %6)
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.320, ptr noundef %6)
  %.pr1489 = load i64, ptr %0, align 8, !tbaa !5
  br label %762

762:                                              ; preds = %36, %.thread, %761
  %763 = phi i64 [ %.pr, %.thread ], [ %.pr1489, %761 ], [ %42, %36 ]
  %764 = icmp eq i64 %763, 50
  br i1 %764, label %765, label %2376

765:                                              ; preds = %762
  %brmerge = or i1 %3, %5
  br i1 %brmerge, label %766, label %._crit_edge1640

766:                                              ; preds = %765
  %767 = getelementptr inbounds i8, ptr %0, i64 8
  %768 = load i64, ptr %767, align 8, !tbaa !33
  switch i64 %768, label %2375 [
    i64 0, label %919
    i64 1, label %980
    i64 2, label %1066
    i64 3, label %1126
    i64 4, label %1175
    i64 5, label %1229
    i64 6, label %1283
    i64 7, label %1339
    i64 8, label %1418
    i64 9, label %1481
    i64 10, label %.preheader1500
    i64 11, label %1687
    i64 12, label %1840
    i64 13, label %.preheader1501
    i64 14, label %.preheader1502
    i64 15, label %2339
  ]

.preheader1502:                                   ; preds = %766
  %769 = getelementptr inbounds i8, ptr %1, i64 56
  %770 = getelementptr inbounds i8, ptr %2, i64 56
  %771 = getelementptr inbounds i8, ptr %4, i64 72
  br label %2224

.preheader1501:                                   ; preds = %766
  %772 = getelementptr inbounds i8, ptr %1, i64 56
  %773 = getelementptr inbounds i8, ptr %2, i64 56
  %774 = getelementptr inbounds i8, ptr %4, i64 72
  br label %2091

.preheader1500:                                   ; preds = %766
  %775 = getelementptr inbounds i8, ptr %1, i64 56
  %776 = getelementptr inbounds i8, ptr %2, i64 56
  %777 = getelementptr inbounds i8, ptr %4, i64 72
  %778 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef 1.000000e+00, double noundef 1.500000e+01, ptr noundef %6)
  %779 = load ptr, ptr %775, align 8, !tbaa !24
  %780 = getelementptr inbounds i8, ptr %779, i64 8
  %781 = load double, ptr %780, align 8, !tbaa !25
  %782 = getelementptr inbounds i8, ptr %779, i64 16
  %783 = load double, ptr %782, align 8, !tbaa !25
  %784 = fmul double %778, %783
  %785 = call double @llvm.fmuladd.f64(double %781, double 1.500000e+01, double %784)
  %786 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %785, double noundef 1.000000e-300)
  br i1 %786, label %801, label %787

787:                                              ; preds = %.preheader1500
  br i1 %3, label %788, label %794

788:                                              ; preds = %787
  %789 = load ptr, ptr %775, align 8, !tbaa !24
  %790 = load double, ptr %789, align 8, !tbaa !25
  %791 = fadd double %790, 0x7E37E43C8800759B
  %792 = fsub double 1.400000e-01, %791
  %793 = load ptr, ptr %776, align 8, !tbaa !24
  store double %792, ptr %793, align 8, !tbaa !25
  br label %794

794:                                              ; preds = %788, %787
  br i1 %5, label %795, label %.peel.next.peel

795:                                              ; preds = %794
  %796 = load ptr, ptr %777, align 8, !tbaa !24
  %797 = load ptr, ptr %796, align 8, !tbaa !27
  store double 0.000000e+00, ptr %797, align 8, !tbaa !25
  %798 = load ptr, ptr %777, align 8, !tbaa !24
  %799 = load ptr, ptr %798, align 8, !tbaa !27
  %800 = getelementptr inbounds i8, ptr %799, i64 8
  store double 0.000000e+00, ptr %800, align 8, !tbaa !25
  br label %.peel.next.sink.split

801:                                              ; preds = %.preheader1500
  br i1 %3, label %802, label %815

802:                                              ; preds = %801
  %803 = load ptr, ptr %775, align 8, !tbaa !24
  %804 = load double, ptr %803, align 8, !tbaa !25
  %805 = getelementptr inbounds i8, ptr %803, i64 8
  %806 = load double, ptr %805, align 8, !tbaa !25
  %807 = getelementptr inbounds i8, ptr %803, i64 16
  %808 = load double, ptr %807, align 8, !tbaa !25
  %809 = fmul double %778, %808
  %810 = call double @llvm.fmuladd.f64(double %806, double 1.500000e+01, double %809)
  %811 = fdiv double 1.000000e+00, %810
  %812 = fadd double %804, %811
  %813 = fsub double 1.400000e-01, %812
  %814 = load ptr, ptr %776, align 8, !tbaa !24
  store double %813, ptr %814, align 8, !tbaa !25
  br label %815

815:                                              ; preds = %802, %801
  br i1 %5, label %890, label %.peel.next.peel

.peel.next.peel:                                  ; preds = %.peel.next.sink.split, %794, %815
  %816 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef 2.000000e+00, double noundef 1.400000e+01, ptr noundef %6)
  %817 = load ptr, ptr %775, align 8, !tbaa !24
  %818 = getelementptr inbounds i8, ptr %817, i64 8
  %819 = load double, ptr %818, align 8, !tbaa !25
  %820 = getelementptr inbounds i8, ptr %817, i64 16
  %821 = load double, ptr %820, align 8, !tbaa !25
  %822 = fmul double %816, %821
  %823 = call double @llvm.fmuladd.f64(double %819, double 1.400000e+01, double %822)
  %824 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %823, double noundef 1.000000e-300)
  br i1 %824, label %842, label %825

825:                                              ; preds = %.peel.next.peel
  br i1 %3, label %826, label %833

826:                                              ; preds = %825
  %827 = load ptr, ptr %775, align 8, !tbaa !24
  %828 = load double, ptr %827, align 8, !tbaa !25
  %829 = fadd double %828, 0x7E47E43C8800759B
  %830 = fsub double 1.800000e-01, %829
  %831 = load ptr, ptr %776, align 8, !tbaa !24
  %832 = getelementptr inbounds i8, ptr %831, i64 8
  store double %830, ptr %832, align 8, !tbaa !25
  br label %833

833:                                              ; preds = %826, %825
  br i1 %5, label %834, label %.peel.next.preheader.peel.newph

834:                                              ; preds = %833
  %835 = load ptr, ptr %777, align 8, !tbaa !24
  %836 = getelementptr inbounds i8, ptr %835, i64 8
  %837 = load ptr, ptr %836, align 8, !tbaa !27
  store double 0.000000e+00, ptr %837, align 8, !tbaa !25
  %838 = load ptr, ptr %777, align 8, !tbaa !24
  %839 = getelementptr inbounds i8, ptr %838, i64 8
  %840 = load ptr, ptr %839, align 8, !tbaa !27
  %841 = getelementptr inbounds i8, ptr %840, i64 8
  store double 0.000000e+00, ptr %841, align 8, !tbaa !25
  br label %.sink.split.peel

842:                                              ; preds = %.peel.next.peel
  br i1 %3, label %843, label %857

843:                                              ; preds = %842
  %844 = load ptr, ptr %775, align 8, !tbaa !24
  %845 = load double, ptr %844, align 8, !tbaa !25
  %846 = getelementptr inbounds i8, ptr %844, i64 8
  %847 = load double, ptr %846, align 8, !tbaa !25
  %848 = getelementptr inbounds i8, ptr %844, i64 16
  %849 = load double, ptr %848, align 8, !tbaa !25
  %850 = fmul double %816, %849
  %851 = call double @llvm.fmuladd.f64(double %847, double 1.400000e+01, double %850)
  %852 = fdiv double 2.000000e+00, %851
  %853 = fadd double %845, %852
  %854 = fsub double 1.800000e-01, %853
  %855 = load ptr, ptr %776, align 8, !tbaa !24
  %856 = getelementptr inbounds i8, ptr %855, i64 8
  store double %854, ptr %856, align 8, !tbaa !25
  br label %857

857:                                              ; preds = %843, %842
  br i1 %5, label %858, label %.peel.next.preheader.peel.newph

858:                                              ; preds = %857
  %859 = load ptr, ptr %777, align 8, !tbaa !24
  %860 = getelementptr inbounds i8, ptr %859, i64 8
  %861 = load ptr, ptr %860, align 8, !tbaa !27
  store double -1.000000e+00, ptr %861, align 8, !tbaa !25
  %862 = load ptr, ptr %775, align 8, !tbaa !24
  %863 = getelementptr inbounds i8, ptr %862, i64 8
  %864 = load double, ptr %863, align 8, !tbaa !25
  %865 = getelementptr inbounds i8, ptr %862, i64 16
  %866 = load double, ptr %865, align 8, !tbaa !25
  %867 = fmul double %816, %866
  %868 = call double @llvm.fmuladd.f64(double %864, double 1.400000e+01, double %867)
  %869 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %868, ptr noundef %6)
  %870 = fdiv double 2.000000e+00, %869
  %871 = fmul double %870, 1.400000e+01
  %872 = load ptr, ptr %777, align 8, !tbaa !24
  %873 = getelementptr inbounds i8, ptr %872, i64 8
  %874 = load ptr, ptr %873, align 8, !tbaa !27
  %875 = getelementptr inbounds i8, ptr %874, i64 8
  store double %871, ptr %875, align 8, !tbaa !25
  %876 = load ptr, ptr %775, align 8, !tbaa !24
  %877 = getelementptr inbounds i8, ptr %876, i64 8
  %878 = load double, ptr %877, align 8, !tbaa !25
  %879 = getelementptr inbounds i8, ptr %876, i64 16
  %880 = load double, ptr %879, align 8, !tbaa !25
  %881 = fmul double %816, %880
  %882 = call double @llvm.fmuladd.f64(double %878, double 1.400000e+01, double %881)
  %883 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %882, ptr noundef %6)
  %884 = fdiv double 2.000000e+00, %883
  %885 = fmul double %816, %884
  br label %.sink.split.peel

.sink.split.peel:                                 ; preds = %858, %834
  %.sink1748.peel = phi double [ %885, %858 ], [ 0.000000e+00, %834 ]
  %886 = load ptr, ptr %777, align 8, !tbaa !24
  %887 = getelementptr inbounds i8, ptr %886, i64 8
  %888 = load ptr, ptr %887, align 8, !tbaa !27
  %889 = getelementptr inbounds i8, ptr %888, i64 16
  store double %.sink1748.peel, ptr %889, align 8, !tbaa !25
  br label %.peel.next.preheader.peel.newph

.peel.next.preheader.peel.newph:                  ; preds = %833, %857, %.sink.split.peel
  br label %.peel.next

890:                                              ; preds = %815
  %891 = load ptr, ptr %777, align 8, !tbaa !24
  %892 = load ptr, ptr %891, align 8, !tbaa !27
  store double -1.000000e+00, ptr %892, align 8, !tbaa !25
  %893 = load ptr, ptr %775, align 8, !tbaa !24
  %894 = getelementptr inbounds i8, ptr %893, i64 8
  %895 = load double, ptr %894, align 8, !tbaa !25
  %896 = getelementptr inbounds i8, ptr %893, i64 16
  %897 = load double, ptr %896, align 8, !tbaa !25
  %898 = fmul double %778, %897
  %899 = call double @llvm.fmuladd.f64(double %895, double 1.500000e+01, double %898)
  %900 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %899, ptr noundef %6)
  %901 = fdiv double 1.000000e+00, %900
  %902 = fmul double %901, 1.500000e+01
  %903 = load ptr, ptr %777, align 8, !tbaa !24
  %904 = load ptr, ptr %903, align 8, !tbaa !27
  %905 = getelementptr inbounds i8, ptr %904, i64 8
  store double %902, ptr %905, align 8, !tbaa !25
  %906 = load ptr, ptr %775, align 8, !tbaa !24
  %907 = getelementptr inbounds i8, ptr %906, i64 8
  %908 = load double, ptr %907, align 8, !tbaa !25
  %909 = getelementptr inbounds i8, ptr %906, i64 16
  %910 = load double, ptr %909, align 8, !tbaa !25
  %911 = fmul double %778, %910
  %912 = call double @llvm.fmuladd.f64(double %908, double 1.500000e+01, double %911)
  %913 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %912, ptr noundef %6)
  %914 = fdiv double 1.000000e+00, %913
  %915 = fmul double %778, %914
  br label %.peel.next.sink.split

.peel.next.sink.split:                            ; preds = %890, %795
  %.sink = phi double [ 0.000000e+00, %795 ], [ %915, %890 ]
  %916 = load ptr, ptr %777, align 8, !tbaa !24
  %917 = load ptr, ptr %916, align 8, !tbaa !27
  %918 = getelementptr inbounds i8, ptr %917, i64 16
  store double %.sink, ptr %918, align 8, !tbaa !25
  br label %.peel.next.peel

919:                                              ; preds = %766
  br i1 %3, label %920, label %947

920:                                              ; preds = %919
  %921 = getelementptr inbounds i8, ptr %1, i64 56
  %922 = load ptr, ptr %921, align 8, !tbaa !24
  %923 = getelementptr inbounds i8, ptr %922, i64 8
  %924 = load double, ptr %923, align 8, !tbaa !25
  %925 = load double, ptr %922, align 8, !tbaa !25
  %926 = call noundef double @_ZN11alglib_impl7ae_coshEdPNS_8ae_stateE(double noundef %925, ptr noundef %6)
  %927 = fsub double %924, %926
  %928 = getelementptr inbounds i8, ptr %2, i64 56
  %929 = load ptr, ptr %928, align 8, !tbaa !24
  store double %927, ptr %929, align 8, !tbaa !25
  %930 = load ptr, ptr %921, align 8, !tbaa !24
  %931 = getelementptr inbounds i8, ptr %930, i64 8
  %932 = load double, ptr %931, align 8, !tbaa !25
  %933 = load double, ptr %930, align 8, !tbaa !25
  %934 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %933, ptr noundef %6)
  %935 = fsub double %932, %934
  %936 = load ptr, ptr %928, align 8, !tbaa !24
  %937 = getelementptr inbounds i8, ptr %936, i64 8
  store double %935, ptr %937, align 8, !tbaa !25
  %938 = load ptr, ptr %921, align 8, !tbaa !24
  %939 = getelementptr inbounds i8, ptr %938, i64 8
  %940 = load double, ptr %939, align 8, !tbaa !25
  %941 = load double, ptr %938, align 8, !tbaa !25
  %942 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %941, ptr noundef %6)
  %943 = fsub double %940, %942
  %944 = fadd double %943, -1.000000e+00
  %945 = load ptr, ptr %928, align 8, !tbaa !24
  %946 = getelementptr inbounds i8, ptr %945, i64 16
  store double %944, ptr %946, align 8, !tbaa !25
  br label %947

947:                                              ; preds = %920, %919
  br i1 %5, label %948, label %._crit_edge1640

948:                                              ; preds = %947
  %949 = getelementptr inbounds i8, ptr %1, i64 56
  %950 = load ptr, ptr %949, align 8, !tbaa !24
  %951 = load double, ptr %950, align 8, !tbaa !25
  %952 = call noundef double @_ZN11alglib_impl7ae_sinhEdPNS_8ae_stateE(double noundef %951, ptr noundef %6)
  %953 = fneg double %952
  %954 = getelementptr inbounds i8, ptr %4, i64 72
  %955 = load ptr, ptr %954, align 8, !tbaa !24
  %956 = load ptr, ptr %955, align 8, !tbaa !27
  store double %953, ptr %956, align 8, !tbaa !25
  %957 = load ptr, ptr %954, align 8, !tbaa !24
  %958 = load ptr, ptr %957, align 8, !tbaa !27
  %959 = getelementptr inbounds i8, ptr %958, i64 8
  store double 1.000000e+00, ptr %959, align 8, !tbaa !25
  %960 = load ptr, ptr %949, align 8, !tbaa !24
  %961 = load double, ptr %960, align 8, !tbaa !25
  %962 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %961, ptr noundef %6)
  %963 = load ptr, ptr %954, align 8, !tbaa !24
  %964 = getelementptr inbounds i8, ptr %963, i64 8
  %965 = load ptr, ptr %964, align 8, !tbaa !27
  store double %962, ptr %965, align 8, !tbaa !25
  %966 = load ptr, ptr %954, align 8, !tbaa !24
  %967 = getelementptr inbounds i8, ptr %966, i64 8
  %968 = load ptr, ptr %967, align 8, !tbaa !27
  %969 = getelementptr inbounds i8, ptr %968, i64 8
  store double 1.000000e+00, ptr %969, align 8, !tbaa !25
  %970 = load ptr, ptr %949, align 8, !tbaa !24
  %971 = load double, ptr %970, align 8, !tbaa !25
  %972 = fmul double %971, -2.000000e+00
  %973 = load ptr, ptr %954, align 8, !tbaa !24
  %974 = getelementptr inbounds i8, ptr %973, i64 16
  %975 = load ptr, ptr %974, align 8, !tbaa !27
  store double %972, ptr %975, align 8, !tbaa !25
  %976 = load ptr, ptr %954, align 8, !tbaa !24
  %977 = getelementptr inbounds i8, ptr %976, i64 16
  %978 = load ptr, ptr %977, align 8, !tbaa !27
  %979 = getelementptr inbounds i8, ptr %978, i64 8
  store double 1.000000e+00, ptr %979, align 8, !tbaa !25
  br label %._crit_edge1640

980:                                              ; preds = %766
  br i1 %3, label %981, label %1020

981:                                              ; preds = %980
  %982 = getelementptr inbounds i8, ptr %1, i64 56
  %983 = load ptr, ptr %982, align 8, !tbaa !24
  %984 = getelementptr inbounds i8, ptr %983, i64 8
  %985 = load double, ptr %984, align 8, !tbaa !25
  %986 = load double, ptr %983, align 8, !tbaa !25
  %987 = fadd double %986, 1.000000e+00
  %988 = call noundef double @_ZN11alglib_impl7ae_coshEdPNS_8ae_stateE(double noundef %987, ptr noundef %6)
  %989 = fsub double %985, %988
  %990 = fadd double %989, 1.000000e+00
  %991 = getelementptr inbounds i8, ptr %2, i64 56
  %992 = load ptr, ptr %991, align 8, !tbaa !24
  store double %990, ptr %992, align 8, !tbaa !25
  %993 = load ptr, ptr %982, align 8, !tbaa !24
  %994 = getelementptr inbounds i8, ptr %993, i64 8
  %995 = load double, ptr %994, align 8, !tbaa !25
  %996 = load double, ptr %993, align 8, !tbaa !25
  %997 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %996, ptr noundef %6)
  %998 = fsub double %995, %997
  %999 = load ptr, ptr %982, align 8, !tbaa !24
  %1000 = load double, ptr %999, align 8, !tbaa !25
  %1001 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %1000, ptr noundef %6)
  %1002 = fsub double %998, %1001
  %1003 = load ptr, ptr %991, align 8, !tbaa !24
  %1004 = getelementptr inbounds i8, ptr %1003, i64 8
  store double %1002, ptr %1004, align 8, !tbaa !25
  %1005 = load ptr, ptr %982, align 8, !tbaa !24
  %1006 = getelementptr inbounds i8, ptr %1005, i64 8
  %1007 = load double, ptr %1006, align 8, !tbaa !25
  %1008 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1007, ptr noundef %6)
  %1009 = load ptr, ptr %982, align 8, !tbaa !24
  %1010 = load double, ptr %1009, align 8, !tbaa !25
  %1011 = fsub double %1008, %1010
  %1012 = fadd double %1011, 1.000000e+00
  %1013 = load ptr, ptr %991, align 8, !tbaa !24
  %1014 = getelementptr inbounds i8, ptr %1013, i64 16
  store double %1012, ptr %1014, align 8, !tbaa !25
  %1015 = load ptr, ptr %982, align 8, !tbaa !24
  %1016 = load double, ptr %1015, align 8, !tbaa !25
  %1017 = fadd double %1016, 1.000000e+00
  %1018 = load ptr, ptr %991, align 8, !tbaa !24
  %1019 = getelementptr inbounds i8, ptr %1018, i64 24
  store double %1017, ptr %1019, align 8, !tbaa !25
  br label %1020

1020:                                             ; preds = %981, %980
  br i1 %5, label %1021, label %._crit_edge1640

1021:                                             ; preds = %1020
  %1022 = getelementptr inbounds i8, ptr %1, i64 56
  %1023 = load ptr, ptr %1022, align 8, !tbaa !24
  %1024 = load double, ptr %1023, align 8, !tbaa !25
  %1025 = fadd double %1024, 1.000000e+00
  %1026 = call noundef double @_ZN11alglib_impl7ae_sinhEdPNS_8ae_stateE(double noundef %1025, ptr noundef %6)
  %1027 = fneg double %1026
  %1028 = getelementptr inbounds i8, ptr %4, i64 72
  %1029 = load ptr, ptr %1028, align 8, !tbaa !24
  %1030 = load ptr, ptr %1029, align 8, !tbaa !27
  store double %1027, ptr %1030, align 8, !tbaa !25
  %1031 = load ptr, ptr %1028, align 8, !tbaa !24
  %1032 = load ptr, ptr %1031, align 8, !tbaa !27
  %1033 = getelementptr inbounds i8, ptr %1032, i64 8
  store double 1.000000e+00, ptr %1033, align 8, !tbaa !25
  %1034 = load ptr, ptr %1022, align 8, !tbaa !24
  %1035 = load double, ptr %1034, align 8, !tbaa !25
  %1036 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %1035, ptr noundef %6)
  %1037 = load ptr, ptr %1022, align 8, !tbaa !24
  %1038 = load double, ptr %1037, align 8, !tbaa !25
  %1039 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %1038, ptr noundef %6)
  %1040 = fsub double %1036, %1039
  %1041 = load ptr, ptr %1028, align 8, !tbaa !24
  %1042 = getelementptr inbounds i8, ptr %1041, i64 8
  %1043 = load ptr, ptr %1042, align 8, !tbaa !27
  store double %1040, ptr %1043, align 8, !tbaa !25
  %1044 = load ptr, ptr %1028, align 8, !tbaa !24
  %1045 = getelementptr inbounds i8, ptr %1044, i64 8
  %1046 = load ptr, ptr %1045, align 8, !tbaa !27
  %1047 = getelementptr inbounds i8, ptr %1046, i64 8
  store double 1.000000e+00, ptr %1047, align 8, !tbaa !25
  %1048 = load ptr, ptr %1028, align 8, !tbaa !24
  %1049 = getelementptr inbounds i8, ptr %1048, i64 16
  %1050 = load ptr, ptr %1049, align 8, !tbaa !27
  store double -1.000000e+00, ptr %1050, align 8, !tbaa !25
  %1051 = load ptr, ptr %1022, align 8, !tbaa !24
  %1052 = getelementptr inbounds i8, ptr %1051, i64 8
  %1053 = load double, ptr %1052, align 8, !tbaa !25
  %1054 = fmul double %1053, 2.000000e+00
  %1055 = load ptr, ptr %1028, align 8, !tbaa !24
  %1056 = getelementptr inbounds i8, ptr %1055, i64 16
  %1057 = load ptr, ptr %1056, align 8, !tbaa !27
  %1058 = getelementptr inbounds i8, ptr %1057, i64 8
  store double %1054, ptr %1058, align 8, !tbaa !25
  %1059 = load ptr, ptr %1028, align 8, !tbaa !24
  %1060 = getelementptr inbounds i8, ptr %1059, i64 24
  %1061 = load ptr, ptr %1060, align 8, !tbaa !27
  store double 1.000000e+00, ptr %1061, align 8, !tbaa !25
  %1062 = load ptr, ptr %1028, align 8, !tbaa !24
  %1063 = getelementptr inbounds i8, ptr %1062, i64 24
  %1064 = load ptr, ptr %1063, align 8, !tbaa !27
  %1065 = getelementptr inbounds i8, ptr %1064, i64 8
  store double 0.000000e+00, ptr %1065, align 8, !tbaa !25
  br label %._crit_edge1640

1066:                                             ; preds = %766
  br i1 %3, label %1067, label %1092

1067:                                             ; preds = %1066
  %1068 = getelementptr inbounds i8, ptr %1, i64 56
  %1069 = load ptr, ptr %1068, align 8, !tbaa !24
  %1070 = load double, ptr %1069, align 8, !tbaa !25
  %1071 = fadd double %1070, 1.500000e+00
  %1072 = getelementptr inbounds i8, ptr %2, i64 56
  %1073 = load ptr, ptr %1072, align 8, !tbaa !24
  store double %1071, ptr %1073, align 8, !tbaa !25
  %1074 = load ptr, ptr %1068, align 8, !tbaa !24
  %1075 = getelementptr inbounds i8, ptr %1074, i64 8
  %1076 = load double, ptr %1075, align 8, !tbaa !25
  %1077 = load ptr, ptr %1072, align 8, !tbaa !24
  %1078 = getelementptr inbounds i8, ptr %1077, i64 8
  store double %1076, ptr %1078, align 8, !tbaa !25
  %1079 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+01, ptr noundef %6)
  %1080 = load ptr, ptr %1068, align 8, !tbaa !24
  %1081 = load double, ptr %1080, align 8, !tbaa !25
  %1082 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1081, ptr noundef %6)
  %1083 = load ptr, ptr %1068, align 8, !tbaa !24
  %1084 = getelementptr inbounds i8, ptr %1083, i64 8
  %1085 = load double, ptr %1084, align 8, !tbaa !25
  %1086 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1085, ptr noundef %6)
  %1087 = fadd double %1082, %1086
  %1088 = fadd double %1087, -1.000000e+00
  %1089 = fmul double %1079, %1088
  %1090 = load ptr, ptr %1072, align 8, !tbaa !24
  %1091 = getelementptr inbounds i8, ptr %1090, i64 16
  store double %1089, ptr %1091, align 8, !tbaa !25
  br label %1092

1092:                                             ; preds = %1067, %1066
  br i1 %5, label %1093, label %._crit_edge1640

1093:                                             ; preds = %1092
  %1094 = getelementptr inbounds i8, ptr %4, i64 72
  %1095 = load ptr, ptr %1094, align 8, !tbaa !24
  %1096 = load ptr, ptr %1095, align 8, !tbaa !27
  store double 1.000000e+00, ptr %1096, align 8, !tbaa !25
  %1097 = load ptr, ptr %1094, align 8, !tbaa !24
  %1098 = load ptr, ptr %1097, align 8, !tbaa !27
  %1099 = getelementptr inbounds i8, ptr %1098, i64 8
  store double 0.000000e+00, ptr %1099, align 8, !tbaa !25
  %1100 = load ptr, ptr %1094, align 8, !tbaa !24
  %1101 = getelementptr inbounds i8, ptr %1100, i64 8
  %1102 = load ptr, ptr %1101, align 8, !tbaa !27
  store double 0.000000e+00, ptr %1102, align 8, !tbaa !25
  %1103 = load ptr, ptr %1094, align 8, !tbaa !24
  %1104 = getelementptr inbounds i8, ptr %1103, i64 8
  %1105 = load ptr, ptr %1104, align 8, !tbaa !27
  %1106 = getelementptr inbounds i8, ptr %1105, i64 8
  store double 1.000000e+00, ptr %1106, align 8, !tbaa !25
  %1107 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+01, ptr noundef %6)
  %1108 = fmul double %1107, 2.000000e+00
  %1109 = getelementptr inbounds i8, ptr %1, i64 56
  %1110 = load ptr, ptr %1109, align 8, !tbaa !24
  %1111 = load double, ptr %1110, align 8, !tbaa !25
  %1112 = fmul double %1108, %1111
  %1113 = load ptr, ptr %1094, align 8, !tbaa !24
  %1114 = getelementptr inbounds i8, ptr %1113, i64 16
  %1115 = load ptr, ptr %1114, align 8, !tbaa !27
  store double %1112, ptr %1115, align 8, !tbaa !25
  %1116 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+01, ptr noundef %6)
  %1117 = fmul double %1116, 2.000000e+00
  %1118 = load ptr, ptr %1109, align 8, !tbaa !24
  %1119 = getelementptr inbounds i8, ptr %1118, i64 8
  %1120 = load double, ptr %1119, align 8, !tbaa !25
  %1121 = fmul double %1117, %1120
  %1122 = load ptr, ptr %1094, align 8, !tbaa !24
  %1123 = getelementptr inbounds i8, ptr %1122, i64 16
  %1124 = load ptr, ptr %1123, align 8, !tbaa !27
  %1125 = getelementptr inbounds i8, ptr %1124, i64 8
  store double %1121, ptr %1125, align 8, !tbaa !25
  br label %._crit_edge1640

1126:                                             ; preds = %766
  br i1 %3, label %1127, label %1147

1127:                                             ; preds = %1126
  %1128 = getelementptr inbounds i8, ptr %1, i64 56
  %1129 = load ptr, ptr %1128, align 8, !tbaa !24
  %1130 = load double, ptr %1129, align 8, !tbaa !25
  %1131 = fadd double %1130, -1.000000e+06
  %1132 = getelementptr inbounds i8, ptr %2, i64 56
  %1133 = load ptr, ptr %1132, align 8, !tbaa !24
  store double %1131, ptr %1133, align 8, !tbaa !25
  %1134 = load ptr, ptr %1128, align 8, !tbaa !24
  %1135 = getelementptr inbounds i8, ptr %1134, i64 8
  %1136 = load double, ptr %1135, align 8, !tbaa !25
  %1137 = fadd double %1136, -2.000000e-06
  %1138 = load ptr, ptr %1132, align 8, !tbaa !24
  %1139 = getelementptr inbounds i8, ptr %1138, i64 8
  store double %1137, ptr %1139, align 8, !tbaa !25
  %1140 = load ptr, ptr %1128, align 8, !tbaa !24
  %1141 = load double, ptr %1140, align 8, !tbaa !25
  %1142 = getelementptr inbounds i8, ptr %1140, i64 8
  %1143 = load double, ptr %1142, align 8, !tbaa !25
  %1144 = call double @llvm.fmuladd.f64(double %1141, double %1143, double -2.000000e+00)
  %1145 = load ptr, ptr %1132, align 8, !tbaa !24
  %1146 = getelementptr inbounds i8, ptr %1145, i64 16
  store double %1144, ptr %1146, align 8, !tbaa !25
  br label %1147

1147:                                             ; preds = %1127, %1126
  br i1 %5, label %1148, label %._crit_edge1640

1148:                                             ; preds = %1147
  %1149 = getelementptr inbounds i8, ptr %4, i64 72
  %1150 = load ptr, ptr %1149, align 8, !tbaa !24
  %1151 = load ptr, ptr %1150, align 8, !tbaa !27
  store double 1.000000e+00, ptr %1151, align 8, !tbaa !25
  %1152 = load ptr, ptr %1149, align 8, !tbaa !24
  %1153 = load ptr, ptr %1152, align 8, !tbaa !27
  %1154 = getelementptr inbounds i8, ptr %1153, i64 8
  store double 0.000000e+00, ptr %1154, align 8, !tbaa !25
  %1155 = load ptr, ptr %1149, align 8, !tbaa !24
  %1156 = getelementptr inbounds i8, ptr %1155, i64 8
  %1157 = load ptr, ptr %1156, align 8, !tbaa !27
  store double 0.000000e+00, ptr %1157, align 8, !tbaa !25
  %1158 = load ptr, ptr %1149, align 8, !tbaa !24
  %1159 = getelementptr inbounds i8, ptr %1158, i64 8
  %1160 = load ptr, ptr %1159, align 8, !tbaa !27
  %1161 = getelementptr inbounds i8, ptr %1160, i64 8
  store double 1.000000e+00, ptr %1161, align 8, !tbaa !25
  %1162 = getelementptr inbounds i8, ptr %1, i64 56
  %1163 = load ptr, ptr %1162, align 8, !tbaa !24
  %1164 = getelementptr inbounds i8, ptr %1163, i64 8
  %1165 = load double, ptr %1164, align 8, !tbaa !25
  %1166 = load ptr, ptr %1149, align 8, !tbaa !24
  %1167 = getelementptr inbounds i8, ptr %1166, i64 16
  %1168 = load ptr, ptr %1167, align 8, !tbaa !27
  store double %1165, ptr %1168, align 8, !tbaa !25
  %1169 = load ptr, ptr %1162, align 8, !tbaa !24
  %1170 = load double, ptr %1169, align 8, !tbaa !25
  %1171 = load ptr, ptr %1149, align 8, !tbaa !24
  %1172 = getelementptr inbounds i8, ptr %1171, i64 16
  %1173 = load ptr, ptr %1172, align 8, !tbaa !27
  %1174 = getelementptr inbounds i8, ptr %1173, i64 8
  store double %1170, ptr %1174, align 8, !tbaa !25
  br label %._crit_edge1640

1175:                                             ; preds = %766
  br i1 %3, label %1176, label %1197

1176:                                             ; preds = %1175
  %1177 = getelementptr inbounds i8, ptr %1, i64 56
  %1178 = load ptr, ptr %1177, align 8, !tbaa !24
  %1179 = load double, ptr %1178, align 8, !tbaa !25
  %1180 = fmul double %1179, 1.000000e+02
  %1181 = call double @llvm.fmuladd.f64(double %1179, double %1179, double 1.000000e+00)
  %1182 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1181, ptr noundef %6)
  %1183 = fdiv double %1180, %1182
  %1184 = getelementptr inbounds i8, ptr %2, i64 56
  %1185 = load ptr, ptr %1184, align 8, !tbaa !24
  store double %1183, ptr %1185, align 8, !tbaa !25
  %1186 = load ptr, ptr %1177, align 8, !tbaa !24
  %1187 = getelementptr inbounds i8, ptr %1186, i64 8
  %1188 = load double, ptr %1187, align 8, !tbaa !25
  %1189 = fmul double %1188, 1.000000e+01
  %1190 = load ptr, ptr %1184, align 8, !tbaa !24
  %1191 = getelementptr inbounds i8, ptr %1190, i64 8
  store double %1189, ptr %1191, align 8, !tbaa !25
  %1192 = load ptr, ptr %1177, align 8, !tbaa !24
  %1193 = load double, ptr %1192, align 8, !tbaa !25
  %1194 = call noundef double @_ZN11alglib_impl7ae_sinhEdPNS_8ae_stateE(double noundef %1193, ptr noundef %6)
  %1195 = load ptr, ptr %1184, align 8, !tbaa !24
  %1196 = getelementptr inbounds i8, ptr %1195, i64 16
  store double %1194, ptr %1196, align 8, !tbaa !25
  br label %1197

1197:                                             ; preds = %1176, %1175
  br i1 %5, label %1198, label %._crit_edge1640

1198:                                             ; preds = %1197
  call void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 3, i64 noundef 2, double noundef 0.000000e+00, ptr noundef %4, ptr noundef %6)
  %1199 = getelementptr inbounds i8, ptr %1, i64 56
  %1200 = load ptr, ptr %1199, align 8, !tbaa !24
  %1201 = load double, ptr %1200, align 8, !tbaa !25
  %1202 = call double @llvm.fmuladd.f64(double %1201, double %1201, double 1.000000e+00)
  %1203 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1202, ptr noundef %6)
  %1204 = load ptr, ptr %1199, align 8, !tbaa !24
  %1205 = load double, ptr %1204, align 8, !tbaa !25
  %1206 = fmul double %1205, 1.000000e+02
  %1207 = call double @llvm.fmuladd.f64(double %1205, double %1205, double 1.000000e+00)
  %1208 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1207, ptr noundef %6)
  %1209 = fmul double %1206, -5.000000e-01
  %1210 = fdiv double %1209, %1208
  %1211 = call double @llvm.fmuladd.f64(double %1203, double 1.000000e+02, double %1210)
  %1212 = load ptr, ptr %1199, align 8, !tbaa !24
  %1213 = load double, ptr %1212, align 8, !tbaa !25
  %1214 = call double @llvm.fmuladd.f64(double %1213, double %1213, double 1.000000e+00)
  %1215 = fdiv double %1211, %1214
  %1216 = getelementptr inbounds i8, ptr %4, i64 72
  %1217 = load ptr, ptr %1216, align 8, !tbaa !24
  %1218 = load ptr, ptr %1217, align 8, !tbaa !27
  store double %1215, ptr %1218, align 8, !tbaa !25
  %1219 = load ptr, ptr %1216, align 8, !tbaa !24
  %1220 = getelementptr inbounds i8, ptr %1219, i64 8
  %1221 = load ptr, ptr %1220, align 8, !tbaa !27
  %1222 = getelementptr inbounds i8, ptr %1221, i64 8
  store double 1.000000e+01, ptr %1222, align 8, !tbaa !25
  %1223 = load ptr, ptr %1199, align 8, !tbaa !24
  %1224 = load double, ptr %1223, align 8, !tbaa !25
  %1225 = call noundef double @_ZN11alglib_impl7ae_coshEdPNS_8ae_stateE(double noundef %1224, ptr noundef %6)
  %1226 = load ptr, ptr %1216, align 8, !tbaa !24
  %1227 = getelementptr inbounds i8, ptr %1226, i64 16
  %1228 = load ptr, ptr %1227, align 8, !tbaa !27
  store double %1225, ptr %1228, align 8, !tbaa !25
  br label %._crit_edge1640

1229:                                             ; preds = %766
  br i1 %3, label %1230, label %1251

1230:                                             ; preds = %1229
  %1231 = getelementptr inbounds i8, ptr %1, i64 56
  %1232 = load ptr, ptr %1231, align 8, !tbaa !24
  %1233 = load double, ptr %1232, align 8, !tbaa !25
  %1234 = fmul double %1233, 1.000000e+02
  %1235 = call double @llvm.fmuladd.f64(double %1233, double %1233, double 1.000000e+00)
  %1236 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1235, ptr noundef %6)
  %1237 = fdiv double %1234, %1236
  %1238 = getelementptr inbounds i8, ptr %2, i64 56
  %1239 = load ptr, ptr %1238, align 8, !tbaa !24
  store double %1237, ptr %1239, align 8, !tbaa !25
  %1240 = load ptr, ptr %1231, align 8, !tbaa !24
  %1241 = getelementptr inbounds i8, ptr %1240, i64 8
  %1242 = load double, ptr %1241, align 8, !tbaa !25
  %1243 = fmul double %1242, 1.000000e+01
  %1244 = load ptr, ptr %1238, align 8, !tbaa !24
  %1245 = getelementptr inbounds i8, ptr %1244, i64 8
  store double %1243, ptr %1245, align 8, !tbaa !25
  %1246 = load ptr, ptr %1231, align 8, !tbaa !24
  %1247 = load double, ptr %1246, align 8, !tbaa !25
  %1248 = call noundef double @_ZN11alglib_impl7ae_coshEdPNS_8ae_stateE(double noundef %1247, ptr noundef %6)
  %1249 = load ptr, ptr %1238, align 8, !tbaa !24
  %1250 = getelementptr inbounds i8, ptr %1249, i64 16
  store double %1248, ptr %1250, align 8, !tbaa !25
  br label %1251

1251:                                             ; preds = %1230, %1229
  br i1 %5, label %1252, label %._crit_edge1640

1252:                                             ; preds = %1251
  call void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 3, i64 noundef 2, double noundef 0.000000e+00, ptr noundef %4, ptr noundef %6)
  %1253 = getelementptr inbounds i8, ptr %1, i64 56
  %1254 = load ptr, ptr %1253, align 8, !tbaa !24
  %1255 = load double, ptr %1254, align 8, !tbaa !25
  %1256 = call double @llvm.fmuladd.f64(double %1255, double %1255, double 1.000000e+00)
  %1257 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1256, ptr noundef %6)
  %1258 = load ptr, ptr %1253, align 8, !tbaa !24
  %1259 = load double, ptr %1258, align 8, !tbaa !25
  %1260 = fmul double %1259, 1.000000e+02
  %1261 = call double @llvm.fmuladd.f64(double %1259, double %1259, double 1.000000e+00)
  %1262 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1261, ptr noundef %6)
  %1263 = fmul double %1260, -5.000000e-01
  %1264 = fdiv double %1263, %1262
  %1265 = call double @llvm.fmuladd.f64(double %1257, double 1.000000e+02, double %1264)
  %1266 = load ptr, ptr %1253, align 8, !tbaa !24
  %1267 = load double, ptr %1266, align 8, !tbaa !25
  %1268 = call double @llvm.fmuladd.f64(double %1267, double %1267, double 1.000000e+00)
  %1269 = fdiv double %1265, %1268
  %1270 = getelementptr inbounds i8, ptr %4, i64 72
  %1271 = load ptr, ptr %1270, align 8, !tbaa !24
  %1272 = load ptr, ptr %1271, align 8, !tbaa !27
  store double %1269, ptr %1272, align 8, !tbaa !25
  %1273 = load ptr, ptr %1270, align 8, !tbaa !24
  %1274 = getelementptr inbounds i8, ptr %1273, i64 8
  %1275 = load ptr, ptr %1274, align 8, !tbaa !27
  %1276 = getelementptr inbounds i8, ptr %1275, i64 8
  store double 1.000000e+01, ptr %1276, align 8, !tbaa !25
  %1277 = load ptr, ptr %1253, align 8, !tbaa !24
  %1278 = load double, ptr %1277, align 8, !tbaa !25
  %1279 = call noundef double @_ZN11alglib_impl7ae_sinhEdPNS_8ae_stateE(double noundef %1278, ptr noundef %6)
  %1280 = load ptr, ptr %1270, align 8, !tbaa !24
  %1281 = getelementptr inbounds i8, ptr %1280, i64 16
  %1282 = load ptr, ptr %1281, align 8, !tbaa !27
  store double %1279, ptr %1282, align 8, !tbaa !25
  br label %._crit_edge1640

1283:                                             ; preds = %766
  br i1 %3, label %1284, label %1312

1284:                                             ; preds = %1283
  %1285 = getelementptr inbounds i8, ptr %1, i64 56
  %1286 = load ptr, ptr %1285, align 8, !tbaa !24
  %1287 = getelementptr inbounds i8, ptr %1286, i64 8
  %1288 = load double, ptr %1287, align 8, !tbaa !25
  %1289 = load double, ptr %1286, align 8, !tbaa !25
  %1290 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1289, ptr noundef %6)
  %1291 = fsub double %1288, %1290
  %1292 = fmul double %1291, 1.000000e+02
  %1293 = getelementptr inbounds i8, ptr %2, i64 56
  %1294 = load ptr, ptr %1293, align 8, !tbaa !24
  store double %1292, ptr %1294, align 8, !tbaa !25
  %1295 = load ptr, ptr %1285, align 8, !tbaa !24
  %1296 = load double, ptr %1295, align 8, !tbaa !25
  %1297 = fadd double %1296, -1.000000e+00
  %1298 = fmul double %1297, 1.000000e+01
  %1299 = load ptr, ptr %1293, align 8, !tbaa !24
  %1300 = getelementptr inbounds i8, ptr %1299, i64 8
  store double %1298, ptr %1300, align 8, !tbaa !25
  %1301 = load ptr, ptr %1285, align 8, !tbaa !24
  %1302 = getelementptr inbounds i8, ptr %1301, i64 8
  %1303 = load double, ptr %1302, align 8, !tbaa !25
  %1304 = fadd double %1303, 1.000000e+00
  %1305 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1304, ptr noundef %6)
  %1306 = load ptr, ptr %1285, align 8, !tbaa !24
  %1307 = load double, ptr %1306, align 8, !tbaa !25
  %1308 = fsub double %1305, %1307
  %1309 = fadd double %1308, 1.000000e+00
  %1310 = load ptr, ptr %1293, align 8, !tbaa !24
  %1311 = getelementptr inbounds i8, ptr %1310, i64 16
  store double %1309, ptr %1311, align 8, !tbaa !25
  br label %1312

1312:                                             ; preds = %1284, %1283
  br i1 %5, label %1313, label %._crit_edge1640

1313:                                             ; preds = %1312
  call void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef 3, i64 noundef 2, double noundef 0.000000e+00, ptr noundef %4, ptr noundef %6)
  %1314 = getelementptr inbounds i8, ptr %1, i64 56
  %1315 = load ptr, ptr %1314, align 8, !tbaa !24
  %1316 = load double, ptr %1315, align 8, !tbaa !25
  %1317 = fmul double %1316, -2.000000e+02
  %1318 = getelementptr inbounds i8, ptr %4, i64 72
  %1319 = load ptr, ptr %1318, align 8, !tbaa !24
  %1320 = load ptr, ptr %1319, align 8, !tbaa !27
  store double %1317, ptr %1320, align 8, !tbaa !25
  %1321 = load ptr, ptr %1318, align 8, !tbaa !24
  %1322 = load ptr, ptr %1321, align 8, !tbaa !27
  %1323 = getelementptr inbounds i8, ptr %1322, i64 8
  store double 1.000000e+02, ptr %1323, align 8, !tbaa !25
  %1324 = load ptr, ptr %1318, align 8, !tbaa !24
  %1325 = getelementptr inbounds i8, ptr %1324, i64 8
  %1326 = load ptr, ptr %1325, align 8, !tbaa !27
  store double 1.000000e+01, ptr %1326, align 8, !tbaa !25
  %1327 = load ptr, ptr %1318, align 8, !tbaa !24
  %1328 = getelementptr inbounds i8, ptr %1327, i64 16
  %1329 = load ptr, ptr %1328, align 8, !tbaa !27
  store double -1.000000e+00, ptr %1329, align 8, !tbaa !25
  %1330 = load ptr, ptr %1314, align 8, !tbaa !24
  %1331 = getelementptr inbounds i8, ptr %1330, i64 8
  %1332 = load double, ptr %1331, align 8, !tbaa !25
  %1333 = fadd double %1332, 1.000000e+00
  %1334 = fmul double %1333, 2.000000e+00
  %1335 = load ptr, ptr %1318, align 8, !tbaa !24
  %1336 = getelementptr inbounds i8, ptr %1335, i64 16
  %1337 = load ptr, ptr %1336, align 8, !tbaa !27
  %1338 = getelementptr inbounds i8, ptr %1337, i64 8
  store double %1334, ptr %1338, align 8, !tbaa !25
  br label %._crit_edge1640

1339:                                             ; preds = %766
  br i1 %3, label %1340, label %1367

1340:                                             ; preds = %1339
  %1341 = getelementptr inbounds i8, ptr %1, i64 56
  %1342 = load ptr, ptr %1341, align 8, !tbaa !24
  %1343 = load double, ptr %1342, align 8, !tbaa !25
  %1344 = getelementptr inbounds i8, ptr %1342, i64 8
  %1345 = load double, ptr %1344, align 8, !tbaa !25
  %1346 = fadd double %1345, -1.000000e+00
  %1347 = call double @llvm.fmuladd.f64(double %1343, double %1346, double 1.500000e+00)
  %1348 = getelementptr inbounds i8, ptr %2, i64 56
  %1349 = load ptr, ptr %1348, align 8, !tbaa !24
  store double %1347, ptr %1349, align 8, !tbaa !25
  %1350 = load ptr, ptr %1341, align 8, !tbaa !24
  %1351 = load double, ptr %1350, align 8, !tbaa !25
  %1352 = getelementptr inbounds i8, ptr %1350, i64 8
  %1353 = load double, ptr %1352, align 8, !tbaa !25
  %1354 = call double @llvm.fmuladd.f64(double %1353, double %1353, double -1.000000e+00)
  %1355 = call double @llvm.fmuladd.f64(double %1351, double %1354, double 2.250000e+00)
  %1356 = load ptr, ptr %1348, align 8, !tbaa !24
  %1357 = getelementptr inbounds i8, ptr %1356, i64 8
  store double %1355, ptr %1357, align 8, !tbaa !25
  %1358 = load ptr, ptr %1341, align 8, !tbaa !24
  %1359 = load double, ptr %1358, align 8, !tbaa !25
  %1360 = getelementptr inbounds i8, ptr %1358, i64 8
  %1361 = load double, ptr %1360, align 8, !tbaa !25
  %1362 = fmul double %1361, %1361
  %1363 = call double @llvm.fmuladd.f64(double %1362, double %1361, double -1.000000e+00)
  %1364 = call double @llvm.fmuladd.f64(double %1359, double %1363, double 2.625000e+00)
  %1365 = load ptr, ptr %1348, align 8, !tbaa !24
  %1366 = getelementptr inbounds i8, ptr %1365, i64 16
  store double %1364, ptr %1366, align 8, !tbaa !25
  br label %1367

1367:                                             ; preds = %1340, %1339
  br i1 %5, label %1368, label %._crit_edge1640

1368:                                             ; preds = %1367
  %1369 = getelementptr inbounds i8, ptr %1, i64 56
  %1370 = load ptr, ptr %1369, align 8, !tbaa !24
  %1371 = getelementptr inbounds i8, ptr %1370, i64 8
  %1372 = load double, ptr %1371, align 8, !tbaa !25
  %1373 = fadd double %1372, -1.000000e+00
  %1374 = getelementptr inbounds i8, ptr %4, i64 72
  %1375 = load ptr, ptr %1374, align 8, !tbaa !24
  %1376 = load ptr, ptr %1375, align 8, !tbaa !27
  store double %1373, ptr %1376, align 8, !tbaa !25
  %1377 = load ptr, ptr %1369, align 8, !tbaa !24
  %1378 = load double, ptr %1377, align 8, !tbaa !25
  %1379 = load ptr, ptr %1374, align 8, !tbaa !24
  %1380 = load ptr, ptr %1379, align 8, !tbaa !27
  %1381 = getelementptr inbounds i8, ptr %1380, i64 8
  store double %1378, ptr %1381, align 8, !tbaa !25
  %1382 = load ptr, ptr %1369, align 8, !tbaa !24
  %1383 = getelementptr inbounds i8, ptr %1382, i64 8
  %1384 = load double, ptr %1383, align 8, !tbaa !25
  %1385 = call double @llvm.fmuladd.f64(double %1384, double %1384, double -1.000000e+00)
  %1386 = load ptr, ptr %1374, align 8, !tbaa !24
  %1387 = getelementptr inbounds i8, ptr %1386, i64 8
  %1388 = load ptr, ptr %1387, align 8, !tbaa !27
  store double %1385, ptr %1388, align 8, !tbaa !25
  %1389 = load ptr, ptr %1369, align 8, !tbaa !24
  %1390 = load double, ptr %1389, align 8, !tbaa !25
  %1391 = fmul double %1390, 2.000000e+00
  %1392 = getelementptr inbounds i8, ptr %1389, i64 8
  %1393 = load double, ptr %1392, align 8, !tbaa !25
  %1394 = fmul double %1391, %1393
  %1395 = load ptr, ptr %1374, align 8, !tbaa !24
  %1396 = getelementptr inbounds i8, ptr %1395, i64 8
  %1397 = load ptr, ptr %1396, align 8, !tbaa !27
  %1398 = getelementptr inbounds i8, ptr %1397, i64 8
  store double %1394, ptr %1398, align 8, !tbaa !25
  %1399 = load ptr, ptr %1369, align 8, !tbaa !24
  %1400 = getelementptr inbounds i8, ptr %1399, i64 8
  %1401 = load double, ptr %1400, align 8, !tbaa !25
  %1402 = fmul double %1401, %1401
  %1403 = call double @llvm.fmuladd.f64(double %1402, double %1401, double -1.000000e+00)
  %1404 = load ptr, ptr %1374, align 8, !tbaa !24
  %1405 = getelementptr inbounds i8, ptr %1404, i64 16
  %1406 = load ptr, ptr %1405, align 8, !tbaa !27
  store double %1403, ptr %1406, align 8, !tbaa !25
  %1407 = load ptr, ptr %1369, align 8, !tbaa !24
  %1408 = load double, ptr %1407, align 8, !tbaa !25
  %1409 = fmul double %1408, 3.000000e+00
  %1410 = getelementptr inbounds i8, ptr %1407, i64 8
  %1411 = load double, ptr %1410, align 8, !tbaa !25
  %1412 = fmul double %1409, %1411
  %1413 = fmul double %1411, %1412
  %1414 = load ptr, ptr %1374, align 8, !tbaa !24
  %1415 = getelementptr inbounds i8, ptr %1414, i64 16
  %1416 = load ptr, ptr %1415, align 8, !tbaa !27
  %1417 = getelementptr inbounds i8, ptr %1416, i64 8
  store double %1413, ptr %1417, align 8, !tbaa !25
  br label %._crit_edge1640

1418:                                             ; preds = %766
  br i1 %3, label %.preheader1494, label %.loopexit1495

.preheader1494:                                   ; preds = %1418
  %1419 = getelementptr inbounds i8, ptr %1, i64 56
  %1420 = getelementptr inbounds i8, ptr %2, i64 56
  br label %1421

1421:                                             ; preds = %.preheader1494, %1421
  %.221648 = phi i64 [ 0, %.preheader1494 ], [ %1422, %1421 ]
  %1422 = add nuw nsw i64 %.221648, 1
  %1423 = uitofp nneg i64 %1422 to double
  %1424 = fmul double %1423, 1.000000e-01
  %1425 = fneg double %1424
  %1426 = load ptr, ptr %1419, align 8, !tbaa !24
  %1427 = load double, ptr %1426, align 8, !tbaa !25
  %1428 = fmul double %1427, %1425
  %1429 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1428, ptr noundef %6)
  %1430 = load ptr, ptr %1419, align 8, !tbaa !24
  %1431 = getelementptr inbounds i8, ptr %1430, i64 8
  %1432 = load double, ptr %1431, align 8, !tbaa !25
  %1433 = fmul double %1432, %1425
  %1434 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1433, ptr noundef %6)
  %1435 = fsub double %1429, %1434
  %1436 = load ptr, ptr %1419, align 8, !tbaa !24
  %1437 = getelementptr inbounds i8, ptr %1436, i64 16
  %1438 = load double, ptr %1437, align 8, !tbaa !25
  %1439 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1425, ptr noundef %6)
  %1440 = fmul double %1424, -1.000000e+01
  %1441 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1440, ptr noundef %6)
  %1442 = fsub double %1439, %1441
  %1443 = fneg double %1438
  %1444 = call double @llvm.fmuladd.f64(double %1443, double %1442, double %1435)
  %1445 = load ptr, ptr %1420, align 8, !tbaa !24
  %1446 = getelementptr inbounds double, ptr %1445, i64 %.221648
  store double %1444, ptr %1446, align 8, !tbaa !25
  %exitcond1718.not = icmp eq i64 %1422, 10
  br i1 %exitcond1718.not, label %.loopexit1495, label %1421, !llvm.loop !57

.loopexit1495:                                    ; preds = %1421, %1418
  br i1 %5, label %.preheader1493, label %._crit_edge1640

.preheader1493:                                   ; preds = %.loopexit1495
  %1447 = getelementptr inbounds i8, ptr %1, i64 56
  %1448 = getelementptr inbounds i8, ptr %4, i64 72
  br label %1449

1449:                                             ; preds = %.preheader1493, %1449
  %.231649 = phi i64 [ 0, %.preheader1493 ], [ %1450, %1449 ]
  %1450 = add nuw nsw i64 %.231649, 1
  %1451 = uitofp nneg i64 %1450 to double
  %1452 = fmul double %1451, 1.000000e-01
  %1453 = fneg double %1452
  %1454 = load ptr, ptr %1447, align 8, !tbaa !24
  %1455 = load double, ptr %1454, align 8, !tbaa !25
  %1456 = fmul double %1455, %1453
  %1457 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1456, ptr noundef %6)
  %1458 = fmul double %1457, %1453
  %1459 = load ptr, ptr %1448, align 8, !tbaa !24
  %1460 = getelementptr inbounds ptr, ptr %1459, i64 %.231649
  %1461 = load ptr, ptr %1460, align 8, !tbaa !27
  store double %1458, ptr %1461, align 8, !tbaa !25
  %1462 = load ptr, ptr %1447, align 8, !tbaa !24
  %1463 = getelementptr inbounds i8, ptr %1462, i64 8
  %1464 = load double, ptr %1463, align 8, !tbaa !25
  %1465 = fmul double %1464, %1453
  %1466 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1465, ptr noundef %6)
  %1467 = fmul double %1452, %1466
  %1468 = load ptr, ptr %1448, align 8, !tbaa !24
  %1469 = getelementptr inbounds ptr, ptr %1468, i64 %.231649
  %1470 = load ptr, ptr %1469, align 8, !tbaa !27
  %1471 = getelementptr inbounds i8, ptr %1470, i64 8
  store double %1467, ptr %1471, align 8, !tbaa !25
  %1472 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1453, ptr noundef %6)
  %1473 = fmul double %1452, -1.000000e+01
  %1474 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1473, ptr noundef %6)
  %1475 = fsub double %1472, %1474
  %1476 = fneg double %1475
  %1477 = load ptr, ptr %1448, align 8, !tbaa !24
  %1478 = getelementptr inbounds ptr, ptr %1477, i64 %.231649
  %1479 = load ptr, ptr %1478, align 8, !tbaa !27
  %1480 = getelementptr inbounds i8, ptr %1479, i64 16
  store double %1476, ptr %1480, align 8, !tbaa !25
  %exitcond1719.not = icmp eq i64 %1450, 10
  br i1 %exitcond1719.not, label %._crit_edge1640, label %1449, !llvm.loop !58

1481:                                             ; preds = %766
  br i1 %3, label %.preheader1498, label %.loopexit1499

.preheader1498:                                   ; preds = %1481
  %1482 = getelementptr inbounds i8, ptr %1, i64 56
  %1483 = getelementptr inbounds i8, ptr %2, i64 56
  br label %1484

1484:                                             ; preds = %.preheader1498, %1484
  %.241646 = phi i64 [ 0, %.preheader1498 ], [ %1485, %1484 ]
  %1485 = add nuw nsw i64 %.241646, 1
  %1486 = uitofp nneg i64 %1485 to double
  %1487 = fmul double %1486, 1.000000e-02
  %1488 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef %1487, ptr noundef %6)
  %1489 = fmul double %1488, -5.000000e+01
  %1490 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1489, double noundef 0x3FE5555555555555, ptr noundef %6)
  %1491 = fadd double %1490, 2.500000e+01
  %1492 = load i64, ptr %40, align 8, !tbaa !16
  %1493 = sitofp i64 %1492 to double
  %1494 = fmul double %1491, %1493
  %1495 = fmul double %1494, %1486
  %1496 = load ptr, ptr %1482, align 8, !tbaa !24
  %1497 = getelementptr inbounds i8, ptr %1496, i64 8
  %1498 = load double, ptr %1497, align 8, !tbaa !25
  %1499 = fmul double %1498, %1495
  %1500 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1499, ptr noundef %6)
  %1501 = load ptr, ptr %1482, align 8, !tbaa !24
  %1502 = getelementptr inbounds i8, ptr %1501, i64 16
  %1503 = load double, ptr %1502, align 8, !tbaa !25
  %1504 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1500, double noundef %1503, ptr noundef %6)
  %1505 = fneg double %1504
  %1506 = load ptr, ptr %1482, align 8, !tbaa !24
  %1507 = load double, ptr %1506, align 8, !tbaa !25
  %1508 = fdiv double %1505, %1507
  %1509 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1508, ptr noundef %6)
  %1510 = fsub double %1509, %1487
  %1511 = load ptr, ptr %1483, align 8, !tbaa !24
  %1512 = getelementptr inbounds double, ptr %1511, i64 %.241646
  store double %1510, ptr %1512, align 8, !tbaa !25
  %exitcond1716.not = icmp eq i64 %1485, 10
  br i1 %exitcond1716.not, label %.loopexit1499, label %1484, !llvm.loop !59

.loopexit1499:                                    ; preds = %1484, %1481
  br i1 %5, label %.preheader1496, label %._crit_edge1640

.preheader1496:                                   ; preds = %.loopexit1499
  %1513 = getelementptr inbounds i8, ptr %1, i64 56
  %1514 = getelementptr inbounds i8, ptr %4, i64 72
  br label %1515

1515:                                             ; preds = %.preheader1496, %1515
  %.251647 = phi i64 [ 0, %.preheader1496 ], [ %1516, %1515 ]
  %1516 = add nuw nsw i64 %.251647, 1
  %1517 = uitofp nneg i64 %1516 to double
  %1518 = fmul double %1517, 1.000000e-02
  %1519 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef %1518, ptr noundef %6)
  %1520 = fmul double %1519, -5.000000e+01
  %1521 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1520, double noundef 0x3FE5555555555555, ptr noundef %6)
  %1522 = fadd double %1521, 2.500000e+01
  %1523 = load i64, ptr %40, align 8, !tbaa !16
  %1524 = sitofp i64 %1523 to double
  %1525 = fmul double %1522, %1524
  %1526 = fmul double %1525, %1517
  %1527 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %1526, ptr noundef %6)
  %1528 = load ptr, ptr %1513, align 8, !tbaa !24
  %1529 = getelementptr inbounds i8, ptr %1528, i64 8
  %1530 = load double, ptr %1529, align 8, !tbaa !25
  %1531 = fmul double %1527, %1530
  %1532 = getelementptr inbounds i8, ptr %1528, i64 16
  %1533 = load double, ptr %1532, align 8, !tbaa !25
  %1534 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1531, double noundef %1533, ptr noundef %6)
  %1535 = fneg double %1534
  %1536 = load ptr, ptr %1513, align 8, !tbaa !24
  %1537 = load double, ptr %1536, align 8, !tbaa !25
  %1538 = fdiv double %1535, %1537
  %1539 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %1538, ptr noundef %6)
  %1540 = load ptr, ptr %1513, align 8, !tbaa !24
  %1541 = getelementptr inbounds i8, ptr %1540, i64 8
  %1542 = load double, ptr %1541, align 8, !tbaa !25
  %1543 = fmul double %1527, %1542
  %1544 = getelementptr inbounds i8, ptr %1540, i64 16
  %1545 = load double, ptr %1544, align 8, !tbaa !25
  %1546 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1543, double noundef %1545, ptr noundef %6)
  %1547 = fmul double %1539, %1546
  %1548 = load ptr, ptr %1513, align 8, !tbaa !24
  %1549 = load double, ptr %1548, align 8, !tbaa !25
  %1550 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1549, ptr noundef %6)
  %1551 = fdiv double %1547, %1550
  %1552 = load ptr, ptr %1514, align 8, !tbaa !24
  %1553 = getelementptr inbounds ptr, ptr %1552, i64 %.251647
  %1554 = load ptr, ptr %1553, align 8, !tbaa !27
  store double %1551, ptr %1554, align 8, !tbaa !25
  %1555 = load ptr, ptr %1513, align 8, !tbaa !24
  %1556 = load double, ptr %1555, align 8, !tbaa !25
  %1557 = fdiv double -1.000000e+00, %1556
  %1558 = fmul double %1539, %1557
  %1559 = getelementptr inbounds i8, ptr %1555, i64 16
  %1560 = load double, ptr %1559, align 8, !tbaa !25
  %1561 = fmul double %1560, %1558
  %1562 = getelementptr inbounds i8, ptr %1555, i64 8
  %1563 = load double, ptr %1562, align 8, !tbaa !25
  %1564 = fmul double %1527, %1563
  %1565 = fadd double %1560, -1.000000e+00
  %1566 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1564, double noundef %1565, ptr noundef %6)
  %1567 = fmul double %1561, %1566
  %1568 = fmul double %1527, %1567
  %1569 = load ptr, ptr %1514, align 8, !tbaa !24
  %1570 = getelementptr inbounds ptr, ptr %1569, i64 %.251647
  %1571 = load ptr, ptr %1570, align 8, !tbaa !27
  %1572 = getelementptr inbounds i8, ptr %1571, i64 8
  store double %1568, ptr %1572, align 8, !tbaa !25
  %1573 = load ptr, ptr %1513, align 8, !tbaa !24
  %1574 = load double, ptr %1573, align 8, !tbaa !25
  %1575 = fdiv double -1.000000e+00, %1574
  %1576 = fmul double %1539, %1575
  %1577 = getelementptr inbounds i8, ptr %1573, i64 8
  %1578 = load double, ptr %1577, align 8, !tbaa !25
  %1579 = fmul double %1527, %1578
  %1580 = getelementptr inbounds i8, ptr %1573, i64 16
  %1581 = load double, ptr %1580, align 8, !tbaa !25
  %1582 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef %1579, double noundef %1581, ptr noundef %6)
  %1583 = fmul double %1576, %1582
  %1584 = load ptr, ptr %1513, align 8, !tbaa !24
  %1585 = getelementptr inbounds i8, ptr %1584, i64 8
  %1586 = load double, ptr %1585, align 8, !tbaa !25
  %1587 = fmul double %1527, %1586
  %1588 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef %1587, ptr noundef %6)
  %1589 = fmul double %1583, %1588
  %1590 = load ptr, ptr %1514, align 8, !tbaa !24
  %1591 = getelementptr inbounds ptr, ptr %1590, i64 %.251647
  %1592 = load ptr, ptr %1591, align 8, !tbaa !27
  %1593 = getelementptr inbounds i8, ptr %1592, i64 16
  store double %1589, ptr %1593, align 8, !tbaa !25
  %exitcond1717.not = icmp eq i64 %1516, 10
  br i1 %exitcond1717.not, label %._crit_edge1640, label %1515, !llvm.loop !60

.peel.next:                                       ; preds = %.peel.next.preheader.peel.newph, %1686
  %.261645 = phi i64 [ %1607, %1686 ], [ 2, %.peel.next.preheader.peel.newph ]
  %1594 = icmp eq i64 %.261645, 2
  %spec.store.select4 = select i1 %1594, double 2.200000e-01, double 0.000000e+00
  %1595 = icmp eq i64 %.261645, 3
  %spec.store.select6 = select i1 %1595, double 2.500000e-01, double %spec.store.select4
  %1596 = icmp eq i64 %.261645, 4
  %spec.store.select8 = select i1 %1596, double 2.900000e-01, double %spec.store.select6
  %1597 = icmp eq i64 %.261645, 5
  %spec.store.select10 = select i1 %1597, double 3.200000e-01, double %spec.store.select8
  %1598 = icmp eq i64 %.261645, 6
  %spec.store.select12 = select i1 %1598, double 3.500000e-01, double %spec.store.select10
  %1599 = icmp eq i64 %.261645, 7
  %spec.store.select14 = select i1 %1599, double 3.900000e-01, double %spec.store.select12
  %1600 = icmp eq i64 %.261645, 8
  %spec.store.select16 = select i1 %1600, double 3.700000e-01, double %spec.store.select14
  %1601 = icmp eq i64 %.261645, 9
  %spec.store.select18 = select i1 %1601, double 5.800000e-01, double %spec.store.select16
  %1602 = icmp eq i64 %.261645, 10
  %spec.store.select20 = select i1 %1602, double 7.300000e-01, double %spec.store.select18
  %1603 = icmp eq i64 %.261645, 11
  %spec.store.select22 = select i1 %1603, double 0x3FEEB851EB851EB8, double %spec.store.select20
  %1604 = icmp eq i64 %.261645, 12
  %spec.store.select24 = select i1 %1604, double 1.340000e+00, double %spec.store.select22
  %1605 = icmp eq i64 %.261645, 13
  %spec.store.select26 = select i1 %1605, double 2.100000e+00, double %spec.store.select24
  %1606 = icmp eq i64 %.261645, 14
  %spec.store.select28 = select i1 %1606, double 4.390000e+00, double %spec.store.select26
  %1607 = add nuw nsw i64 %.261645, 1
  %1608 = uitofp nneg i64 %1607 to double
  %1609 = sub nuw nsw i64 15, %.261645
  %1610 = uitofp nneg i64 %1609 to double
  %1611 = call noundef double @_ZN11alglib_impl10ae_minrealEddPNS_8ae_stateE(double noundef %1608, double noundef %1610, ptr noundef %6)
  %1612 = load ptr, ptr %775, align 8, !tbaa !24
  %1613 = getelementptr inbounds i8, ptr %1612, i64 8
  %1614 = load double, ptr %1613, align 8, !tbaa !25
  %1615 = getelementptr inbounds i8, ptr %1612, i64 16
  %1616 = load double, ptr %1615, align 8, !tbaa !25
  %1617 = fmul double %1611, %1616
  %1618 = call double @llvm.fmuladd.f64(double %1610, double %1614, double %1617)
  %1619 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %1618, double noundef 1.000000e-300)
  br i1 %1619, label %1620, label %1664

1620:                                             ; preds = %.peel.next
  br i1 %3, label %1621, label %1635

1621:                                             ; preds = %1620
  %1622 = load ptr, ptr %775, align 8, !tbaa !24
  %1623 = load double, ptr %1622, align 8, !tbaa !25
  %1624 = getelementptr inbounds i8, ptr %1622, i64 8
  %1625 = load double, ptr %1624, align 8, !tbaa !25
  %1626 = getelementptr inbounds i8, ptr %1622, i64 16
  %1627 = load double, ptr %1626, align 8, !tbaa !25
  %1628 = fmul double %1611, %1627
  %1629 = call double @llvm.fmuladd.f64(double %1610, double %1625, double %1628)
  %1630 = fdiv double %1608, %1629
  %1631 = fadd double %1623, %1630
  %1632 = fsub double %spec.store.select28, %1631
  %1633 = load ptr, ptr %776, align 8, !tbaa !24
  %1634 = getelementptr inbounds double, ptr %1633, i64 %.261645
  store double %1632, ptr %1634, align 8, !tbaa !25
  br label %1635

1635:                                             ; preds = %1621, %1620
  br i1 %5, label %1636, label %1686

1636:                                             ; preds = %1635
  %1637 = load ptr, ptr %777, align 8, !tbaa !24
  %1638 = getelementptr inbounds ptr, ptr %1637, i64 %.261645
  %1639 = load ptr, ptr %1638, align 8, !tbaa !27
  store double -1.000000e+00, ptr %1639, align 8, !tbaa !25
  %1640 = load ptr, ptr %775, align 8, !tbaa !24
  %1641 = getelementptr inbounds i8, ptr %1640, i64 8
  %1642 = load double, ptr %1641, align 8, !tbaa !25
  %1643 = getelementptr inbounds i8, ptr %1640, i64 16
  %1644 = load double, ptr %1643, align 8, !tbaa !25
  %1645 = fmul double %1611, %1644
  %1646 = call double @llvm.fmuladd.f64(double %1610, double %1642, double %1645)
  %1647 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1646, ptr noundef %6)
  %1648 = fdiv double %1608, %1647
  %1649 = fmul double %1648, %1610
  %1650 = load ptr, ptr %777, align 8, !tbaa !24
  %1651 = getelementptr inbounds ptr, ptr %1650, i64 %.261645
  %1652 = load ptr, ptr %1651, align 8, !tbaa !27
  %1653 = getelementptr inbounds i8, ptr %1652, i64 8
  store double %1649, ptr %1653, align 8, !tbaa !25
  %1654 = load ptr, ptr %775, align 8, !tbaa !24
  %1655 = getelementptr inbounds i8, ptr %1654, i64 8
  %1656 = load double, ptr %1655, align 8, !tbaa !25
  %1657 = getelementptr inbounds i8, ptr %1654, i64 16
  %1658 = load double, ptr %1657, align 8, !tbaa !25
  %1659 = fmul double %1611, %1658
  %1660 = call double @llvm.fmuladd.f64(double %1610, double %1656, double %1659)
  %1661 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1660, ptr noundef %6)
  %1662 = fdiv double %1608, %1661
  %1663 = fmul double %1611, %1662
  br label %.sink.split

1664:                                             ; preds = %.peel.next
  br i1 %3, label %1665, label %1673

1665:                                             ; preds = %1664
  %1666 = load ptr, ptr %775, align 8, !tbaa !24
  %1667 = load double, ptr %1666, align 8, !tbaa !25
  %1668 = fdiv double %1608, 1.000000e-300
  %1669 = fadd double %1668, %1667
  %1670 = fsub double %spec.store.select28, %1669
  %1671 = load ptr, ptr %776, align 8, !tbaa !24
  %1672 = getelementptr inbounds double, ptr %1671, i64 %.261645
  store double %1670, ptr %1672, align 8, !tbaa !25
  br label %1673

1673:                                             ; preds = %1665, %1664
  br i1 %5, label %1674, label %1686

1674:                                             ; preds = %1673
  %1675 = load ptr, ptr %777, align 8, !tbaa !24
  %1676 = getelementptr inbounds ptr, ptr %1675, i64 %.261645
  %1677 = load ptr, ptr %1676, align 8, !tbaa !27
  store double 0.000000e+00, ptr %1677, align 8, !tbaa !25
  %1678 = load ptr, ptr %777, align 8, !tbaa !24
  %1679 = getelementptr inbounds ptr, ptr %1678, i64 %.261645
  %1680 = load ptr, ptr %1679, align 8, !tbaa !27
  %1681 = getelementptr inbounds i8, ptr %1680, i64 8
  store double 0.000000e+00, ptr %1681, align 8, !tbaa !25
  br label %.sink.split

.sink.split:                                      ; preds = %1674, %1636
  %.sink1748 = phi double [ %1663, %1636 ], [ 0.000000e+00, %1674 ]
  %1682 = load ptr, ptr %777, align 8, !tbaa !24
  %1683 = getelementptr inbounds ptr, ptr %1682, i64 %.261645
  %1684 = load ptr, ptr %1683, align 8, !tbaa !27
  %1685 = getelementptr inbounds i8, ptr %1684, i64 16
  store double %.sink1748, ptr %1685, align 8, !tbaa !25
  br label %1686

1686:                                             ; preds = %.sink.split, %1635, %1673
  %exitcond1713.not = icmp eq i64 %1607, 15
  br i1 %exitcond1713.not, label %._crit_edge1640, label %.peel.next, !llvm.loop !61

1687:                                             ; preds = %766
  br i1 %3, label %1688, label %1751

1688:                                             ; preds = %1687
  %1689 = getelementptr inbounds i8, ptr %1, i64 56
  %1690 = load ptr, ptr %1689, align 8, !tbaa !24
  %1691 = load double, ptr %1690, align 8, !tbaa !25
  %1692 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1691, ptr noundef %6)
  %1693 = load ptr, ptr %1689, align 8, !tbaa !24
  %1694 = getelementptr inbounds i8, ptr %1693, i64 8
  %1695 = load double, ptr %1694, align 8, !tbaa !25
  %1696 = fsub double %1692, %1695
  %1697 = fmul double %1696, 1.000000e+01
  %1698 = getelementptr inbounds i8, ptr %2, i64 56
  %1699 = load ptr, ptr %1698, align 8, !tbaa !24
  store double %1697, ptr %1699, align 8, !tbaa !25
  %1700 = load ptr, ptr %1689, align 8, !tbaa !24
  %1701 = load double, ptr %1700, align 8, !tbaa !25
  %1702 = fadd double %1701, -1.000000e+00
  %1703 = load ptr, ptr %1698, align 8, !tbaa !24
  %1704 = getelementptr inbounds i8, ptr %1703, i64 8
  store double %1702, ptr %1704, align 8, !tbaa !25
  %1705 = load ptr, ptr %1689, align 8, !tbaa !24
  %1706 = getelementptr inbounds i8, ptr %1705, i64 16
  %1707 = load double, ptr %1706, align 8, !tbaa !25
  %1708 = fadd double %1707, -1.000000e+00
  %1709 = load ptr, ptr %1698, align 8, !tbaa !24
  %1710 = getelementptr inbounds i8, ptr %1709, i64 16
  store double %1708, ptr %1710, align 8, !tbaa !25
  %1711 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 9.000000e+01, ptr noundef %6)
  %1712 = load ptr, ptr %1689, align 8, !tbaa !24
  %1713 = getelementptr inbounds i8, ptr %1712, i64 16
  %1714 = load double, ptr %1713, align 8, !tbaa !25
  %1715 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1714, ptr noundef %6)
  %1716 = load ptr, ptr %1689, align 8, !tbaa !24
  %1717 = getelementptr inbounds i8, ptr %1716, i64 24
  %1718 = load double, ptr %1717, align 8, !tbaa !25
  %1719 = fsub double %1715, %1718
  %1720 = fmul double %1711, %1719
  %1721 = load ptr, ptr %1698, align 8, !tbaa !24
  %1722 = getelementptr inbounds i8, ptr %1721, i64 24
  store double %1720, ptr %1722, align 8, !tbaa !25
  %1723 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.010000e+01, ptr noundef %6)
  %1724 = load ptr, ptr %1689, align 8, !tbaa !24
  %1725 = getelementptr inbounds i8, ptr %1724, i64 8
  %1726 = load double, ptr %1725, align 8, !tbaa !25
  %1727 = fadd double %1726, -1.000000e+00
  %1728 = fmul double %1723, %1727
  %1729 = load ptr, ptr %1698, align 8, !tbaa !24
  %1730 = getelementptr inbounds i8, ptr %1729, i64 32
  store double %1728, ptr %1730, align 8, !tbaa !25
  %1731 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.010000e+01, ptr noundef %6)
  %1732 = load ptr, ptr %1689, align 8, !tbaa !24
  %1733 = getelementptr inbounds i8, ptr %1732, i64 24
  %1734 = load double, ptr %1733, align 8, !tbaa !25
  %1735 = fadd double %1734, -1.000000e+00
  %1736 = fmul double %1731, %1735
  %1737 = load ptr, ptr %1698, align 8, !tbaa !24
  %1738 = getelementptr inbounds i8, ptr %1737, i64 40
  store double %1736, ptr %1738, align 8, !tbaa !25
  %1739 = load ptr, ptr %1689, align 8, !tbaa !24
  %1740 = getelementptr inbounds i8, ptr %1739, i64 8
  %1741 = load double, ptr %1740, align 8, !tbaa !25
  %1742 = fadd double %1741, -1.000000e+00
  %1743 = fmul double %1742, 1.980000e+01
  %1744 = getelementptr inbounds i8, ptr %1739, i64 24
  %1745 = load double, ptr %1744, align 8, !tbaa !25
  %1746 = fadd double %1745, -1.000000e+00
  %1747 = call double @llvm.fmuladd.f64(double %1743, double %1746, double 5.000000e-16)
  %1748 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1747, ptr noundef %6)
  %1749 = load ptr, ptr %1698, align 8, !tbaa !24
  %1750 = getelementptr inbounds i8, ptr %1749, i64 48
  store double %1748, ptr %1750, align 8, !tbaa !25
  br label %1751

1751:                                             ; preds = %1688, %1687
  br i1 %5, label %1752, label %._crit_edge1640

1752:                                             ; preds = %1751
  %1753 = load i64, ptr %40, align 8, !tbaa !16
  %1754 = load i64, ptr %38, align 8, !tbaa !20
  call void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %1753, i64 noundef %1754, double noundef 0.000000e+00, ptr noundef %4, ptr noundef %6)
  %1755 = getelementptr inbounds i8, ptr %1, i64 56
  %1756 = load ptr, ptr %1755, align 8, !tbaa !24
  %1757 = load double, ptr %1756, align 8, !tbaa !25
  %1758 = fmul double %1757, 2.000000e+01
  %1759 = getelementptr inbounds i8, ptr %4, i64 72
  %1760 = load ptr, ptr %1759, align 8, !tbaa !24
  %1761 = load ptr, ptr %1760, align 8, !tbaa !27
  store double %1758, ptr %1761, align 8, !tbaa !25
  %1762 = load ptr, ptr %1759, align 8, !tbaa !24
  %1763 = load ptr, ptr %1762, align 8, !tbaa !27
  %1764 = getelementptr inbounds i8, ptr %1763, i64 8
  store double -1.000000e+01, ptr %1764, align 8, !tbaa !25
  %1765 = load ptr, ptr %1759, align 8, !tbaa !24
  %1766 = getelementptr inbounds i8, ptr %1765, i64 8
  %1767 = load ptr, ptr %1766, align 8, !tbaa !27
  store double 1.000000e+00, ptr %1767, align 8, !tbaa !25
  %1768 = load ptr, ptr %1759, align 8, !tbaa !24
  %1769 = getelementptr inbounds i8, ptr %1768, i64 16
  %1770 = load ptr, ptr %1769, align 8, !tbaa !27
  %1771 = getelementptr inbounds i8, ptr %1770, i64 16
  store double 1.000000e+00, ptr %1771, align 8, !tbaa !25
  %1772 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 9.000000e+01, ptr noundef %6)
  %1773 = fmul double %1772, 2.000000e+00
  %1774 = load ptr, ptr %1755, align 8, !tbaa !24
  %1775 = getelementptr inbounds i8, ptr %1774, i64 16
  %1776 = load double, ptr %1775, align 8, !tbaa !25
  %1777 = fmul double %1773, %1776
  %1778 = load ptr, ptr %1759, align 8, !tbaa !24
  %1779 = getelementptr inbounds i8, ptr %1778, i64 24
  %1780 = load ptr, ptr %1779, align 8, !tbaa !27
  %1781 = getelementptr inbounds i8, ptr %1780, i64 16
  store double %1777, ptr %1781, align 8, !tbaa !25
  %1782 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 9.000000e+01, ptr noundef %6)
  %1783 = fneg double %1782
  %1784 = load ptr, ptr %1759, align 8, !tbaa !24
  %1785 = getelementptr inbounds i8, ptr %1784, i64 24
  %1786 = load ptr, ptr %1785, align 8, !tbaa !27
  %1787 = getelementptr inbounds i8, ptr %1786, i64 24
  store double %1783, ptr %1787, align 8, !tbaa !25
  %1788 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.010000e+01, ptr noundef %6)
  %1789 = load ptr, ptr %1759, align 8, !tbaa !24
  %1790 = getelementptr inbounds i8, ptr %1789, i64 32
  %1791 = load ptr, ptr %1790, align 8, !tbaa !27
  %1792 = getelementptr inbounds i8, ptr %1791, i64 8
  store double %1788, ptr %1792, align 8, !tbaa !25
  %1793 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.010000e+01, ptr noundef %6)
  %1794 = load ptr, ptr %1759, align 8, !tbaa !24
  %1795 = getelementptr inbounds i8, ptr %1794, i64 40
  %1796 = load ptr, ptr %1795, align 8, !tbaa !27
  %1797 = getelementptr inbounds i8, ptr %1796, i64 24
  store double %1793, ptr %1797, align 8, !tbaa !25
  %1798 = load ptr, ptr %1755, align 8, !tbaa !24
  %1799 = getelementptr inbounds i8, ptr %1798, i64 8
  %1800 = load double, ptr %1799, align 8, !tbaa !25
  %1801 = fadd double %1800, -1.000000e+00
  %1802 = fmul double %1801, 1.980000e+01
  %1803 = getelementptr inbounds i8, ptr %1798, i64 24
  %1804 = load double, ptr %1803, align 8, !tbaa !25
  %1805 = fadd double %1804, -1.000000e+00
  %1806 = call double @llvm.fmuladd.f64(double %1802, double %1805, double 5.000000e-16)
  %1807 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1806, ptr noundef %6)
  %1808 = fdiv double 5.000000e-01, %1807
  %1809 = fmul double %1808, 1.980000e+01
  %1810 = load ptr, ptr %1755, align 8, !tbaa !24
  %1811 = getelementptr inbounds i8, ptr %1810, i64 24
  %1812 = load double, ptr %1811, align 8, !tbaa !25
  %1813 = fadd double %1812, -1.000000e+00
  %1814 = fmul double %1809, %1813
  %1815 = load ptr, ptr %1759, align 8, !tbaa !24
  %1816 = getelementptr inbounds i8, ptr %1815, i64 48
  %1817 = load ptr, ptr %1816, align 8, !tbaa !27
  %1818 = getelementptr inbounds i8, ptr %1817, i64 8
  store double %1814, ptr %1818, align 8, !tbaa !25
  %1819 = load ptr, ptr %1755, align 8, !tbaa !24
  %1820 = getelementptr inbounds i8, ptr %1819, i64 8
  %1821 = load double, ptr %1820, align 8, !tbaa !25
  %1822 = fadd double %1821, -1.000000e+00
  %1823 = fmul double %1822, 1.980000e+01
  %1824 = getelementptr inbounds i8, ptr %1819, i64 24
  %1825 = load double, ptr %1824, align 8, !tbaa !25
  %1826 = fadd double %1825, -1.000000e+00
  %1827 = call double @llvm.fmuladd.f64(double %1823, double %1826, double 5.000000e-16)
  %1828 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %1827, ptr noundef %6)
  %1829 = fdiv double 5.000000e-01, %1828
  %1830 = fmul double %1829, 1.980000e+01
  %1831 = load ptr, ptr %1755, align 8, !tbaa !24
  %1832 = getelementptr inbounds i8, ptr %1831, i64 8
  %1833 = load double, ptr %1832, align 8, !tbaa !25
  %1834 = fadd double %1833, -1.000000e+00
  %1835 = fmul double %1830, %1834
  %1836 = load ptr, ptr %1759, align 8, !tbaa !24
  %1837 = getelementptr inbounds i8, ptr %1836, i64 48
  %1838 = load ptr, ptr %1837, align 8, !tbaa !27
  %1839 = getelementptr inbounds i8, ptr %1838, i64 24
  store double %1835, ptr %1839, align 8, !tbaa !25
  br label %._crit_edge1640

1840:                                             ; preds = %766
  br i1 %5, label %1841, label %1844

1841:                                             ; preds = %1840
  %1842 = load i64, ptr %40, align 8, !tbaa !16
  %1843 = load i64, ptr %38, align 8, !tbaa !20
  call void @_ZN11alglib_impl5rsetmElldPNS_9ae_matrixEPNS_8ae_stateE(i64 noundef %1842, i64 noundef %1843, double noundef 0.000000e+00, ptr noundef %4, ptr noundef %6)
  br label %1844

1844:                                             ; preds = %1841, %1840
  %1845 = getelementptr inbounds i8, ptr %1, i64 56
  %1846 = getelementptr inbounds i8, ptr %2, i64 56
  %1847 = getelementptr inbounds i8, ptr %4, i64 72
  br i1 %3, label %1848, label %1855

1848:                                             ; preds = %1844
  %1849 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1850 = load ptr, ptr %1845, align 8, !tbaa !24
  %1851 = load double, ptr %1850, align 8, !tbaa !25
  %1852 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1851, ptr noundef %6)
  %1853 = fmul double %1849, %1852
  %1854 = load ptr, ptr %1846, align 8, !tbaa !24
  store double %1853, ptr %1854, align 8, !tbaa !25
  br label %1855

1855:                                             ; preds = %1848, %1844
  br i1 %5, label %1856, label %1864

1856:                                             ; preds = %1855
  %1857 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1858 = fmul double %1857, 2.000000e+00
  %1859 = load ptr, ptr %1845, align 8, !tbaa !24
  %1860 = load double, ptr %1859, align 8, !tbaa !25
  %1861 = fmul double %1858, %1860
  %1862 = load ptr, ptr %1847, align 8, !tbaa !24
  %1863 = load ptr, ptr %1862, align 8, !tbaa !27
  store double %1861, ptr %1863, align 8, !tbaa !25
  br label %1864

1864:                                             ; preds = %1855, %1856
  br i1 %3, label %1865, label %1874

1865:                                             ; preds = %1864
  %1866 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1867 = load ptr, ptr %1845, align 8, !tbaa !24
  %1868 = getelementptr inbounds i8, ptr %1867, i64 8
  %1869 = load double, ptr %1868, align 8, !tbaa !25
  %1870 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1869, ptr noundef %6)
  %1871 = fmul double %1866, %1870
  %1872 = load ptr, ptr %1846, align 8, !tbaa !24
  %1873 = getelementptr inbounds i8, ptr %1872, i64 8
  store double %1871, ptr %1873, align 8, !tbaa !25
  br label %1874

1874:                                             ; preds = %1865, %1864
  br i1 %5, label %1875, label %1886

1875:                                             ; preds = %1874
  %1876 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1877 = fmul double %1876, 2.000000e+00
  %1878 = load ptr, ptr %1845, align 8, !tbaa !24
  %1879 = getelementptr inbounds i8, ptr %1878, i64 8
  %1880 = load double, ptr %1879, align 8, !tbaa !25
  %1881 = fmul double %1877, %1880
  %1882 = load ptr, ptr %1847, align 8, !tbaa !24
  %1883 = getelementptr inbounds i8, ptr %1882, i64 8
  %1884 = load ptr, ptr %1883, align 8, !tbaa !27
  %1885 = getelementptr inbounds i8, ptr %1884, i64 8
  store double %1881, ptr %1885, align 8, !tbaa !25
  br label %1886

1886:                                             ; preds = %1875, %1874
  br i1 %3, label %1887, label %1896

1887:                                             ; preds = %1886
  %1888 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1889 = load ptr, ptr %1845, align 8, !tbaa !24
  %1890 = getelementptr inbounds i8, ptr %1889, i64 16
  %1891 = load double, ptr %1890, align 8, !tbaa !25
  %1892 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1891, ptr noundef %6)
  %1893 = fmul double %1888, %1892
  %1894 = load ptr, ptr %1846, align 8, !tbaa !24
  %1895 = getelementptr inbounds i8, ptr %1894, i64 16
  store double %1893, ptr %1895, align 8, !tbaa !25
  br label %1896

1896:                                             ; preds = %1887, %1886
  br i1 %5, label %1897, label %1908

1897:                                             ; preds = %1896
  %1898 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1899 = fmul double %1898, 2.000000e+00
  %1900 = load ptr, ptr %1845, align 8, !tbaa !24
  %1901 = getelementptr inbounds i8, ptr %1900, i64 16
  %1902 = load double, ptr %1901, align 8, !tbaa !25
  %1903 = fmul double %1899, %1902
  %1904 = load ptr, ptr %1847, align 8, !tbaa !24
  %1905 = getelementptr inbounds i8, ptr %1904, i64 16
  %1906 = load ptr, ptr %1905, align 8, !tbaa !27
  %1907 = getelementptr inbounds i8, ptr %1906, i64 16
  store double %1903, ptr %1907, align 8, !tbaa !25
  br label %1908

1908:                                             ; preds = %1897, %1896
  br i1 %3, label %1909, label %1918

1909:                                             ; preds = %1908
  %1910 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1911 = load ptr, ptr %1845, align 8, !tbaa !24
  %1912 = getelementptr inbounds i8, ptr %1911, i64 24
  %1913 = load double, ptr %1912, align 8, !tbaa !25
  %1914 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1913, ptr noundef %6)
  %1915 = fmul double %1910, %1914
  %1916 = load ptr, ptr %1846, align 8, !tbaa !24
  %1917 = getelementptr inbounds i8, ptr %1916, i64 24
  store double %1915, ptr %1917, align 8, !tbaa !25
  br label %1918

1918:                                             ; preds = %1909, %1908
  br i1 %5, label %1919, label %1930

1919:                                             ; preds = %1918
  %1920 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1921 = fmul double %1920, 2.000000e+00
  %1922 = load ptr, ptr %1845, align 8, !tbaa !24
  %1923 = getelementptr inbounds i8, ptr %1922, i64 24
  %1924 = load double, ptr %1923, align 8, !tbaa !25
  %1925 = fmul double %1921, %1924
  %1926 = load ptr, ptr %1847, align 8, !tbaa !24
  %1927 = getelementptr inbounds i8, ptr %1926, i64 24
  %1928 = load ptr, ptr %1927, align 8, !tbaa !27
  %1929 = getelementptr inbounds i8, ptr %1928, i64 24
  store double %1925, ptr %1929, align 8, !tbaa !25
  br label %1930

1930:                                             ; preds = %1919, %1918
  br i1 %3, label %1931, label %1940

1931:                                             ; preds = %1930
  %1932 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1933 = load ptr, ptr %1845, align 8, !tbaa !24
  %1934 = getelementptr inbounds i8, ptr %1933, i64 32
  %1935 = load double, ptr %1934, align 8, !tbaa !25
  %1936 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1935, ptr noundef %6)
  %1937 = fmul double %1932, %1936
  %1938 = load ptr, ptr %1846, align 8, !tbaa !24
  %1939 = getelementptr inbounds i8, ptr %1938, i64 32
  store double %1937, ptr %1939, align 8, !tbaa !25
  br label %1940

1940:                                             ; preds = %1931, %1930
  br i1 %5, label %1941, label %1952

1941:                                             ; preds = %1940
  %1942 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1943 = fmul double %1942, 2.000000e+00
  %1944 = load ptr, ptr %1845, align 8, !tbaa !24
  %1945 = getelementptr inbounds i8, ptr %1944, i64 32
  %1946 = load double, ptr %1945, align 8, !tbaa !25
  %1947 = fmul double %1943, %1946
  %1948 = load ptr, ptr %1847, align 8, !tbaa !24
  %1949 = getelementptr inbounds i8, ptr %1948, i64 32
  %1950 = load ptr, ptr %1949, align 8, !tbaa !27
  %1951 = getelementptr inbounds i8, ptr %1950, i64 32
  store double %1947, ptr %1951, align 8, !tbaa !25
  br label %1952

1952:                                             ; preds = %1941, %1940
  br i1 %3, label %1953, label %1962

1953:                                             ; preds = %1952
  %1954 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1955 = load ptr, ptr %1845, align 8, !tbaa !24
  %1956 = getelementptr inbounds i8, ptr %1955, i64 40
  %1957 = load double, ptr %1956, align 8, !tbaa !25
  %1958 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1957, ptr noundef %6)
  %1959 = fmul double %1954, %1958
  %1960 = load ptr, ptr %1846, align 8, !tbaa !24
  %1961 = getelementptr inbounds i8, ptr %1960, i64 40
  store double %1959, ptr %1961, align 8, !tbaa !25
  br label %1962

1962:                                             ; preds = %1953, %1952
  br i1 %5, label %1963, label %1974

1963:                                             ; preds = %1962
  %1964 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1965 = fmul double %1964, 2.000000e+00
  %1966 = load ptr, ptr %1845, align 8, !tbaa !24
  %1967 = getelementptr inbounds i8, ptr %1966, i64 40
  %1968 = load double, ptr %1967, align 8, !tbaa !25
  %1969 = fmul double %1965, %1968
  %1970 = load ptr, ptr %1847, align 8, !tbaa !24
  %1971 = getelementptr inbounds i8, ptr %1970, i64 40
  %1972 = load ptr, ptr %1971, align 8, !tbaa !27
  %1973 = getelementptr inbounds i8, ptr %1972, i64 40
  store double %1969, ptr %1973, align 8, !tbaa !25
  br label %1974

1974:                                             ; preds = %1963, %1962
  br i1 %3, label %1975, label %1984

1975:                                             ; preds = %1974
  %1976 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1977 = load ptr, ptr %1845, align 8, !tbaa !24
  %1978 = getelementptr inbounds i8, ptr %1977, i64 48
  %1979 = load double, ptr %1978, align 8, !tbaa !25
  %1980 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %1979, ptr noundef %6)
  %1981 = fmul double %1976, %1980
  %1982 = load ptr, ptr %1846, align 8, !tbaa !24
  %1983 = getelementptr inbounds i8, ptr %1982, i64 48
  store double %1981, ptr %1983, align 8, !tbaa !25
  br label %1984

1984:                                             ; preds = %1975, %1974
  br i1 %5, label %1985, label %1996

1985:                                             ; preds = %1984
  %1986 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1987 = fmul double %1986, 2.000000e+00
  %1988 = load ptr, ptr %1845, align 8, !tbaa !24
  %1989 = getelementptr inbounds i8, ptr %1988, i64 48
  %1990 = load double, ptr %1989, align 8, !tbaa !25
  %1991 = fmul double %1987, %1990
  %1992 = load ptr, ptr %1847, align 8, !tbaa !24
  %1993 = getelementptr inbounds i8, ptr %1992, i64 48
  %1994 = load ptr, ptr %1993, align 8, !tbaa !27
  %1995 = getelementptr inbounds i8, ptr %1994, i64 48
  store double %1991, ptr %1995, align 8, !tbaa !25
  br label %1996

1996:                                             ; preds = %1985, %1984
  br i1 %3, label %1997, label %2006

1997:                                             ; preds = %1996
  %1998 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %1999 = load ptr, ptr %1845, align 8, !tbaa !24
  %2000 = getelementptr inbounds i8, ptr %1999, i64 56
  %2001 = load double, ptr %2000, align 8, !tbaa !25
  %2002 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2001, ptr noundef %6)
  %2003 = fmul double %1998, %2002
  %2004 = load ptr, ptr %1846, align 8, !tbaa !24
  %2005 = getelementptr inbounds i8, ptr %2004, i64 56
  store double %2003, ptr %2005, align 8, !tbaa !25
  br label %2006

2006:                                             ; preds = %1997, %1996
  br i1 %5, label %2007, label %2018

2007:                                             ; preds = %2006
  %2008 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 2.000000e+00, ptr noundef %6)
  %2009 = fmul double %2008, 2.000000e+00
  %2010 = load ptr, ptr %1845, align 8, !tbaa !24
  %2011 = getelementptr inbounds i8, ptr %2010, i64 56
  %2012 = load double, ptr %2011, align 8, !tbaa !25
  %2013 = fmul double %2009, %2012
  %2014 = load ptr, ptr %1847, align 8, !tbaa !24
  %2015 = getelementptr inbounds i8, ptr %2014, i64 56
  %2016 = load ptr, ptr %2015, align 8, !tbaa !27
  %2017 = getelementptr inbounds i8, ptr %2016, i64 56
  store double %2013, ptr %2017, align 8, !tbaa !25
  br label %2018

2018:                                             ; preds = %2007, %2006
  br i1 %3, label %2019, label %._crit_edge1640

2019:                                             ; preds = %2018
  %2020 = load ptr, ptr %1846, align 8, !tbaa !24
  %2021 = getelementptr inbounds i8, ptr %2020, i64 64
  store double 0.000000e+00, ptr %2021, align 8, !tbaa !25
  %2022 = load ptr, ptr %1846, align 8, !tbaa !24
  %2023 = getelementptr inbounds i8, ptr %2022, i64 64
  %2024 = load double, ptr %2023, align 8, !tbaa !25
  %2025 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.200000e+00, double noundef 0.000000e+00, ptr noundef %6)
  %2026 = fadd double %2024, %2025
  %2027 = load ptr, ptr %1846, align 8, !tbaa !24
  %2028 = getelementptr inbounds i8, ptr %2027, i64 64
  store double %2026, ptr %2028, align 8, !tbaa !25
  %2029 = load ptr, ptr %1846, align 8, !tbaa !24
  %2030 = getelementptr inbounds i8, ptr %2029, i64 64
  %2031 = load double, ptr %2030, align 8, !tbaa !25
  %2032 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.200000e+00, double noundef 1.000000e+00, ptr noundef %6)
  %2033 = fadd double %2031, %2032
  %2034 = load ptr, ptr %1846, align 8, !tbaa !24
  %2035 = getelementptr inbounds i8, ptr %2034, i64 64
  store double %2033, ptr %2035, align 8, !tbaa !25
  %2036 = load ptr, ptr %1846, align 8, !tbaa !24
  %2037 = getelementptr inbounds i8, ptr %2036, i64 64
  %2038 = load double, ptr %2037, align 8, !tbaa !25
  %2039 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.200000e+00, double noundef 2.000000e+00, ptr noundef %6)
  %2040 = fadd double %2038, %2039
  %2041 = load ptr, ptr %1846, align 8, !tbaa !24
  %2042 = getelementptr inbounds i8, ptr %2041, i64 64
  store double %2040, ptr %2042, align 8, !tbaa !25
  %2043 = load ptr, ptr %1846, align 8, !tbaa !24
  %2044 = getelementptr inbounds i8, ptr %2043, i64 64
  %2045 = load double, ptr %2044, align 8, !tbaa !25
  %2046 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.200000e+00, double noundef 3.000000e+00, ptr noundef %6)
  %2047 = fadd double %2045, %2046
  %2048 = load ptr, ptr %1846, align 8, !tbaa !24
  %2049 = getelementptr inbounds i8, ptr %2048, i64 64
  store double %2047, ptr %2049, align 8, !tbaa !25
  %2050 = load ptr, ptr %1846, align 8, !tbaa !24
  %2051 = getelementptr inbounds i8, ptr %2050, i64 64
  %2052 = load double, ptr %2051, align 8, !tbaa !25
  %2053 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.200000e+00, double noundef 4.000000e+00, ptr noundef %6)
  %2054 = fadd double %2052, %2053
  %2055 = load ptr, ptr %1846, align 8, !tbaa !24
  %2056 = getelementptr inbounds i8, ptr %2055, i64 64
  store double %2054, ptr %2056, align 8, !tbaa !25
  %2057 = load ptr, ptr %1846, align 8, !tbaa !24
  %2058 = getelementptr inbounds i8, ptr %2057, i64 64
  %2059 = load double, ptr %2058, align 8, !tbaa !25
  %2060 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.200000e+00, double noundef 5.000000e+00, ptr noundef %6)
  %2061 = fadd double %2059, %2060
  %2062 = load ptr, ptr %1846, align 8, !tbaa !24
  %2063 = getelementptr inbounds i8, ptr %2062, i64 64
  store double %2061, ptr %2063, align 8, !tbaa !25
  %2064 = load ptr, ptr %1846, align 8, !tbaa !24
  %2065 = getelementptr inbounds i8, ptr %2064, i64 64
  %2066 = load double, ptr %2065, align 8, !tbaa !25
  %2067 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.200000e+00, double noundef 6.000000e+00, ptr noundef %6)
  %2068 = fadd double %2066, %2067
  %2069 = load ptr, ptr %1846, align 8, !tbaa !24
  %2070 = getelementptr inbounds i8, ptr %2069, i64 64
  store double %2068, ptr %2070, align 8, !tbaa !25
  %2071 = load ptr, ptr %1846, align 8, !tbaa !24
  %2072 = getelementptr inbounds i8, ptr %2071, i64 64
  %2073 = load double, ptr %2072, align 8, !tbaa !25
  %2074 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.200000e+00, double noundef 7.000000e+00, ptr noundef %6)
  %2075 = fadd double %2073, %2074
  %2076 = load ptr, ptr %1846, align 8, !tbaa !24
  %2077 = getelementptr inbounds i8, ptr %2076, i64 64
  store double %2075, ptr %2077, align 8, !tbaa !25
  %2078 = load ptr, ptr %1846, align 8, !tbaa !24
  %2079 = getelementptr inbounds i8, ptr %2078, i64 64
  %2080 = load double, ptr %2079, align 8, !tbaa !25
  %2081 = call noundef double @_ZN11alglib_impl6ae_powEddPNS_8ae_stateE(double noundef 2.200000e+00, double noundef 8.000000e+00, ptr noundef %6)
  %2082 = fadd double %2080, %2081
  %2083 = load ptr, ptr %1846, align 8, !tbaa !24
  %2084 = getelementptr inbounds i8, ptr %2083, i64 64
  store double %2082, ptr %2084, align 8, !tbaa !25
  %2085 = load ptr, ptr %1846, align 8, !tbaa !24
  %2086 = getelementptr inbounds i8, ptr %2085, i64 64
  %2087 = load double, ptr %2086, align 8, !tbaa !25
  %2088 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2087, ptr noundef %6)
  %2089 = load ptr, ptr %1846, align 8, !tbaa !24
  %2090 = getelementptr inbounds i8, ptr %2089, i64 64
  store double %2088, ptr %2090, align 8, !tbaa !25
  br label %._crit_edge1640

2091:                                             ; preds = %.preheader1501, %2222
  %.291642 = phi i64 [ 0, %.preheader1501 ], [ %2223, %2222 ]
  %2092 = icmp eq i64 %.291642, 0
  %.01419 = select i1 %2092, double 1.957000e-01, double 0.000000e+00
  %.01417 = select i1 %2092, double 4.000000e+00, double 0.000000e+00
  %2093 = icmp eq i64 %.291642, 1
  %.11420 = select i1 %2093, double 1.947000e-01, double %.01419
  %.11418 = select i1 %2093, double 2.000000e+00, double %.01417
  %2094 = icmp eq i64 %.291642, 2
  %.21421 = select i1 %2094, double 1.735000e-01, double %.11420
  %.2 = select i1 %2094, double 1.000000e+00, double %.11418
  %2095 = icmp eq i64 %.291642, 3
  %.31422 = select i1 %2095, double 1.600000e-01, double %.21421
  %.3 = select i1 %2095, double 5.000000e-01, double %.2
  %2096 = icmp eq i64 %.291642, 4
  %.41423 = select i1 %2096, double 8.440000e-02, double %.31422
  %.4 = select i1 %2096, double 2.500000e-01, double %.3
  %2097 = icmp eq i64 %.291642, 5
  %.51424 = select i1 %2097, double 6.270000e-02, double %.41423
  %.5 = select i1 %2097, double 1.670000e-01, double %.4
  %2098 = icmp eq i64 %.291642, 6
  %.61425 = select i1 %2098, double 4.560000e-02, double %.51424
  %.6 = select i1 %2098, double 1.250000e-01, double %.5
  %2099 = icmp eq i64 %.291642, 7
  %.71426 = select i1 %2099, double 3.420000e-02, double %.61425
  %.7 = select i1 %2099, double 1.000000e-01, double %.6
  %2100 = icmp eq i64 %.291642, 8
  %.81427 = select i1 %2100, double 3.230000e-02, double %.71426
  %.8 = select i1 %2100, double 0x3FB5532617C1BDA5, double %.7
  %2101 = icmp eq i64 %.291642, 9
  %.91428 = select i1 %2101, double 2.350000e-02, double %.81427
  %.9 = select i1 %2101, double 7.140000e-02, double %.8
  %2102 = icmp eq i64 %.291642, 10
  %.101429 = select i1 %2102, double 2.460000e-02, double %.91428
  %.10 = select i1 %2102, double 6.250000e-02, double %.9
  %2103 = load ptr, ptr %772, align 8, !tbaa !24
  %2104 = getelementptr inbounds i8, ptr %2103, i64 16
  %2105 = load double, ptr %2104, align 8, !tbaa !25
  %2106 = fmul double %.10, %2105
  %2107 = call double @llvm.fmuladd.f64(double %.10, double %.10, double %2106)
  %2108 = getelementptr inbounds i8, ptr %2103, i64 24
  %2109 = load double, ptr %2108, align 8, !tbaa !25
  %2110 = fadd double %2109, %2107
  %2111 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2110, double noundef 0x3BC79CA10C924223)
  br i1 %2111, label %2112, label %2200

2112:                                             ; preds = %2091
  br i1 %3, label %2113, label %2132

2113:                                             ; preds = %2112
  %2114 = load ptr, ptr %772, align 8, !tbaa !24
  %2115 = load double, ptr %2114, align 8, !tbaa !25
  %2116 = getelementptr inbounds i8, ptr %2114, i64 8
  %2117 = getelementptr inbounds i8, ptr %2114, i64 24
  %2118 = load double, ptr %2117, align 8, !tbaa !25
  %2119 = load <2 x double>, ptr %2116, align 8, !tbaa !25
  %2120 = insertelement <2 x double> poison, double %.10, i64 0
  %2121 = shufflevector <2 x double> %2120, <2 x double> poison, <2 x i32> zeroinitializer
  %2122 = fmul <2 x double> %2121, %2119
  %2123 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2121, <2 x double> %2121, <2 x double> %2122)
  %2124 = extractelement <2 x double> %2123, i64 0
  %2125 = fmul double %2115, %2124
  %2126 = extractelement <2 x double> %2123, i64 1
  %2127 = fadd double %2118, %2126
  %2128 = fdiv double %2125, %2127
  %2129 = fsub double %.101429, %2128
  %2130 = load ptr, ptr %773, align 8, !tbaa !24
  %2131 = getelementptr inbounds double, ptr %2130, i64 %.291642
  store double %2129, ptr %2131, align 8, !tbaa !25
  br label %2132

2132:                                             ; preds = %2113, %2112
  br i1 %5, label %2133, label %2222

2133:                                             ; preds = %2132
  %2134 = load ptr, ptr %772, align 8, !tbaa !24
  %2135 = getelementptr inbounds i8, ptr %2134, i64 8
  %2136 = load double, ptr %2135, align 8, !tbaa !25
  %2137 = fmul double %.10, %2136
  %2138 = call double @llvm.fmuladd.f64(double %.10, double %.10, double %2137)
  %2139 = fneg double %2138
  %2140 = getelementptr inbounds i8, ptr %2134, i64 16
  %2141 = load double, ptr %2140, align 8, !tbaa !25
  %2142 = fmul double %.10, %2141
  %2143 = call double @llvm.fmuladd.f64(double %.10, double %.10, double %2142)
  %2144 = getelementptr inbounds i8, ptr %2134, i64 24
  %2145 = load double, ptr %2144, align 8, !tbaa !25
  %2146 = fadd double %2145, %2143
  %2147 = fdiv double %2139, %2146
  %2148 = load ptr, ptr %774, align 8, !tbaa !24
  %2149 = getelementptr inbounds ptr, ptr %2148, i64 %.291642
  %2150 = load ptr, ptr %2149, align 8, !tbaa !27
  store double %2147, ptr %2150, align 8, !tbaa !25
  %2151 = load ptr, ptr %772, align 8, !tbaa !24
  %2152 = load double, ptr %2151, align 8, !tbaa !25
  %2153 = fneg double %2152
  %2154 = fmul double %.10, %2153
  %2155 = getelementptr inbounds i8, ptr %2151, i64 16
  %2156 = load double, ptr %2155, align 8, !tbaa !25
  %2157 = fmul double %.10, %2156
  %2158 = call double @llvm.fmuladd.f64(double %.10, double %.10, double %2157)
  %2159 = getelementptr inbounds i8, ptr %2151, i64 24
  %2160 = load double, ptr %2159, align 8, !tbaa !25
  %2161 = fadd double %2160, %2158
  %2162 = fdiv double %2154, %2161
  %2163 = load ptr, ptr %774, align 8, !tbaa !24
  %2164 = getelementptr inbounds ptr, ptr %2163, i64 %.291642
  %2165 = load ptr, ptr %2164, align 8, !tbaa !27
  %2166 = getelementptr inbounds i8, ptr %2165, i64 8
  store double %2162, ptr %2166, align 8, !tbaa !25
  %2167 = load ptr, ptr %772, align 8, !tbaa !24
  %2168 = getelementptr inbounds i8, ptr %2167, i64 8
  %2169 = load double, ptr %2168, align 8, !tbaa !25
  %2170 = fmul double %.10, %2169
  %2171 = call double @llvm.fmuladd.f64(double %.10, double %.10, double %2170)
  %2172 = getelementptr inbounds i8, ptr %2167, i64 16
  %2173 = load double, ptr %2172, align 8, !tbaa !25
  %2174 = fmul double %.10, %2173
  %2175 = call double @llvm.fmuladd.f64(double %.10, double %.10, double %2174)
  %2176 = getelementptr inbounds i8, ptr %2167, i64 24
  %2177 = load double, ptr %2176, align 8, !tbaa !25
  %2178 = fadd double %2177, %2175
  %2179 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2178, ptr noundef %6)
  %2180 = fdiv double %2171, %2179
  %2181 = fmul double %.10, %2180
  %2182 = load ptr, ptr %774, align 8, !tbaa !24
  %2183 = getelementptr inbounds ptr, ptr %2182, i64 %.291642
  %2184 = load ptr, ptr %2183, align 8, !tbaa !27
  %2185 = getelementptr inbounds i8, ptr %2184, i64 16
  store double %2181, ptr %2185, align 8, !tbaa !25
  %2186 = load ptr, ptr %772, align 8, !tbaa !24
  %2187 = getelementptr inbounds i8, ptr %2186, i64 8
  %2188 = load double, ptr %2187, align 8, !tbaa !25
  %2189 = fmul double %.10, %2188
  %2190 = call double @llvm.fmuladd.f64(double %.10, double %.10, double %2189)
  %2191 = getelementptr inbounds i8, ptr %2186, i64 16
  %2192 = load double, ptr %2191, align 8, !tbaa !25
  %2193 = fmul double %.10, %2192
  %2194 = call double @llvm.fmuladd.f64(double %.10, double %.10, double %2193)
  %2195 = getelementptr inbounds i8, ptr %2186, i64 24
  %2196 = load double, ptr %2195, align 8, !tbaa !25
  %2197 = fadd double %2196, %2194
  %2198 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2197, ptr noundef %6)
  %2199 = fdiv double %2190, %2198
  br label %.sink.split1753

2200:                                             ; preds = %2091
  br i1 %3, label %2201, label %2205

2201:                                             ; preds = %2200
  %2202 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %6)
  %2203 = load ptr, ptr %773, align 8, !tbaa !24
  %2204 = getelementptr inbounds double, ptr %2203, i64 %.291642
  store double %2202, ptr %2204, align 8, !tbaa !25
  br label %2205

2205:                                             ; preds = %2201, %2200
  br i1 %5, label %2206, label %2222

2206:                                             ; preds = %2205
  %2207 = load ptr, ptr %774, align 8, !tbaa !24
  %2208 = getelementptr inbounds ptr, ptr %2207, i64 %.291642
  %2209 = load ptr, ptr %2208, align 8, !tbaa !27
  store double 0.000000e+00, ptr %2209, align 8, !tbaa !25
  %2210 = load ptr, ptr %774, align 8, !tbaa !24
  %2211 = getelementptr inbounds ptr, ptr %2210, i64 %.291642
  %2212 = load ptr, ptr %2211, align 8, !tbaa !27
  %2213 = getelementptr inbounds i8, ptr %2212, i64 8
  store double 0.000000e+00, ptr %2213, align 8, !tbaa !25
  %2214 = load ptr, ptr %774, align 8, !tbaa !24
  %2215 = getelementptr inbounds ptr, ptr %2214, i64 %.291642
  %2216 = load ptr, ptr %2215, align 8, !tbaa !27
  %2217 = getelementptr inbounds i8, ptr %2216, i64 16
  store double 0.000000e+00, ptr %2217, align 8, !tbaa !25
  br label %.sink.split1753

.sink.split1753:                                  ; preds = %2206, %2133
  %.sink1754 = phi double [ %2199, %2133 ], [ 0.000000e+00, %2206 ]
  %2218 = load ptr, ptr %774, align 8, !tbaa !24
  %2219 = getelementptr inbounds ptr, ptr %2218, i64 %.291642
  %2220 = load ptr, ptr %2219, align 8, !tbaa !27
  %2221 = getelementptr inbounds i8, ptr %2220, i64 24
  store double %.sink1754, ptr %2221, align 8, !tbaa !25
  br label %2222

2222:                                             ; preds = %.sink.split1753, %2132, %2205
  %2223 = add nuw nsw i64 %.291642, 1
  %exitcond1710.not = icmp eq i64 %2223, 11
  br i1 %exitcond1710.not, label %._crit_edge1640, label %2091, !llvm.loop !63

2224:                                             ; preds = %.preheader1502, %2338
  %.301641 = phi i64 [ 0, %.preheader1502 ], [ %2225, %2338 ]
  %2225 = add nuw nsw i64 %.301641, 1
  %2226 = uitofp nneg i64 %2225 to double
  %2227 = fmul double %2226, 1.000000e-01
  %2228 = fneg double %2227
  %2229 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2228, ptr noundef %6)
  %2230 = fmul double %2227, -1.000000e+01
  %2231 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2230, ptr noundef %6)
  %2232 = fmul double %2227, -4.000000e+00
  %2233 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2232, ptr noundef %6)
  br i1 %3, label %2234, label %2271

2234:                                             ; preds = %2224
  %2235 = load ptr, ptr %769, align 8, !tbaa !24
  %2236 = getelementptr inbounds i8, ptr %2235, i64 16
  %2237 = load double, ptr %2236, align 8, !tbaa !25
  %2238 = load double, ptr %2235, align 8, !tbaa !25
  %2239 = fmul double %2238, %2228
  %2240 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2239, ptr noundef %6)
  %2241 = load ptr, ptr %769, align 8, !tbaa !24
  %2242 = getelementptr inbounds i8, ptr %2241, i64 24
  %2243 = load double, ptr %2242, align 8, !tbaa !25
  %2244 = getelementptr inbounds i8, ptr %2241, i64 8
  %2245 = load double, ptr %2244, align 8, !tbaa !25
  %2246 = fmul double %2245, %2228
  %2247 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2246, ptr noundef %6)
  %2248 = fneg double %2243
  %2249 = fmul double %2247, %2248
  %2250 = load ptr, ptr %769, align 8, !tbaa !24
  %2251 = getelementptr inbounds i8, ptr %2250, i64 40
  %2252 = load double, ptr %2251, align 8, !tbaa !25
  %2253 = getelementptr inbounds i8, ptr %2250, i64 32
  %2254 = load double, ptr %2253, align 8, !tbaa !25
  %2255 = fmul double %2254, %2228
  %2256 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2255, ptr noundef %6)
  %2257 = insertelement <2 x double> poison, double %2237, i64 0
  %2258 = insertelement <2 x double> %2257, double %2231, i64 1
  %2259 = insertelement <2 x double> <double poison, double -5.000000e+00>, double %2240, i64 0
  %2260 = insertelement <2 x double> poison, double %2249, i64 0
  %2261 = insertelement <2 x double> %2260, double %2229, i64 1
  %2262 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2258, <2 x double> %2259, <2 x double> %2261)
  %2263 = insertelement <2 x double> poison, double %2252, i64 0
  %2264 = insertelement <2 x double> %2263, double %2233, i64 1
  %2265 = insertelement <2 x double> <double poison, double 3.000000e+00>, double %2256, i64 0
  %2266 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2264, <2 x double> %2265, <2 x double> %2262)
  %shift = shufflevector <2 x double> %2266, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %2267 = fsub <2 x double> %2266, %shift
  %2268 = extractelement <2 x double> %2267, i64 0
  %2269 = load ptr, ptr %770, align 8, !tbaa !24
  %2270 = getelementptr inbounds double, ptr %2269, i64 %.301641
  store double %2268, ptr %2270, align 8, !tbaa !25
  br label %2271

2271:                                             ; preds = %2234, %2224
  br i1 %5, label %2272, label %2338

2272:                                             ; preds = %2271
  %2273 = load ptr, ptr %769, align 8, !tbaa !24
  %2274 = getelementptr inbounds i8, ptr %2273, i64 16
  %2275 = load double, ptr %2274, align 8, !tbaa !25
  %2276 = load double, ptr %2273, align 8, !tbaa !25
  %2277 = fmul double %2276, %2228
  %2278 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2277, ptr noundef %6)
  %2279 = fmul double %2275, %2278
  %2280 = fmul double %2279, %2228
  %2281 = load ptr, ptr %771, align 8, !tbaa !24
  %2282 = getelementptr inbounds ptr, ptr %2281, i64 %.301641
  %2283 = load ptr, ptr %2282, align 8, !tbaa !27
  store double %2280, ptr %2283, align 8, !tbaa !25
  %2284 = load ptr, ptr %769, align 8, !tbaa !24
  %2285 = getelementptr inbounds i8, ptr %2284, i64 24
  %2286 = load double, ptr %2285, align 8, !tbaa !25
  %2287 = fneg double %2286
  %2288 = getelementptr inbounds i8, ptr %2284, i64 8
  %2289 = load double, ptr %2288, align 8, !tbaa !25
  %2290 = fmul double %2289, %2228
  %2291 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2290, ptr noundef %6)
  %2292 = fmul double %2291, %2287
  %2293 = fmul double %2292, %2228
  %2294 = load ptr, ptr %771, align 8, !tbaa !24
  %2295 = getelementptr inbounds ptr, ptr %2294, i64 %.301641
  %2296 = load ptr, ptr %2295, align 8, !tbaa !27
  %2297 = getelementptr inbounds i8, ptr %2296, i64 8
  store double %2293, ptr %2297, align 8, !tbaa !25
  %2298 = load ptr, ptr %769, align 8, !tbaa !24
  %2299 = load double, ptr %2298, align 8, !tbaa !25
  %2300 = fmul double %2299, %2228
  %2301 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2300, ptr noundef %6)
  %2302 = load ptr, ptr %771, align 8, !tbaa !24
  %2303 = getelementptr inbounds ptr, ptr %2302, i64 %.301641
  %2304 = load ptr, ptr %2303, align 8, !tbaa !27
  %2305 = getelementptr inbounds i8, ptr %2304, i64 16
  store double %2301, ptr %2305, align 8, !tbaa !25
  %2306 = load ptr, ptr %769, align 8, !tbaa !24
  %2307 = getelementptr inbounds i8, ptr %2306, i64 8
  %2308 = load double, ptr %2307, align 8, !tbaa !25
  %2309 = fmul double %2308, %2228
  %2310 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2309, ptr noundef %6)
  %2311 = fneg double %2310
  %2312 = load ptr, ptr %771, align 8, !tbaa !24
  %2313 = getelementptr inbounds ptr, ptr %2312, i64 %.301641
  %2314 = load ptr, ptr %2313, align 8, !tbaa !27
  %2315 = getelementptr inbounds i8, ptr %2314, i64 24
  store double %2311, ptr %2315, align 8, !tbaa !25
  %2316 = load ptr, ptr %769, align 8, !tbaa !24
  %2317 = getelementptr inbounds i8, ptr %2316, i64 40
  %2318 = load double, ptr %2317, align 8, !tbaa !25
  %2319 = getelementptr inbounds i8, ptr %2316, i64 32
  %2320 = load double, ptr %2319, align 8, !tbaa !25
  %2321 = fmul double %2320, %2228
  %2322 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2321, ptr noundef %6)
  %2323 = fmul double %2318, %2322
  %2324 = fmul double %2323, %2228
  %2325 = load ptr, ptr %771, align 8, !tbaa !24
  %2326 = getelementptr inbounds ptr, ptr %2325, i64 %.301641
  %2327 = load ptr, ptr %2326, align 8, !tbaa !27
  %2328 = getelementptr inbounds i8, ptr %2327, i64 32
  store double %2324, ptr %2328, align 8, !tbaa !25
  %2329 = load ptr, ptr %769, align 8, !tbaa !24
  %2330 = getelementptr inbounds i8, ptr %2329, i64 32
  %2331 = load double, ptr %2330, align 8, !tbaa !25
  %2332 = fmul double %2331, %2228
  %2333 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2332, ptr noundef %6)
  %2334 = load ptr, ptr %771, align 8, !tbaa !24
  %2335 = getelementptr inbounds ptr, ptr %2334, i64 %.301641
  %2336 = load ptr, ptr %2335, align 8, !tbaa !27
  %2337 = getelementptr inbounds i8, ptr %2336, i64 40
  store double %2333, ptr %2337, align 8, !tbaa !25
  br label %2338

2338:                                             ; preds = %2271, %2272
  %exitcond1709.not = icmp eq i64 %2225, 13
  br i1 %exitcond1709.not, label %._crit_edge1640, label %2224, !llvm.loop !64

2339:                                             ; preds = %766
  br i1 %3, label %2340, label %2356

2340:                                             ; preds = %2339
  %2341 = getelementptr inbounds i8, ptr %1, i64 56
  %2342 = load ptr, ptr %2341, align 8, !tbaa !24
  %2343 = load double, ptr %2342, align 8, !tbaa !25
  %2344 = fsub double 1.000000e+00, %2343
  %2345 = getelementptr inbounds i8, ptr %2, i64 56
  %2346 = load ptr, ptr %2345, align 8, !tbaa !24
  store double %2344, ptr %2346, align 8, !tbaa !25
  %2347 = load ptr, ptr %2341, align 8, !tbaa !24
  %2348 = getelementptr inbounds i8, ptr %2347, i64 8
  %2349 = load double, ptr %2348, align 8, !tbaa !25
  %2350 = load double, ptr %2347, align 8, !tbaa !25
  %2351 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2350, ptr noundef %6)
  %2352 = fsub double %2349, %2351
  %2353 = fmul double %2352, 1.000000e+03
  %2354 = load ptr, ptr %2345, align 8, !tbaa !24
  %2355 = getelementptr inbounds i8, ptr %2354, i64 8
  store double %2353, ptr %2355, align 8, !tbaa !25
  br label %2356

2356:                                             ; preds = %2340, %2339
  br i1 %5, label %2357, label %._crit_edge1640

2357:                                             ; preds = %2356
  %2358 = getelementptr inbounds i8, ptr %4, i64 72
  %2359 = load ptr, ptr %2358, align 8, !tbaa !24
  %2360 = load ptr, ptr %2359, align 8, !tbaa !27
  store double -1.000000e+00, ptr %2360, align 8, !tbaa !25
  %2361 = load ptr, ptr %2358, align 8, !tbaa !24
  %2362 = load ptr, ptr %2361, align 8, !tbaa !27
  %2363 = getelementptr inbounds i8, ptr %2362, i64 8
  store double 0.000000e+00, ptr %2363, align 8, !tbaa !25
  %2364 = getelementptr inbounds i8, ptr %1, i64 56
  %2365 = load ptr, ptr %2364, align 8, !tbaa !24
  %2366 = load double, ptr %2365, align 8, !tbaa !25
  %2367 = fmul double %2366, -2.000000e+03
  %2368 = load ptr, ptr %2358, align 8, !tbaa !24
  %2369 = getelementptr inbounds i8, ptr %2368, i64 8
  %2370 = load ptr, ptr %2369, align 8, !tbaa !27
  store double %2367, ptr %2370, align 8, !tbaa !25
  %2371 = load ptr, ptr %2358, align 8, !tbaa !24
  %2372 = getelementptr inbounds i8, ptr %2371, i64 8
  %2373 = load ptr, ptr %2372, align 8, !tbaa !27
  %2374 = getelementptr inbounds i8, ptr %2373, i64 8
  store double 1.000000e+03, ptr %2374, align 8, !tbaa !25
  br label %._crit_edge1640

2375:                                             ; preds = %766
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.320, ptr noundef %6)
  %.pre = load i64, ptr %0, align 8, !tbaa !5
  br label %2376

2376:                                             ; preds = %2375, %762
  %2377 = phi i64 [ %.pre, %2375 ], [ %763, %762 ]
  switch i64 %2377, label %.thread1490 [
    i64 51, label %2378
    i64 3, label %2508
  ]

2378:                                             ; preds = %2376
  %brmerge1487 = or i1 %3, %5
  br i1 %brmerge1487, label %2379, label %._crit_edge1640

2379:                                             ; preds = %2378
  %2380 = getelementptr inbounds i8, ptr %0, i64 8
  %2381 = load i64, ptr %2380, align 8, !tbaa !33
  %2382 = icmp eq i64 %2381, 0
  br i1 %2382, label %.preheader, label %.thread1490

.preheader:                                       ; preds = %2379
  %2383 = getelementptr inbounds i8, ptr %1, i64 56
  %2384 = getelementptr inbounds i8, ptr %2, i64 56
  %2385 = getelementptr inbounds i8, ptr %4, i64 72
  br label %2386

2386:                                             ; preds = %.preheader, %2507
  %.311685 = phi i64 [ 0, %.preheader ], [ %2403, %2507 ]
  %2387 = icmp eq i64 %.311685, 0
  %2388 = icmp eq i64 %.311685, 1
  %2389 = icmp eq i64 %.311685, 2
  %2390 = icmp eq i64 %.311685, 3
  %2391 = icmp eq i64 %.311685, 4
  %2392 = icmp eq i64 %.311685, 5
  %2393 = icmp eq i64 %.311685, 6
  %2394 = icmp eq i64 %.311685, 7
  %2395 = icmp eq i64 %.311685, 8
  %2396 = icmp eq i64 %.311685, 9
  %2397 = icmp eq i64 %.311685, 10
  %2398 = icmp eq i64 %.311685, 11
  %2399 = icmp eq i64 %.311685, 12
  %2400 = icmp eq i64 %.311685, 13
  %2401 = icmp eq i64 %.311685, 14
  %2402 = icmp eq i64 %.311685, 15
  %2403 = add nuw nsw i64 %.311685, 1
  %2404 = mul nuw nsw i64 %2403, 5
  %2405 = add nuw nsw i64 %2404, 45
  %2406 = uitofp nneg i64 %2405 to double
  %2407 = load ptr, ptr %2383, align 8, !tbaa !24
  %2408 = getelementptr inbounds i8, ptr %2407, i64 16
  %2409 = load double, ptr %2408, align 8, !tbaa !25
  %2410 = fadd double %2409, %2406
  %2411 = call noundef zeroext i1 @_ZN11alglib_impl13ae_fp_greaterEdd(double noundef %2410, double noundef 0.000000e+00)
  br i1 %2411, label %2412, label %2489

2412:                                             ; preds = %2386
  %2413 = load ptr, ptr %2383, align 8, !tbaa !24
  %2414 = getelementptr inbounds i8, ptr %2413, i64 8
  %2415 = load double, ptr %2414, align 8, !tbaa !25
  %2416 = getelementptr inbounds i8, ptr %2413, i64 16
  %2417 = load double, ptr %2416, align 8, !tbaa !25
  %2418 = fadd double %2417, %2406
  %2419 = fdiv double %2415, %2418
  %2420 = call noundef double @_ZN11alglib_impl6ae_logEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %6)
  %2421 = call noundef zeroext i1 @_ZN11alglib_impl10ae_fp_lessEdd(double noundef %2419, double noundef %2420)
  br i1 %2421, label %2422, label %2489

2422:                                             ; preds = %2412
  br i1 %3, label %2423, label %2437

2423:                                             ; preds = %2422
  %2424 = load ptr, ptr %2383, align 8, !tbaa !24
  %2425 = load double, ptr %2424, align 8, !tbaa !25
  %2426 = getelementptr inbounds i8, ptr %2424, i64 8
  %2427 = load double, ptr %2426, align 8, !tbaa !25
  %2428 = getelementptr inbounds i8, ptr %2424, i64 16
  %2429 = load double, ptr %2428, align 8, !tbaa !25
  %2430 = fadd double %2429, %2406
  %2431 = fdiv double %2427, %2430
  %2432 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2431, ptr noundef %6)
  %spec.store.select1.neg = select i1 %2387, double -3.478000e+04, double -0.000000e+00
  %spec.store.select3.neg = select i1 %2388, double -2.861000e+04, double %spec.store.select1.neg
  %spec.store.select5.neg = select i1 %2389, double -2.365000e+04, double %spec.store.select3.neg
  %spec.store.select7.neg = select i1 %2390, double -1.963000e+04, double %spec.store.select5.neg
  %spec.store.select9.neg = select i1 %2391, double -1.637000e+04, double %spec.store.select7.neg
  %spec.store.select11.neg = select i1 %2392, double -1.372000e+04, double %spec.store.select9.neg
  %spec.store.select13.neg = select i1 %2393, double -1.154000e+04, double %spec.store.select11.neg
  %spec.store.select15.neg = select i1 %2394, double -9.744000e+03, double %spec.store.select13.neg
  %spec.store.select17.neg = select i1 %2395, double -8.261000e+03, double %spec.store.select15.neg
  %spec.store.select19.neg = select i1 %2396, double -7.030000e+03, double %spec.store.select17.neg
  %spec.store.select21.neg = select i1 %2397, double -6.005000e+03, double %spec.store.select19.neg
  %spec.store.select23.neg = select i1 %2398, double -5.147000e+03, double %spec.store.select21.neg
  %spec.store.select25.neg = select i1 %2399, double -4.427000e+03, double %spec.store.select23.neg
  %spec.store.select27.neg = select i1 %2400, double -3.820000e+03, double %spec.store.select25.neg
  %spec.store.select29.neg = select i1 %2401, double -3.307000e+03, double %spec.store.select27.neg
  %2433 = select i1 %2402, double -2.872000e+03, double %spec.store.select29.neg
  %2434 = call double @llvm.fmuladd.f64(double %2425, double %2432, double %2433)
  %2435 = load ptr, ptr %2384, align 8, !tbaa !24
  %2436 = getelementptr inbounds double, ptr %2435, i64 %.311685
  store double %2434, ptr %2436, align 8, !tbaa !25
  br label %2437

2437:                                             ; preds = %2423, %2422
  br i1 %5, label %2438, label %2507

2438:                                             ; preds = %2437
  %2439 = load ptr, ptr %2383, align 8, !tbaa !24
  %2440 = getelementptr inbounds i8, ptr %2439, i64 8
  %2441 = load double, ptr %2440, align 8, !tbaa !25
  %2442 = getelementptr inbounds i8, ptr %2439, i64 16
  %2443 = load double, ptr %2442, align 8, !tbaa !25
  %2444 = fadd double %2443, %2406
  %2445 = fdiv double %2441, %2444
  %2446 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2445, ptr noundef %6)
  %2447 = load ptr, ptr %2385, align 8, !tbaa !24
  %2448 = getelementptr inbounds ptr, ptr %2447, i64 %.311685
  %2449 = load ptr, ptr %2448, align 8, !tbaa !27
  store double %2446, ptr %2449, align 8, !tbaa !25
  %2450 = load ptr, ptr %2383, align 8, !tbaa !24
  %2451 = load double, ptr %2450, align 8, !tbaa !25
  %2452 = getelementptr inbounds i8, ptr %2450, i64 8
  %2453 = load double, ptr %2452, align 8, !tbaa !25
  %2454 = getelementptr inbounds i8, ptr %2450, i64 16
  %2455 = load double, ptr %2454, align 8, !tbaa !25
  %2456 = fadd double %2455, %2406
  %2457 = fdiv double %2453, %2456
  %2458 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2457, ptr noundef %6)
  %2459 = fmul double %2451, %2458
  %2460 = load ptr, ptr %2383, align 8, !tbaa !24
  %2461 = getelementptr inbounds i8, ptr %2460, i64 16
  %2462 = load double, ptr %2461, align 8, !tbaa !25
  %2463 = fadd double %2462, %2406
  %2464 = fdiv double %2459, %2463
  %2465 = load ptr, ptr %2385, align 8, !tbaa !24
  %2466 = getelementptr inbounds ptr, ptr %2465, i64 %.311685
  %2467 = load ptr, ptr %2466, align 8, !tbaa !27
  %2468 = getelementptr inbounds i8, ptr %2467, i64 8
  store double %2464, ptr %2468, align 8, !tbaa !25
  %2469 = load ptr, ptr %2383, align 8, !tbaa !24
  %2470 = load double, ptr %2469, align 8, !tbaa !25
  %2471 = getelementptr inbounds i8, ptr %2469, i64 8
  %2472 = load double, ptr %2471, align 8, !tbaa !25
  %2473 = getelementptr inbounds i8, ptr %2469, i64 16
  %2474 = load double, ptr %2473, align 8, !tbaa !25
  %2475 = fadd double %2474, %2406
  %2476 = fdiv double %2472, %2475
  %2477 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2476, ptr noundef %6)
  %2478 = load ptr, ptr %2383, align 8, !tbaa !24
  %2479 = getelementptr inbounds i8, ptr %2478, i64 8
  %2480 = load double, ptr %2479, align 8, !tbaa !25
  %2481 = fneg double %2470
  %2482 = fmul double %2477, %2481
  %2483 = fmul double %2482, %2480
  %2484 = getelementptr inbounds i8, ptr %2478, i64 16
  %2485 = load double, ptr %2484, align 8, !tbaa !25
  %2486 = fadd double %2485, %2406
  %2487 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2486, ptr noundef %6)
  %2488 = fdiv double %2483, %2487
  br label %.sink.split1759

2489:                                             ; preds = %2412, %2386
  br i1 %3, label %2490, label %2494

2490:                                             ; preds = %2489
  %2491 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef 1.000000e+300, ptr noundef %6)
  %2492 = load ptr, ptr %2384, align 8, !tbaa !24
  %2493 = getelementptr inbounds double, ptr %2492, i64 %.311685
  store double %2491, ptr %2493, align 8, !tbaa !25
  br label %2494

2494:                                             ; preds = %2490, %2489
  br i1 %5, label %2495, label %2507

2495:                                             ; preds = %2494
  %2496 = load ptr, ptr %2385, align 8, !tbaa !24
  %2497 = getelementptr inbounds ptr, ptr %2496, i64 %.311685
  %2498 = load ptr, ptr %2497, align 8, !tbaa !27
  store double 0.000000e+00, ptr %2498, align 8, !tbaa !25
  %2499 = load ptr, ptr %2385, align 8, !tbaa !24
  %2500 = getelementptr inbounds ptr, ptr %2499, i64 %.311685
  %2501 = load ptr, ptr %2500, align 8, !tbaa !27
  %2502 = getelementptr inbounds i8, ptr %2501, i64 8
  store double 0.000000e+00, ptr %2502, align 8, !tbaa !25
  br label %.sink.split1759

.sink.split1759:                                  ; preds = %2495, %2438
  %.sink1760 = phi double [ %2488, %2438 ], [ 0.000000e+00, %2495 ]
  %2503 = load ptr, ptr %2385, align 8, !tbaa !24
  %2504 = getelementptr inbounds ptr, ptr %2503, i64 %.311685
  %2505 = load ptr, ptr %2504, align 8, !tbaa !27
  %2506 = getelementptr inbounds i8, ptr %2505, i64 16
  store double %.sink1760, ptr %2506, align 8, !tbaa !25
  br label %2507

2507:                                             ; preds = %.sink.split1759, %2437, %2494
  %exitcond1720.not = icmp eq i64 %2403, 16
  br i1 %exitcond1720.not, label %._crit_edge1640, label %2386, !llvm.loop !65

2508:                                             ; preds = %2376
  %2509 = getelementptr inbounds i8, ptr %0, i64 480
  %2510 = load i8, ptr %2509, align 8, !tbaa !21, !range !22, !noundef !23
  %2511 = trunc nuw i8 %2510 to i1
  %2512 = xor i1 %2511, true
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2512, ptr noundef nonnull @.str.321, ptr noundef %6)
  %2513 = xor i1 %5, true
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext %2513, ptr noundef nonnull @.str.322, ptr noundef %6)
  br i1 %3, label %2514, label %._crit_edge1640

2514:                                             ; preds = %2508
  %2515 = getelementptr inbounds i8, ptr %2, i64 56
  %2516 = load ptr, ptr %2515, align 8, !tbaa !24
  store double 0.000000e+00, ptr %2516, align 8, !tbaa !25
  %2517 = getelementptr inbounds i8, ptr %0, i64 8
  %2518 = load i64, ptr %2517, align 8, !tbaa !33
  switch i64 %2518, label %2623 [
    i64 0, label %2523
    i64 1, label %.preheader1491
    i64 2, label %.preheader1492
    i64 3, label %2597
  ]

.preheader1492:                                   ; preds = %2514
  %2519 = load i64, ptr %38, align 8, !tbaa !20
  %.not1458.not1655 = icmp sgt i64 %2519, 0
  br i1 %.not1458.not1655, label %.lr.ph1660, label %._crit_edge1661

.lr.ph1660:                                       ; preds = %.preheader1492
  %2520 = getelementptr inbounds i8, ptr %1, i64 56
  br label %2572

.preheader1491:                                   ; preds = %2514
  %2521 = load i64, ptr %38, align 8, !tbaa !20
  %.not1459.not1665 = icmp sgt i64 %2521, 0
  br i1 %.not1459.not1665, label %.lr.ph1669, label %._crit_edge1670

.lr.ph1669:                                       ; preds = %.preheader1491
  %2522 = getelementptr inbounds i8, ptr %1, i64 56
  br label %2554

2523:                                             ; preds = %2514
  %2524 = load ptr, ptr %2515, align 8, !tbaa !24
  store double 0.000000e+00, ptr %2524, align 8, !tbaa !25
  %2525 = load i64, ptr %38, align 8, !tbaa !20
  %.not1460.not1680 = icmp sgt i64 %2525, 0
  br i1 %.not1460.not1680, label %.lr.ph1683, label %._crit_edge1640

.lr.ph1683:                                       ; preds = %2523
  %2526 = getelementptr inbounds i8, ptr %1, i64 56
  br label %2527

2527:                                             ; preds = %.lr.ph1683, %._crit_edge1678
  %2528 = phi i64 [ %2525, %.lr.ph1683 ], [ %2553, %._crit_edge1678 ]
  %.321681 = phi i64 [ 0, %.lr.ph1683 ], [ %2537, %._crit_edge1678 ]
  %2529 = sitofp i64 %2528 to double
  %.not1461.not1673 = icmp sgt i64 %2528, 0
  br i1 %.not1461.not1673, label %.lr.ph1677, label %._crit_edge1678

.lr.ph1677:                                       ; preds = %2527, %.lr.ph1677
  %.114421675 = phi i64 [ %2535, %.lr.ph1677 ], [ 0, %2527 ]
  %.414471674 = phi double [ %2534, %.lr.ph1677 ], [ %2529, %2527 ]
  %2530 = load ptr, ptr %2526, align 8, !tbaa !24
  %2531 = getelementptr inbounds double, ptr %2530, i64 %.114421675
  %2532 = load double, ptr %2531, align 8, !tbaa !25
  %2533 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %2532, ptr noundef %6)
  %2534 = fsub double %.414471674, %2533
  %2535 = add nuw nsw i64 %.114421675, 1
  %2536 = load i64, ptr %38, align 8, !tbaa !20
  %.not1461.not = icmp slt i64 %2535, %2536
  br i1 %.not1461.not, label %.lr.ph1677, label %._crit_edge1678, !llvm.loop !66

._crit_edge1678:                                  ; preds = %.lr.ph1677, %2527
  %.41447.lcssa = phi double [ %2529, %2527 ], [ %2534, %.lr.ph1677 ]
  %2537 = add nuw nsw i64 %.321681, 1
  %2538 = uitofp nneg i64 %2537 to double
  %2539 = load ptr, ptr %2526, align 8, !tbaa !24
  %2540 = getelementptr inbounds double, ptr %2539, i64 %.321681
  %2541 = load double, ptr %2540, align 8, !tbaa !25
  %2542 = call noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef %2541, ptr noundef %6)
  %2543 = fsub double 1.000000e+00, %2542
  %2544 = load ptr, ptr %2526, align 8, !tbaa !24
  %2545 = getelementptr inbounds double, ptr %2544, i64 %.321681
  %2546 = load double, ptr %2545, align 8, !tbaa !25
  %2547 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %2546, ptr noundef %6)
  %2548 = fsub double %2543, %2547
  %2549 = call double @llvm.fmuladd.f64(double %2538, double %2548, double %.41447.lcssa)
  %2550 = load ptr, ptr %2515, align 8, !tbaa !24
  %2551 = load double, ptr %2550, align 8, !tbaa !25
  %2552 = call double @llvm.fmuladd.f64(double %2549, double %2549, double %2551)
  store double %2552, ptr %2550, align 8, !tbaa !25
  %2553 = load i64, ptr %38, align 8, !tbaa !20
  %.not1460.not = icmp slt i64 %2537, %2553
  br i1 %.not1460.not, label %2527, label %._crit_edge1640, !llvm.loop !67

2554:                                             ; preds = %.lr.ph1669, %2554
  %.014141668 = phi double [ 0.000000e+00, %.lr.ph1669 ], [ %2565, %2554 ]
  %.014151667 = phi double [ 0.000000e+00, %.lr.ph1669 ], [ %2559, %2554 ]
  %.331666 = phi i64 [ 0, %.lr.ph1669 ], [ %2566, %2554 ]
  %2555 = load ptr, ptr %2522, align 8, !tbaa !24
  %2556 = getelementptr inbounds double, ptr %2555, i64 %.331666
  %2557 = load double, ptr %2556, align 8, !tbaa !25
  %2558 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2557, ptr noundef %6)
  %2559 = fadd double %.014151667, %2558
  %2560 = load ptr, ptr %2522, align 8, !tbaa !24
  %2561 = getelementptr inbounds double, ptr %2560, i64 %.331666
  %2562 = load double, ptr %2561, align 8, !tbaa !25
  %2563 = fmul double %2562, %2562
  %2564 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %2563, ptr noundef %6)
  %2565 = fadd double %.014141668, %2564
  %2566 = add nuw nsw i64 %.331666, 1
  %2567 = load i64, ptr %38, align 8, !tbaa !20
  %.not1459.not = icmp slt i64 %2566, %2567
  br i1 %.not1459.not, label %2554, label %._crit_edge1670, !llvm.loop !68

._crit_edge1670:                                  ; preds = %2554, %.preheader1491
  %.01415.lcssa = phi double [ 0.000000e+00, %.preheader1491 ], [ %2559, %2554 ]
  %.01414.lcssa = phi double [ 0.000000e+00, %.preheader1491 ], [ %2565, %2554 ]
  %2568 = fneg double %.01414.lcssa
  %2569 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2568, ptr noundef %6)
  %2570 = fmul double %.01415.lcssa, %2569
  %2571 = load ptr, ptr %2515, align 8, !tbaa !24
  store double %2570, ptr %2571, align 8, !tbaa !25
  br label %._crit_edge1640

2572:                                             ; preds = %.lr.ph1660, %2572
  %.01659 = phi double [ 0.000000e+00, %.lr.ph1660 ], [ %2587, %2572 ]
  %.11658 = phi double [ 0.000000e+00, %.lr.ph1660 ], [ %2582, %2572 ]
  %.114161657 = phi double [ 0.000000e+00, %.lr.ph1660 ], [ %2578, %2572 ]
  %.341656 = phi i64 [ 0, %.lr.ph1660 ], [ %2588, %2572 ]
  %2573 = load ptr, ptr %2520, align 8, !tbaa !24
  %2574 = getelementptr inbounds double, ptr %2573, i64 %.341656
  %2575 = load double, ptr %2574, align 8, !tbaa !25
  %2576 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %2575, ptr noundef %6)
  %2577 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2576, ptr noundef %6)
  %2578 = fadd double %.114161657, %2577
  %2579 = load ptr, ptr %2520, align 8, !tbaa !24
  %2580 = getelementptr inbounds double, ptr %2579, i64 %.341656
  %2581 = load double, ptr %2580, align 8, !tbaa !25
  %2582 = call double @llvm.fmuladd.f64(double %2581, double %2581, double %.11658)
  %2583 = call noundef double @_ZN11alglib_impl7ae_fabsEdPNS_8ae_stateE(double noundef %2581, ptr noundef %6)
  %2584 = call noundef double @_ZN11alglib_impl7ae_sqrtEdPNS_8ae_stateE(double noundef %2583, ptr noundef %6)
  %2585 = call noundef double @_ZN11alglib_impl6ae_sinEdPNS_8ae_stateE(double noundef %2584, ptr noundef %6)
  %2586 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2585, ptr noundef %6)
  %2587 = fadd double %.01659, %2586
  %2588 = add nuw nsw i64 %.341656, 1
  %2589 = load i64, ptr %38, align 8, !tbaa !20
  %.not1458.not = icmp slt i64 %2588, %2589
  br i1 %.not1458.not, label %2572, label %._crit_edge1661, !llvm.loop !69

._crit_edge1661:                                  ; preds = %2572, %.preheader1492
  %.11416.lcssa = phi double [ 0.000000e+00, %.preheader1492 ], [ %2578, %2572 ]
  %.1.lcssa = phi double [ 0.000000e+00, %.preheader1492 ], [ %2582, %2572 ]
  %.0.lcssa = phi double [ 0.000000e+00, %.preheader1492 ], [ %2587, %2572 ]
  %2590 = fneg double %.1.lcssa
  %2591 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2590, ptr noundef %6)
  %2592 = fsub double %.11416.lcssa, %2591
  %2593 = fneg double %.0.lcssa
  %2594 = call noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef %2593, ptr noundef %6)
  %2595 = fmul double %2592, %2594
  %2596 = load ptr, ptr %2515, align 8, !tbaa !24
  store double %2595, ptr %2596, align 8, !tbaa !25
  br label %._crit_edge1640

2597:                                             ; preds = %2514
  %2598 = load ptr, ptr %2515, align 8, !tbaa !24
  store double 0.000000e+00, ptr %2598, align 8, !tbaa !25
  %2599 = load i64, ptr %38, align 8, !tbaa !20
  %.not1650 = icmp slt i64 %2599, 2
  br i1 %.not1650, label %._crit_edge1640, label %.lr.ph1653

.lr.ph1653:                                       ; preds = %2597
  %2600 = getelementptr inbounds i8, ptr %1, i64 56
  br label %2601

2601:                                             ; preds = %.lr.ph1653, %2601
  %.351651 = phi i64 [ 0, %.lr.ph1653 ], [ %2605, %2601 ]
  %2602 = load ptr, ptr %2515, align 8, !tbaa !24
  %2603 = load double, ptr %2602, align 8, !tbaa !25
  %2604 = load ptr, ptr %2600, align 8, !tbaa !24
  %2605 = add nuw nsw i64 %.351651, 1
  %2606 = getelementptr inbounds double, ptr %2604, i64 %2605
  %2607 = load double, ptr %2606, align 8, !tbaa !25
  %2608 = getelementptr inbounds double, ptr %2604, i64 %.351651
  %2609 = load double, ptr %2608, align 8, !tbaa !25
  %2610 = fneg double %2609
  %2611 = call double @llvm.fmuladd.f64(double %2610, double %2609, double %2607)
  %2612 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2611, ptr noundef %6)
  %2613 = load ptr, ptr %2600, align 8, !tbaa !24
  %2614 = getelementptr inbounds double, ptr %2613, i64 %.351651
  %2615 = load double, ptr %2614, align 8, !tbaa !25
  %2616 = fadd double %2615, -1.000000e+00
  %2617 = call noundef double @_ZN11alglib_impl6ae_sqrEdPNS_8ae_stateE(double noundef %2616, ptr noundef %6)
  %2618 = call double @llvm.fmuladd.f64(double %2612, double 1.000000e+02, double %2617)
  %2619 = fadd double %2603, %2618
  %2620 = load ptr, ptr %2515, align 8, !tbaa !24
  store double %2619, ptr %2620, align 8, !tbaa !25
  %2621 = load i64, ptr %38, align 8, !tbaa !20
  %2622 = add nsw i64 %2621, -2
  %.not.not = icmp slt i64 %.351651, %2622
  br i1 %.not.not, label %2601, label %._crit_edge1640, !llvm.loop !70

2623:                                             ; preds = %2514
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.323, ptr noundef %6)
  br label %.thread1490

.thread1490:                                      ; preds = %2376, %2379, %2623
  call void @_ZN11alglib_impl9ae_assertEbPKcPNS_8ae_stateE(i1 noundef zeroext false, ptr noundef nonnull @.str.324, ptr noundef %6)
  br label %._crit_edge1640

._crit_edge1640:                                  ; preds = %396, %384, %372, %331, %320, %.epilog-lcssa, %272, %740, %708, %649, %614, %581, %545, %511, %452, %._crit_edge1632, %2338, %2222, %1686, %1515, %1449, %2601, %._crit_edge1678, %2507, %2597, %2523, %2508, %2378, %2356, %2357, %2018, %2019, %1751, %1752, %.loopexit1499, %.loopexit1495, %1367, %1368, %1312, %1313, %1251, %1252, %1197, %1198, %1147, %1148, %1092, %1093, %1020, %1021, %947, %948, %765, %736, %704, %645, %610, %577, %.preheader1507, %.preheader1506, %.preheader1504, %426, %.preheader1518, %.preheader1517, %.preheader1516, %.preheader1515, %.preheader1514, %.preheader1513, %.preheader1510, %240, %.preheader1503, %.thread1490, %._crit_edge1661, %._crit_edge1670, %._crit_edge1586, %._crit_edge1608, %366, %359, %353, %._crit_edge1548
  call void @_ZN11alglib_impl14ae_frame_leaveEPNS_8ae_stateE(ptr noundef %6)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  ret void
}

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

declare void @_ZN11alglib_impl6raddvrEldPKNS_9ae_vectorEPNS_9ae_matrixElPNS_8ae_stateE(i64 noundef, double noundef, ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare noundef double @_ZN11alglib_impl6ae_cosEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #2

declare noundef double @_ZN11alglib_impl6ae_expEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #2

declare noundef double @_ZN11alglib_impl7ae_coshEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #2

declare noundef double @_ZN11alglib_impl7ae_sinhEdPNS_8ae_stateE(double noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #5

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { 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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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, !7, i64 0}
!6 = !{!"_ZTSN11alglib_impl26multiobjectivetestfunctionE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !10, i64 32, !7, i64 112, !10, i64 120, !10, i64 200, !7, i64 280, !14, i64 288, !14, i64 352, !14, i64 416, !11, i64 480, !10, i64 488, !14, i64 568, !10, i64 632, !10, i64 712, !10, i64 792, !14, i64 872, !14, i64 936, !10, i64 1000, !14, i64 1080, !14, i64 1144, !7, i64 1208, !14, i64 1216, !10, i64 1280, !10, i64 1360, !10, i64 1440, !14, i64 1520, !14, i64 1584, !7, i64 1648}
!7 = !{!"long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSN11alglib_impl9ae_matrixE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !11, i64 32, !12, i64 40, !8, i64 72}
!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_impl9ae_vectorE", !7, i64 0, !7, i64 8, !11, i64 16, !12, i64 24, !8, i64 56}
!15 = !{!14, !7, i64 0}
!16 = !{!6, !7, i64 24}
!17 = !{!6, !7, i64 1648}
!18 = !{!10, !7, i64 0}
!19 = !{!10, !7, i64 8}
!20 = !{!6, !7, i64 16}
!21 = !{!6, !11, i64 480}
!22 = !{i8 0, i8 2}
!23 = !{}
!24 = !{!8, !8, i64 0}
!25 = !{!26, !26, i64 0}
!26 = !{!"double", !8, i64 0}
!27 = !{!13, !13, i64 0}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = distinct !{!30, !29}
!31 = distinct !{!31, !29}
!32 = distinct !{!32, !29}
!33 = !{!6, !7, i64 8}
!34 = distinct !{!34, !29}
!35 = distinct !{!35, !29}
!36 = distinct !{!36, !29}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.unroll.disable"}
!39 = distinct !{!39, !29}
!40 = distinct !{!40, !29}
!41 = distinct !{!41, !29}
!42 = distinct !{!42, !29}
!43 = distinct !{!43, !29}
!44 = distinct !{!44, !29}
!45 = distinct !{!45, !29}
!46 = distinct !{!46, !29}
!47 = distinct !{!47, !29}
!48 = distinct !{!48, !29}
!49 = distinct !{!49, !29}
!50 = distinct !{!50, !29}
!51 = distinct !{!51, !29}
!52 = distinct !{!52, !29}
!53 = distinct !{!53, !29}
!54 = distinct !{!54, !29}
!55 = distinct !{!55, !29}
!56 = distinct !{!56, !29}
!57 = distinct !{!57, !29}
!58 = distinct !{!58, !29}
!59 = distinct !{!59, !29}
!60 = distinct !{!60, !29}
!61 = distinct !{!61, !29, !62}
!62 = !{!"llvm.loop.peeled.count", i32 2}
!63 = distinct !{!63, !29}
!64 = distinct !{!64, !29}
!65 = distinct !{!65, !29}
!66 = distinct !{!66, !29}
!67 = distinct !{!67, !29}
!68 = distinct !{!68, !29}
!69 = distinct !{!69, !29}
!70 = distinct !{!70, !29}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopFullUnrollPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,VectorCombinePass