; LLVM IR from garethcmurphy/Interstellar-Jet-MHD-Simulation :: src/lf.ll (Z2lfPdS_S_S_iS_iPi)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon }
%union.anon = type { i32 }
%"class.TNT::Array2D" = type { %"class.TNT::Array1D", %"class.TNT::Array1D.0", i32, i32 }
%"class.TNT::Array1D" = type { %"class.TNT::i_refvec", i32, ptr }
%"class.TNT::i_refvec" = type { ptr, ptr }
%"class.TNT::Array1D.0" = type { %"class.TNT::i_refvec.1", i32, ptr }
%"class.TNT::i_refvec.1" = type { ptr, ptr }

@__const._Z2lfPdS_S_S_iS_iPi.outfilename = external hidden unnamed_addr constant [50 x i8], align 16
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [32 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [20 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.2 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [8 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z2lfPdS_S_S_iS_iPi(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, i32 noundef %4, ptr noundef %5, i32 noundef %6, ptr noundef %7) #0 personality ptr @__gxx_personality_v0 {
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca %"class.std::basic_ofstream", align 8
  %21 = alloca [50 x i8], align 16
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca [8 x double], align 16
  %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 double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca [7 x double], align 16
  %62 = alloca [8 x double], align 16
  %63 = alloca [8 x double], align 16
  %64 = alloca [7 x double], align 16
  %65 = alloca [7 x double], align 16
  %66 = alloca [7 x double], align 16
  %67 = alloca [7 x double], align 16
  %68 = alloca [7 x double], align 16
  %69 = alloca [7 x double], align 16
  %70 = alloca double, align 8
  %71 = alloca double, align 8
  %72 = alloca double, align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca double, align 8
  %76 = alloca double, align 8
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca double, align 8
  %80 = alloca double, align 8
  %81 = alloca double, align 8
  %82 = alloca double, align 8
  %83 = alloca double, align 8
  %84 = alloca double, align 8
  %85 = alloca double, align 8
  %86 = alloca double, align 8
  %87 = alloca double, align 8
  %88 = alloca double, align 8
  %89 = alloca double, align 8
  %90 = alloca double, align 8
  %91 = alloca double, align 8
  %92 = alloca [7 x double], align 16
  %93 = alloca double, align 8
  %94 = alloca double, align 8
  %95 = alloca ptr, align 8
  %96 = alloca i32, align 4
  %97 = alloca %"class.TNT::Array2D", align 8
  %98 = alloca %"class.TNT::Array2D", align 8
  %99 = alloca %"class.TNT::Array2D", align 8
  %100 = alloca %"class.TNT::Array2D", align 8
  %101 = alloca i32, align 4
  %102 = alloca double, align 8
  %103 = alloca double, align 8
  %104 = alloca double, align 8
  %105 = alloca double, align 8
  store ptr %0, ptr %10, align 8, !tbaa !5
  store ptr %1, ptr %11, align 8, !tbaa !5
  store ptr %2, ptr %12, align 8, !tbaa !5
  store ptr %3, ptr %13, align 8, !tbaa !5
  store i32 %4, ptr %14, align 4, !tbaa !9
  store ptr %5, ptr %15, align 8, !tbaa !5
  store i32 %6, ptr %16, align 4, !tbaa !9
  store ptr %7, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  store double 0x3FFAAAAAAAAAAAAB, ptr %18, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  store double 1.000000e-10, ptr %19, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 512, ptr %20) #9
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(248) %20)
  call void @llvm.lifetime.start.p0(i64 50, ptr %21) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %21, ptr align 16 @__const._Z2lfPdS_S_S_iS_iPi.outfilename, i64 50, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  store i32 0, ptr %22, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  store i32 0, ptr %23, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  store i32 0, ptr %24, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  store i32 0, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  store i32 0, ptr %26, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 64, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %106 = load ptr, ptr %10, align 8, !tbaa !5
  %107 = getelementptr inbounds double, ptr %106, i64 0
  %108 = load double, ptr %107, align 8, !tbaa !11
  store double %108, ptr %28, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %109 = load ptr, ptr %10, align 8, !tbaa !5
  %110 = getelementptr inbounds double, ptr %109, i64 1
  %111 = load double, ptr %110, align 8, !tbaa !11
  store double %111, ptr %29, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  %112 = load ptr, ptr %10, align 8, !tbaa !5
  %113 = getelementptr inbounds double, ptr %112, i64 2
  %114 = load double, ptr %113, align 8, !tbaa !11
  store double %114, ptr %30, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %115 = load ptr, ptr %10, align 8, !tbaa !5
  %116 = getelementptr inbounds double, ptr %115, i64 3
  %117 = load double, ptr %116, align 8, !tbaa !11
  store double %117, ptr %31, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  %118 = load ptr, ptr %10, align 8, !tbaa !5
  %119 = getelementptr inbounds double, ptr %118, i64 4
  %120 = load double, ptr %119, align 8, !tbaa !11
  store double %120, ptr %32, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %121 = load ptr, ptr %10, align 8, !tbaa !5
  %122 = getelementptr inbounds double, ptr %121, i64 5
  %123 = load double, ptr %122, align 8, !tbaa !11
  store double %123, ptr %33, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  %124 = load ptr, ptr %10, align 8, !tbaa !5
  %125 = getelementptr inbounds double, ptr %124, i64 6
  %126 = load double, ptr %125, align 8, !tbaa !11
  store double %126, ptr %34, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  %127 = load ptr, ptr %10, align 8, !tbaa !5
  %128 = getelementptr inbounds double, ptr %127, i64 7
  %129 = load double, ptr %128, align 8, !tbaa !11
  store double %129, ptr %35, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  %130 = load ptr, ptr %11, align 8, !tbaa !5
  %131 = getelementptr inbounds double, ptr %130, i64 0
  %132 = load double, ptr %131, align 8, !tbaa !11
  store double %132, ptr %36, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  %133 = load ptr, ptr %11, align 8, !tbaa !5
  %134 = getelementptr inbounds double, ptr %133, i64 1
  %135 = load double, ptr %134, align 8, !tbaa !11
  store double %135, ptr %37, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  %136 = load ptr, ptr %11, align 8, !tbaa !5
  %137 = getelementptr inbounds double, ptr %136, i64 2
  %138 = load double, ptr %137, align 8, !tbaa !11
  store double %138, ptr %38, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  %139 = load ptr, ptr %11, align 8, !tbaa !5
  %140 = getelementptr inbounds double, ptr %139, i64 3
  %141 = load double, ptr %140, align 8, !tbaa !11
  store double %141, ptr %39, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  %142 = load ptr, ptr %11, align 8, !tbaa !5
  %143 = getelementptr inbounds double, ptr %142, i64 4
  %144 = load double, ptr %143, align 8, !tbaa !11
  store double %144, ptr %40, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  %145 = load ptr, ptr %11, align 8, !tbaa !5
  %146 = getelementptr inbounds double, ptr %145, i64 5
  %147 = load double, ptr %146, align 8, !tbaa !11
  store double %147, ptr %41, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %148 = load ptr, ptr %11, align 8, !tbaa !5
  %149 = getelementptr inbounds double, ptr %148, i64 6
  %150 = load double, ptr %149, align 8, !tbaa !11
  store double %150, ptr %42, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %151 = load ptr, ptr %11, align 8, !tbaa !5
  %152 = getelementptr inbounds double, ptr %151, i64 7
  %153 = load double, ptr %152, align 8, !tbaa !11
  store double %153, ptr %43, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  store double 0.000000e+00, ptr %44, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  store double 0.000000e+00, ptr %45, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  store double 0.000000e+00, ptr %46, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  store double 0.000000e+00, ptr %47, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  store double 0.000000e+00, ptr %48, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  store double 0.000000e+00, ptr %49, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  store double 0.000000e+00, ptr %50, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  %154 = load double, ptr %18, align 8, !tbaa !11
  %155 = fsub double %154, 1.000000e+00
  store double %155, ptr %51, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #9
  %156 = load double, ptr %51, align 8, !tbaa !11
  %157 = fdiv double 1.000000e+00, %156
  store double %157, ptr %52, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  store double 0.000000e+00, ptr %53, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  store double 0.000000e+00, ptr %54, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  store double 0.000000e+00, ptr %55, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  store double 0.000000e+00, ptr %56, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #9
  store double 0.000000e+00, ptr %57, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  store double 0.000000e+00, ptr %58, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  store double 0.000000e+00, ptr %59, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #9
  store double 0.000000e+00, ptr %60, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 56, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr %62) #9
  call void @llvm.lifetime.start.p0(i64 64, ptr %63) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %64) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %65) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %66) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %67) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %68) #9
  call void @llvm.lifetime.start.p0(i64 56, ptr %69) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  store double 0.000000e+00, ptr %71, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #9
  store double 0.000000e+00, ptr %72, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #9
  store double 0.000000e+00, ptr %73, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #9
  store double 0.000000e+00, ptr %74, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #9
  store double 0.000000e+00, ptr %75, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #9
  store double 0.000000e+00, ptr %76, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #9
  store double 0.000000e+00, ptr %77, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #9
  store double 0.000000e+00, ptr %78, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #9
  store double 0.000000e+00, ptr %79, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #9
  store double 0.000000e+00, ptr %80, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  store double 0.000000e+00, ptr %81, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  store double 0.000000e+00, ptr %82, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #9
  store double 0.000000e+00, ptr %83, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #9
  store double 0.000000e+00, ptr %84, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #9
  store double 0.000000e+00, ptr %85, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #9
  store double 0.000000e+00, ptr %86, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #9
  store double 0.000000e+00, ptr %87, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #9
  store double 0.000000e+00, ptr %88, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #9
  store double 0.000000e+00, ptr %89, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #9
  store double 0.000000e+00, ptr %90, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #9
  store double 0.000000e+00, ptr %91, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 56, ptr %92) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #9
  store double 0.000000e+00, ptr %93, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #9
  store double 0.000000e+00, ptr %94, align 8, !tbaa !11
  %158 = load double, ptr %28, align 8, !tbaa !11
  %159 = fcmp olt double %158, 0.000000e+00
  br i1 %159, label %163, label %160

160:                                              ; preds = %8
  %161 = load double, ptr %36, align 8, !tbaa !11
  %162 = fcmp olt double %161, 0.000000e+00
  br i1 %162, label %163, label %172

163:                                              ; preds = %160, %8
  %164 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str)
          to label %165 unwind label %168

165:                                              ; preds = %163
  %166 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %167 unwind label %168

167:                                              ; preds = %165
  call void @exit(i32 noundef 0) #10
  unreachable

168:                                              ; preds = %210, %193, %183, %181, %174, %172, %165, %163
  %169 = landingpad { ptr, i32 }
          cleanup
  %170 = extractvalue { ptr, i32 } %169, 0
  store ptr %170, ptr %95, align 8
  %171 = extractvalue { ptr, i32 } %169, 1
  store i32 %171, ptr %96, align 4
  br label %1276

172:                                              ; preds = %160
  %173 = getelementptr inbounds [50 x i8], ptr %21, i64 0, i64 0
  invoke void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(248) %20, ptr noundef %173, i32 noundef 1)
          to label %174 unwind label %168

174:                                              ; preds = %172
  %175 = load ptr, ptr %20, align 8, !tbaa !13
  %176 = getelementptr i8, ptr %175, i64 -24
  %177 = load i64, ptr %176, align 8
  %178 = getelementptr inbounds i8, ptr %20, i64 %177
  %179 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %178)
          to label %180 unwind label %168

180:                                              ; preds = %174
  br i1 %179, label %181, label %186

181:                                              ; preds = %180
  %182 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @.str.1)
          to label %183 unwind label %168

183:                                              ; preds = %181
  %184 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %185 unwind label %168

185:                                              ; preds = %183
  br label %186

186:                                              ; preds = %185, %180
  %187 = load i32, ptr %16, align 4, !tbaa !9
  %188 = icmp eq i32 %187, 1
  br i1 %188, label %189, label %190

189:                                              ; preds = %186
  br label %302

190:                                              ; preds = %186
  %191 = load i32, ptr %16, align 4, !tbaa !9
  %192 = icmp eq i32 %191, 2
  br i1 %192, label %193, label %248

193:                                              ; preds = %190
  %194 = load ptr, ptr %10, align 8, !tbaa !5
  %195 = getelementptr inbounds double, ptr %194, i64 0
  %196 = load double, ptr %195, align 8, !tbaa !11
  store double %196, ptr %28, align 8, !tbaa !11
  %197 = load ptr, ptr %10, align 8, !tbaa !5
  %198 = getelementptr inbounds double, ptr %197, i64 2
  %199 = load double, ptr %198, align 8, !tbaa !11
  store double %199, ptr %29, align 8, !tbaa !11
  %200 = load ptr, ptr %10, align 8, !tbaa !5
  %201 = getelementptr inbounds double, ptr %200, i64 3
  %202 = load double, ptr %201, align 8, !tbaa !11
  store double %202, ptr %30, align 8, !tbaa !11
  %203 = load ptr, ptr %10, align 8, !tbaa !5
  %204 = getelementptr inbounds double, ptr %203, i64 1
  %205 = load double, ptr %204, align 8, !tbaa !11
  store double %205, ptr %31, align 8, !tbaa !11
  %206 = load ptr, ptr %10, align 8, !tbaa !5
  %207 = getelementptr inbounds double, ptr %206, i64 4
  %208 = load double, ptr %207, align 8, !tbaa !11
  store double %208, ptr %32, align 8, !tbaa !11
  %209 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %210 unwind label %168

210:                                              ; preds = %193
  %211 = load double, ptr %209, align 8, !tbaa !11
  store double %211, ptr %32, align 8, !tbaa !11
  %212 = load ptr, ptr %10, align 8, !tbaa !5
  %213 = getelementptr inbounds double, ptr %212, i64 6
  %214 = load double, ptr %213, align 8, !tbaa !11
  store double %214, ptr %33, align 8, !tbaa !11
  %215 = load ptr, ptr %10, align 8, !tbaa !5
  %216 = getelementptr inbounds double, ptr %215, i64 7
  %217 = load double, ptr %216, align 8, !tbaa !11
  store double %217, ptr %34, align 8, !tbaa !11
  %218 = load ptr, ptr %10, align 8, !tbaa !5
  %219 = getelementptr inbounds double, ptr %218, i64 5
  %220 = load double, ptr %219, align 8, !tbaa !11
  store double %220, ptr %35, align 8, !tbaa !11
  %221 = load ptr, ptr %11, align 8, !tbaa !5
  %222 = getelementptr inbounds double, ptr %221, i64 0
  %223 = load double, ptr %222, align 8, !tbaa !11
  store double %223, ptr %36, align 8, !tbaa !11
  %224 = load ptr, ptr %11, align 8, !tbaa !5
  %225 = getelementptr inbounds double, ptr %224, i64 2
  %226 = load double, ptr %225, align 8, !tbaa !11
  store double %226, ptr %37, align 8, !tbaa !11
  %227 = load ptr, ptr %11, align 8, !tbaa !5
  %228 = getelementptr inbounds double, ptr %227, i64 3
  %229 = load double, ptr %228, align 8, !tbaa !11
  store double %229, ptr %38, align 8, !tbaa !11
  %230 = load ptr, ptr %11, align 8, !tbaa !5
  %231 = getelementptr inbounds double, ptr %230, i64 1
  %232 = load double, ptr %231, align 8, !tbaa !11
  store double %232, ptr %39, align 8, !tbaa !11
  %233 = load ptr, ptr %11, align 8, !tbaa !5
  %234 = getelementptr inbounds double, ptr %233, i64 4
  %235 = load double, ptr %234, align 8, !tbaa !11
  store double %235, ptr %40, align 8, !tbaa !11
  %236 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %237 unwind label %168

237:                                              ; preds = %210
  %238 = load double, ptr %236, align 8, !tbaa !11
  store double %238, ptr %40, align 8, !tbaa !11
  %239 = load ptr, ptr %11, align 8, !tbaa !5
  %240 = getelementptr inbounds double, ptr %239, i64 6
  %241 = load double, ptr %240, align 8, !tbaa !11
  store double %241, ptr %41, align 8, !tbaa !11
  %242 = load ptr, ptr %11, align 8, !tbaa !5
  %243 = getelementptr inbounds double, ptr %242, i64 7
  %244 = load double, ptr %243, align 8, !tbaa !11
  store double %244, ptr %42, align 8, !tbaa !11
  %245 = load ptr, ptr %11, align 8, !tbaa !5
  %246 = getelementptr inbounds double, ptr %245, i64 5
  %247 = load double, ptr %246, align 8, !tbaa !11
  store double %247, ptr %43, align 8, !tbaa !11
  br label %301

248:                                              ; preds = %190
  %249 = load i32, ptr %16, align 4, !tbaa !9
  %250 = icmp eq i32 %249, 3
  br i1 %250, label %251, label %300

251:                                              ; preds = %248
  %252 = load ptr, ptr %10, align 8, !tbaa !5
  %253 = getelementptr inbounds double, ptr %252, i64 0
  %254 = load double, ptr %253, align 8, !tbaa !11
  store double %254, ptr %28, align 8, !tbaa !11
  %255 = load ptr, ptr %10, align 8, !tbaa !5
  %256 = getelementptr inbounds double, ptr %255, i64 3
  %257 = load double, ptr %256, align 8, !tbaa !11
  store double %257, ptr %29, align 8, !tbaa !11
  %258 = load ptr, ptr %10, align 8, !tbaa !5
  %259 = getelementptr inbounds double, ptr %258, i64 1
  %260 = load double, ptr %259, align 8, !tbaa !11
  store double %260, ptr %30, align 8, !tbaa !11
  %261 = load ptr, ptr %10, align 8, !tbaa !5
  %262 = getelementptr inbounds double, ptr %261, i64 2
  %263 = load double, ptr %262, align 8, !tbaa !11
  store double %263, ptr %31, align 8, !tbaa !11
  %264 = load ptr, ptr %10, align 8, !tbaa !5
  %265 = getelementptr inbounds double, ptr %264, i64 4
  %266 = load double, ptr %265, align 8, !tbaa !11
  store double %266, ptr %32, align 8, !tbaa !11
  %267 = load ptr, ptr %10, align 8, !tbaa !5
  %268 = getelementptr inbounds double, ptr %267, i64 7
  %269 = load double, ptr %268, align 8, !tbaa !11
  store double %269, ptr %33, align 8, !tbaa !11
  %270 = load ptr, ptr %10, align 8, !tbaa !5
  %271 = getelementptr inbounds double, ptr %270, i64 5
  %272 = load double, ptr %271, align 8, !tbaa !11
  store double %272, ptr %34, align 8, !tbaa !11
  %273 = load ptr, ptr %10, align 8, !tbaa !5
  %274 = getelementptr inbounds double, ptr %273, i64 6
  %275 = load double, ptr %274, align 8, !tbaa !11
  store double %275, ptr %35, align 8, !tbaa !11
  %276 = load ptr, ptr %11, align 8, !tbaa !5
  %277 = getelementptr inbounds double, ptr %276, i64 0
  %278 = load double, ptr %277, align 8, !tbaa !11
  store double %278, ptr %36, align 8, !tbaa !11
  %279 = load ptr, ptr %11, align 8, !tbaa !5
  %280 = getelementptr inbounds double, ptr %279, i64 3
  %281 = load double, ptr %280, align 8, !tbaa !11
  store double %281, ptr %37, align 8, !tbaa !11
  %282 = load ptr, ptr %11, align 8, !tbaa !5
  %283 = getelementptr inbounds double, ptr %282, i64 1
  %284 = load double, ptr %283, align 8, !tbaa !11
  store double %284, ptr %38, align 8, !tbaa !11
  %285 = load ptr, ptr %11, align 8, !tbaa !5
  %286 = getelementptr inbounds double, ptr %285, i64 2
  %287 = load double, ptr %286, align 8, !tbaa !11
  store double %287, ptr %39, align 8, !tbaa !11
  %288 = load ptr, ptr %11, align 8, !tbaa !5
  %289 = getelementptr inbounds double, ptr %288, i64 4
  %290 = load double, ptr %289, align 8, !tbaa !11
  store double %290, ptr %40, align 8, !tbaa !11
  %291 = load ptr, ptr %11, align 8, !tbaa !5
  %292 = getelementptr inbounds double, ptr %291, i64 7
  %293 = load double, ptr %292, align 8, !tbaa !11
  store double %293, ptr %41, align 8, !tbaa !11
  %294 = load ptr, ptr %11, align 8, !tbaa !5
  %295 = getelementptr inbounds double, ptr %294, i64 5
  %296 = load double, ptr %295, align 8, !tbaa !11
  store double %296, ptr %42, align 8, !tbaa !11
  %297 = load ptr, ptr %11, align 8, !tbaa !5
  %298 = getelementptr inbounds double, ptr %297, i64 6
  %299 = load double, ptr %298, align 8, !tbaa !11
  store double %299, ptr %43, align 8, !tbaa !11
  br label %300

300:                                              ; preds = %251, %248
  br label %301

301:                                              ; preds = %300, %237
  br label %302

302:                                              ; preds = %301, %189
  %303 = load double, ptr %28, align 8, !tbaa !11
  %304 = getelementptr inbounds [7 x double], ptr %64, i64 0, i64 0
  store double %303, ptr %304, align 16, !tbaa !11
  %305 = load double, ptr %29, align 8, !tbaa !11
  %306 = getelementptr inbounds [7 x double], ptr %64, i64 0, i64 1
  store double %305, ptr %306, align 8, !tbaa !11
  %307 = load double, ptr %30, align 8, !tbaa !11
  %308 = getelementptr inbounds [7 x double], ptr %64, i64 0, i64 2
  store double %307, ptr %308, align 16, !tbaa !11
  %309 = load double, ptr %31, align 8, !tbaa !11
  %310 = getelementptr inbounds [7 x double], ptr %64, i64 0, i64 3
  store double %309, ptr %310, align 8, !tbaa !11
  %311 = load double, ptr %32, align 8, !tbaa !11
  %312 = getelementptr inbounds [7 x double], ptr %64, i64 0, i64 4
  store double %311, ptr %312, align 16, !tbaa !11
  %313 = load double, ptr %34, align 8, !tbaa !11
  %314 = getelementptr inbounds [7 x double], ptr %64, i64 0, i64 5
  store double %313, ptr %314, align 8, !tbaa !11
  %315 = load double, ptr %35, align 8, !tbaa !11
  %316 = getelementptr inbounds [7 x double], ptr %64, i64 0, i64 6
  store double %315, ptr %316, align 16, !tbaa !11
  %317 = load double, ptr %36, align 8, !tbaa !11
  %318 = getelementptr inbounds [7 x double], ptr %65, i64 0, i64 0
  store double %317, ptr %318, align 16, !tbaa !11
  %319 = load double, ptr %37, align 8, !tbaa !11
  %320 = getelementptr inbounds [7 x double], ptr %65, i64 0, i64 1
  store double %319, ptr %320, align 8, !tbaa !11
  %321 = load double, ptr %38, align 8, !tbaa !11
  %322 = getelementptr inbounds [7 x double], ptr %65, i64 0, i64 2
  store double %321, ptr %322, align 16, !tbaa !11
  %323 = load double, ptr %39, align 8, !tbaa !11
  %324 = getelementptr inbounds [7 x double], ptr %65, i64 0, i64 3
  store double %323, ptr %324, align 8, !tbaa !11
  %325 = load double, ptr %40, align 8, !tbaa !11
  %326 = getelementptr inbounds [7 x double], ptr %65, i64 0, i64 4
  store double %325, ptr %326, align 16, !tbaa !11
  %327 = load double, ptr %42, align 8, !tbaa !11
  %328 = getelementptr inbounds [7 x double], ptr %65, i64 0, i64 5
  store double %327, ptr %328, align 8, !tbaa !11
  %329 = load double, ptr %43, align 8, !tbaa !11
  %330 = getelementptr inbounds [7 x double], ptr %65, i64 0, i64 6
  store double %329, ptr %330, align 16, !tbaa !11
  store i32 0, ptr %23, align 4, !tbaa !9
  br label %331

331:                                              ; preds = %349, %302
  %332 = load i32, ptr %23, align 4, !tbaa !9
  %333 = icmp slt i32 %332, 7
  br i1 %333, label %334, label %352

334:                                              ; preds = %331
  %335 = load i32, ptr %23, align 4, !tbaa !9
  %336 = sext i32 %335 to i64
  %337 = getelementptr inbounds [7 x double], ptr %64, i64 0, i64 %336
  %338 = load double, ptr %337, align 8, !tbaa !11
  %339 = load i32, ptr %23, align 4, !tbaa !9
  %340 = sext i32 %339 to i64
  %341 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 %340
  store double %338, ptr %341, align 8, !tbaa !11
  %342 = load i32, ptr %23, align 4, !tbaa !9
  %343 = sext i32 %342 to i64
  %344 = getelementptr inbounds [7 x double], ptr %65, i64 0, i64 %343
  %345 = load double, ptr %344, align 8, !tbaa !11
  %346 = load i32, ptr %23, align 4, !tbaa !9
  %347 = sext i32 %346 to i64
  %348 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 %347
  store double %345, ptr %348, align 8, !tbaa !11
  br label %349

349:                                              ; preds = %334
  %350 = load i32, ptr %23, align 4, !tbaa !9
  %351 = add nsw i32 %350, 1
  store i32 %351, ptr %23, align 4, !tbaa !9
  br label %331, !llvm.loop !15

352:                                              ; preds = %331
  %353 = load double, ptr %36, align 8, !tbaa !11
  %354 = load double, ptr %28, align 8, !tbaa !11
  %355 = fsub double %353, %354
  %356 = getelementptr inbounds [7 x double], ptr %92, i64 0, i64 0
  store double %355, ptr %356, align 16, !tbaa !11
  %357 = load double, ptr %37, align 8, !tbaa !11
  %358 = load double, ptr %29, align 8, !tbaa !11
  %359 = fsub double %357, %358
  %360 = getelementptr inbounds [7 x double], ptr %92, i64 0, i64 1
  store double %359, ptr %360, align 8, !tbaa !11
  %361 = load double, ptr %38, align 8, !tbaa !11
  %362 = load double, ptr %30, align 8, !tbaa !11
  %363 = fsub double %361, %362
  %364 = getelementptr inbounds [7 x double], ptr %92, i64 0, i64 2
  store double %363, ptr %364, align 16, !tbaa !11
  %365 = load double, ptr %38, align 8, !tbaa !11
  %366 = load double, ptr %30, align 8, !tbaa !11
  %367 = fsub double %365, %366
  store double %367, ptr %93, align 8, !tbaa !11
  %368 = load double, ptr %39, align 8, !tbaa !11
  %369 = load double, ptr %31, align 8, !tbaa !11
  %370 = fsub double %368, %369
  %371 = getelementptr inbounds [7 x double], ptr %92, i64 0, i64 3
  store double %370, ptr %371, align 8, !tbaa !11
  %372 = load double, ptr %39, align 8, !tbaa !11
  %373 = load double, ptr %31, align 8, !tbaa !11
  %374 = fsub double %372, %373
  store double %374, ptr %94, align 8, !tbaa !11
  %375 = load double, ptr %40, align 8, !tbaa !11
  %376 = load double, ptr %32, align 8, !tbaa !11
  %377 = fsub double %375, %376
  %378 = getelementptr inbounds [7 x double], ptr %92, i64 0, i64 4
  store double %377, ptr %378, align 16, !tbaa !11
  %379 = getelementptr inbounds [7 x double], ptr %92, i64 0, i64 4
  %380 = load double, ptr %379, align 16, !tbaa !11
  %381 = call double @llvm.fabs.f64(double %380)
  %382 = fcmp olt double %381, 1.000000e-10
  br i1 %382, label %383, label %385

383:                                              ; preds = %352
  %384 = getelementptr inbounds [7 x double], ptr %92, i64 0, i64 4
  store double 0.000000e+00, ptr %384, align 16, !tbaa !11
  br label %385

385:                                              ; preds = %383, %352
  %386 = load double, ptr %42, align 8, !tbaa !11
  %387 = load double, ptr %34, align 8, !tbaa !11
  %388 = fsub double %386, %387
  %389 = getelementptr inbounds [7 x double], ptr %92, i64 0, i64 5
  store double %388, ptr %389, align 8, !tbaa !11
  %390 = load double, ptr %43, align 8, !tbaa !11
  %391 = load double, ptr %35, align 8, !tbaa !11
  %392 = fsub double %390, %391
  %393 = getelementptr inbounds [7 x double], ptr %92, i64 0, i64 6
  store double %392, ptr %393, align 16, !tbaa !11
  %394 = load double, ptr %36, align 8, !tbaa !11
  %395 = load double, ptr %28, align 8, !tbaa !11
  %396 = fadd double %394, %395
  %397 = fmul double 5.000000e-01, %396
  store double %397, ptr %53, align 8, !tbaa !11
  %398 = load double, ptr %29, align 8, !tbaa !11
  %399 = load double, ptr %37, align 8, !tbaa !11
  %400 = fadd double %398, %399
  %401 = fmul double 5.000000e-01, %400
  store double %401, ptr %54, align 8, !tbaa !11
  %402 = load double, ptr %54, align 8, !tbaa !11
  %403 = fcmp oeq double %402, 0.000000e+00
  br i1 %403, label %404, label %405

404:                                              ; preds = %385
  br label %405

405:                                              ; preds = %404, %385
  %406 = load double, ptr %30, align 8, !tbaa !11
  %407 = load double, ptr %38, align 8, !tbaa !11
  %408 = fadd double %406, %407
  %409 = fmul double 5.000000e-01, %408
  store double %409, ptr %55, align 8, !tbaa !11
  %410 = load double, ptr %31, align 8, !tbaa !11
  %411 = load double, ptr %39, align 8, !tbaa !11
  %412 = fadd double %410, %411
  %413 = fmul double 5.000000e-01, %412
  store double %413, ptr %56, align 8, !tbaa !11
  %414 = load double, ptr %32, align 8, !tbaa !11
  %415 = load double, ptr %40, align 8, !tbaa !11
  %416 = fadd double %414, %415
  %417 = fmul double 5.000000e-01, %416
  store double %417, ptr %57, align 8, !tbaa !11
  %418 = load double, ptr %33, align 8, !tbaa !11
  %419 = load double, ptr %41, align 8, !tbaa !11
  %420 = fadd double %418, %419
  %421 = fmul double 5.000000e-01, %420
  store double %421, ptr %58, align 8, !tbaa !11
  %422 = load double, ptr %34, align 8, !tbaa !11
  %423 = load double, ptr %42, align 8, !tbaa !11
  %424 = fadd double %422, %423
  %425 = fmul double 5.000000e-01, %424
  store double %425, ptr %59, align 8, !tbaa !11
  %426 = load double, ptr %35, align 8, !tbaa !11
  %427 = load double, ptr %43, align 8, !tbaa !11
  %428 = fadd double %426, %427
  %429 = fmul double 5.000000e-01, %428
  store double %429, ptr %60, align 8, !tbaa !11
  %430 = load double, ptr %53, align 8, !tbaa !11
  %431 = getelementptr inbounds [8 x double], ptr %27, i64 0, i64 0
  store double %430, ptr %431, align 16, !tbaa !11
  %432 = load double, ptr %54, align 8, !tbaa !11
  %433 = getelementptr inbounds [8 x double], ptr %27, i64 0, i64 1
  store double %432, ptr %433, align 8, !tbaa !11
  %434 = load double, ptr %55, align 8, !tbaa !11
  %435 = getelementptr inbounds [8 x double], ptr %27, i64 0, i64 2
  store double %434, ptr %435, align 16, !tbaa !11
  %436 = load double, ptr %56, align 8, !tbaa !11
  %437 = getelementptr inbounds [8 x double], ptr %27, i64 0, i64 3
  store double %436, ptr %437, align 8, !tbaa !11
  %438 = load double, ptr %57, align 8, !tbaa !11
  %439 = getelementptr inbounds [8 x double], ptr %27, i64 0, i64 4
  store double %438, ptr %439, align 16, !tbaa !11
  %440 = load double, ptr %58, align 8, !tbaa !11
  %441 = getelementptr inbounds [8 x double], ptr %27, i64 0, i64 5
  store double %440, ptr %441, align 8, !tbaa !11
  %442 = load double, ptr %59, align 8, !tbaa !11
  %443 = getelementptr inbounds [8 x double], ptr %27, i64 0, i64 6
  store double %442, ptr %443, align 16, !tbaa !11
  %444 = load double, ptr %60, align 8, !tbaa !11
  %445 = getelementptr inbounds [8 x double], ptr %27, i64 0, i64 7
  store double %444, ptr %445, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 72, ptr %97) #9
  invoke void @_ZN3TNT7Array2DIdEC2Eii(ptr noundef nonnull align 8 dereferenceable(72) %97, i32 noundef 7, i32 noundef 7)
          to label %446 unwind label %564

446:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 72, ptr %98) #9
  invoke void @_ZN3TNT7Array2DIdEC2Eii(ptr noundef nonnull align 8 dereferenceable(72) %98, i32 noundef 7, i32 noundef 7)
          to label %447 unwind label %568

447:                                              ; preds = %446
  call void @llvm.lifetime.start.p0(i64 72, ptr %99) #9
  invoke void @_ZN3TNT7Array2DIdEC2Eii(ptr noundef nonnull align 8 dereferenceable(72) %99, i32 noundef 7, i32 noundef 7)
          to label %448 unwind label %572

448:                                              ; preds = %447
  call void @llvm.lifetime.start.p0(i64 72, ptr %100) #9
  invoke void @_ZN3TNT7Array2DIdEC2Eii(ptr noundef nonnull align 8 dereferenceable(72) %100, i32 noundef 7, i32 noundef 7)
          to label %449 unwind label %576

449:                                              ; preds = %448
  %450 = load double, ptr %28, align 8, !tbaa !11
  store double %450, ptr %71, align 8, !tbaa !11
  %451 = load double, ptr %71, align 8, !tbaa !11
  %452 = fdiv double 1.000000e+00, %451
  store double %452, ptr %73, align 8, !tbaa !11
  %453 = load double, ptr %71, align 8, !tbaa !11
  %454 = call double @sqrt(double noundef %453) #9
  %455 = fdiv double 1.000000e+00, %454
  store double %455, ptr %74, align 8, !tbaa !11
  %456 = load double, ptr %29, align 8, !tbaa !11
  store double %456, ptr %75, align 8, !tbaa !11
  %457 = load double, ptr %30, align 8, !tbaa !11
  store double %457, ptr %76, align 8, !tbaa !11
  %458 = load double, ptr %31, align 8, !tbaa !11
  store double %458, ptr %77, align 8, !tbaa !11
  %459 = load double, ptr %33, align 8, !tbaa !11
  %460 = load double, ptr %73, align 8, !tbaa !11
  %461 = call double @sqrt(double noundef %460) #9
  %462 = fmul double %459, %461
  store double %462, ptr %78, align 8, !tbaa !11
  %463 = load double, ptr %34, align 8, !tbaa !11
  %464 = load double, ptr %73, align 8, !tbaa !11
  %465 = call double @sqrt(double noundef %464) #9
  %466 = fmul double %463, %465
  store double %466, ptr %79, align 8, !tbaa !11
  %467 = load double, ptr %35, align 8, !tbaa !11
  %468 = load double, ptr %73, align 8, !tbaa !11
  %469 = call double @sqrt(double noundef %468) #9
  %470 = fmul double %467, %469
  store double %470, ptr %80, align 8, !tbaa !11
  %471 = load double, ptr %78, align 8, !tbaa !11
  %472 = load double, ptr %78, align 8, !tbaa !11
  %473 = load double, ptr %79, align 8, !tbaa !11
  %474 = load double, ptr %79, align 8, !tbaa !11
  %475 = fmul double %473, %474
  %476 = call double @llvm.fmuladd.f64(double %471, double %472, double %475)
  %477 = load double, ptr %80, align 8, !tbaa !11
  %478 = load double, ptr %80, align 8, !tbaa !11
  %479 = call double @llvm.fmuladd.f64(double %477, double %478, double %476)
  store double %479, ptr %50, align 8, !tbaa !11
  %480 = load double, ptr %75, align 8, !tbaa !11
  %481 = load double, ptr %75, align 8, !tbaa !11
  %482 = load double, ptr %76, align 8, !tbaa !11
  %483 = load double, ptr %76, align 8, !tbaa !11
  %484 = fmul double %482, %483
  %485 = call double @llvm.fmuladd.f64(double %480, double %481, double %484)
  %486 = load double, ptr %77, align 8, !tbaa !11
  %487 = load double, ptr %77, align 8, !tbaa !11
  %488 = call double @llvm.fmuladd.f64(double %486, double %487, double %485)
  store double %488, ptr %85, align 8, !tbaa !11
  %489 = load double, ptr %32, align 8, !tbaa !11
  store double %489, ptr %81, align 8, !tbaa !11
  %490 = load double, ptr %78, align 8, !tbaa !11
  %491 = load double, ptr %78, align 8, !tbaa !11
  %492 = fmul double %490, %491
  %493 = call double @llvm.fabs.f64(double %492)
  store double %493, ptr %47, align 8, !tbaa !11
  %494 = load double, ptr %47, align 8, !tbaa !11
  %495 = call double @sqrt(double noundef %494) #9
  store double %495, ptr %46, align 8, !tbaa !11
  %496 = load double, ptr %18, align 8, !tbaa !11
  %497 = load double, ptr %81, align 8, !tbaa !11
  %498 = fmul double %496, %497
  %499 = load double, ptr %73, align 8, !tbaa !11
  %500 = fmul double %498, %499
  store double %500, ptr %82, align 8, !tbaa !11
  %501 = load double, ptr %82, align 8, !tbaa !11
  %502 = load double, ptr %50, align 8, !tbaa !11
  %503 = fadd double %501, %502
  store double %503, ptr %84, align 8, !tbaa !11
  %504 = load double, ptr %84, align 8, !tbaa !11
  %505 = load double, ptr %84, align 8, !tbaa !11
  %506 = load double, ptr %82, align 8, !tbaa !11
  %507 = fmul double 4.000000e+00, %506
  %508 = load double, ptr %47, align 8, !tbaa !11
  %509 = fmul double %507, %508
  %510 = fneg double %509
  %511 = call double @llvm.fmuladd.f64(double %504, double %505, double %510)
  %512 = call double @sqrt(double noundef %511) #9
  store double %512, ptr %83, align 8, !tbaa !11
  %513 = load double, ptr %83, align 8, !tbaa !11
  %514 = call double @llvm.fabs.f64(double %513)
  store double %514, ptr %83, align 8, !tbaa !11
  %515 = load double, ptr %84, align 8, !tbaa !11
  %516 = load double, ptr %83, align 8, !tbaa !11
  %517 = fsub double %515, %516
  %518 = fmul double 5.000000e-01, %517
  store double %518, ptr %45, align 8, !tbaa !11
  %519 = load double, ptr %49, align 8, !tbaa !11
  %520 = fcmp olt double %519, 0.000000e+00
  br i1 %520, label %521, label %586

521:                                              ; preds = %449
  %522 = load double, ptr %49, align 8, !tbaa !11
  %523 = fcmp olt double %522, -1.000000e-10
  br i1 %523, label %524, label %584

524:                                              ; preds = %521
  %525 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.2)
          to label %526 unwind label %580

526:                                              ; preds = %524
  %527 = load double, ptr %45, align 8, !tbaa !11
  %528 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %525, double noundef %527)
          to label %529 unwind label %580

529:                                              ; preds = %526
  %530 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %528, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %531 unwind label %580

531:                                              ; preds = %529
  %532 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.3)
          to label %533 unwind label %580

533:                                              ; preds = %531
  %534 = load double, ptr %82, align 8, !tbaa !11
  %535 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %532, double noundef %534)
          to label %536 unwind label %580

536:                                              ; preds = %533
  %537 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %535, ptr noundef @.str.4)
          to label %538 unwind label %580

538:                                              ; preds = %536
  %539 = load double, ptr %47, align 8, !tbaa !11
  %540 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %537, double noundef %539)
          to label %541 unwind label %580

541:                                              ; preds = %538
  %542 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %540, ptr noundef @.str.5)
          to label %543 unwind label %580

543:                                              ; preds = %541
  %544 = load double, ptr %50, align 8, !tbaa !11
  %545 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %542, double noundef %544)
          to label %546 unwind label %580

546:                                              ; preds = %543
  %547 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %545, ptr noundef @.str.6)
          to label %548 unwind label %580

548:                                              ; preds = %546
  %549 = load double, ptr %78, align 8, !tbaa !11
  %550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %547, double noundef %549)
          to label %551 unwind label %580

551:                                              ; preds = %548
  %552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %550, ptr noundef @.str.7)
          to label %553 unwind label %580

553:                                              ; preds = %551
  %554 = load double, ptr %79, align 8, !tbaa !11
  %555 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %552, double noundef %554)
          to label %556 unwind label %580

556:                                              ; preds = %553
  %557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %555, ptr noundef @.str.8)
          to label %558 unwind label %580

558:                                              ; preds = %556
  %559 = load double, ptr %80, align 8, !tbaa !11
  %560 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %557, double noundef %559)
          to label %561 unwind label %580

561:                                              ; preds = %558
  %562 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %560, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %563 unwind label %580

563:                                              ; preds = %561
  store i32 1, ptr %9, align 4
  store i32 1, ptr %101, align 4
  br label %1269

564:                                              ; preds = %405
  %565 = landingpad { ptr, i32 }
          cleanup
  %566 = extractvalue { ptr, i32 } %565, 0
  store ptr %566, ptr %95, align 8
  %567 = extractvalue { ptr, i32 } %565, 1
  store i32 %567, ptr %96, align 4
  br label %1275

568:                                              ; preds = %446
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %95, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %96, align 4
  br label %1274

572:                                              ; preds = %447
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %95, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %96, align 4
  br label %1273

576:                                              ; preds = %448
  %577 = landingpad { ptr, i32 }
          cleanup
  %578 = extractvalue { ptr, i32 } %577, 0
  store ptr %578, ptr %95, align 8
  %579 = extractvalue { ptr, i32 } %577, 1
  store i32 %579, ptr %96, align 4
  br label %1272

580:                                              ; preds = %561, %558, %556, %553, %551, %548, %546, %543, %541, %538, %536, %533, %531, %529, %526, %524
  %581 = landingpad { ptr, i32 }
          cleanup
  %582 = extractvalue { ptr, i32 } %581, 0
  store ptr %582, ptr %95, align 8
  %583 = extractvalue { ptr, i32 } %581, 1
  store i32 %583, ptr %96, align 4
  br label %1271

584:                                              ; preds = %521
  store double 0.000000e+00, ptr %45, align 8, !tbaa !11
  br label %585

585:                                              ; preds = %584
  br label %586

586:                                              ; preds = %585, %449
  %587 = load double, ptr %84, align 8, !tbaa !11
  %588 = load double, ptr %83, align 8, !tbaa !11
  %589 = fadd double %587, %588
  %590 = fmul double 5.000000e-01, %589
  store double %590, ptr %49, align 8, !tbaa !11
  %591 = load double, ptr %45, align 8, !tbaa !11
  %592 = call double @sqrt(double noundef %591) #9
  store double %592, ptr %44, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #9
  %593 = load double, ptr %49, align 8, !tbaa !11
  %594 = call double @sqrt(double noundef %593) #9
  store double %594, ptr %102, align 8, !tbaa !11
  %595 = load double, ptr %102, align 8, !tbaa !11
  %596 = invoke noundef zeroext i1 @_ZSt5isnand(double noundef %595)
          to label %597 unwind label %603

597:                                              ; preds = %586
  br i1 %596, label %598, label %607

598:                                              ; preds = %597
  %599 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.9)
          to label %600 unwind label %603

600:                                              ; preds = %598
  %601 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %599, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %602 unwind label %603

602:                                              ; preds = %600
  call void @exit(i32 noundef 0) #10
  unreachable

603:                                              ; preds = %792, %789, %787, %784, %782, %779, %777, %774, %772, %769, %767, %764, %762, %759, %757, %754, %752, %749, %747, %745, %741, %738, %736, %728, %723, %720, %718, %715, %713, %710, %708, %705, %703, %700, %698, %695, %693, %691, %688, %686, %600, %598, %586
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %95, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %96, align 4
  br label %1268

607:                                              ; preds = %597
  %608 = load double, ptr %53, align 8, !tbaa !11
  store double %608, ptr %71, align 8, !tbaa !11
  %609 = load double, ptr %71, align 8, !tbaa !11
  %610 = fdiv double 1.000000e+00, %609
  store double %610, ptr %73, align 8, !tbaa !11
  %611 = load double, ptr %71, align 8, !tbaa !11
  %612 = call double @sqrt(double noundef %611) #9
  %613 = fdiv double 1.000000e+00, %612
  store double %613, ptr %74, align 8, !tbaa !11
  %614 = load double, ptr %54, align 8, !tbaa !11
  store double %614, ptr %75, align 8, !tbaa !11
  %615 = load double, ptr %55, align 8, !tbaa !11
  store double %615, ptr %76, align 8, !tbaa !11
  %616 = load double, ptr %56, align 8, !tbaa !11
  store double %616, ptr %77, align 8, !tbaa !11
  %617 = load double, ptr %58, align 8, !tbaa !11
  %618 = load double, ptr %73, align 8, !tbaa !11
  %619 = call double @sqrt(double noundef %618) #9
  %620 = fmul double %617, %619
  store double %620, ptr %78, align 8, !tbaa !11
  %621 = load double, ptr %59, align 8, !tbaa !11
  %622 = load double, ptr %73, align 8, !tbaa !11
  %623 = call double @sqrt(double noundef %622) #9
  %624 = fmul double %621, %623
  store double %624, ptr %79, align 8, !tbaa !11
  %625 = load double, ptr %60, align 8, !tbaa !11
  %626 = load double, ptr %73, align 8, !tbaa !11
  %627 = call double @sqrt(double noundef %626) #9
  %628 = fmul double %625, %627
  store double %628, ptr %80, align 8, !tbaa !11
  %629 = load double, ptr %78, align 8, !tbaa !11
  %630 = load double, ptr %78, align 8, !tbaa !11
  %631 = load double, ptr %79, align 8, !tbaa !11
  %632 = load double, ptr %79, align 8, !tbaa !11
  %633 = fmul double %631, %632
  %634 = call double @llvm.fmuladd.f64(double %629, double %630, double %633)
  %635 = load double, ptr %80, align 8, !tbaa !11
  %636 = load double, ptr %80, align 8, !tbaa !11
  %637 = call double @llvm.fmuladd.f64(double %635, double %636, double %634)
  store double %637, ptr %50, align 8, !tbaa !11
  %638 = load double, ptr %75, align 8, !tbaa !11
  %639 = load double, ptr %75, align 8, !tbaa !11
  %640 = load double, ptr %76, align 8, !tbaa !11
  %641 = load double, ptr %76, align 8, !tbaa !11
  %642 = fmul double %640, %641
  %643 = call double @llvm.fmuladd.f64(double %638, double %639, double %642)
  %644 = load double, ptr %77, align 8, !tbaa !11
  %645 = load double, ptr %77, align 8, !tbaa !11
  %646 = call double @llvm.fmuladd.f64(double %644, double %645, double %643)
  store double %646, ptr %85, align 8, !tbaa !11
  %647 = load double, ptr %57, align 8, !tbaa !11
  store double %647, ptr %81, align 8, !tbaa !11
  %648 = load double, ptr %78, align 8, !tbaa !11
  %649 = load double, ptr %78, align 8, !tbaa !11
  %650 = fmul double %648, %649
  %651 = call double @llvm.fabs.f64(double %650)
  store double %651, ptr %47, align 8, !tbaa !11
  %652 = load double, ptr %47, align 8, !tbaa !11
  %653 = call double @sqrt(double noundef %652) #9
  store double %653, ptr %46, align 8, !tbaa !11
  %654 = load double, ptr %18, align 8, !tbaa !11
  %655 = load double, ptr %81, align 8, !tbaa !11
  %656 = fmul double %654, %655
  %657 = load double, ptr %73, align 8, !tbaa !11
  %658 = fmul double %656, %657
  store double %658, ptr %82, align 8, !tbaa !11
  %659 = load double, ptr %82, align 8, !tbaa !11
  %660 = load double, ptr %50, align 8, !tbaa !11
  %661 = fadd double %659, %660
  store double %661, ptr %84, align 8, !tbaa !11
  %662 = load double, ptr %84, align 8, !tbaa !11
  %663 = load double, ptr %84, align 8, !tbaa !11
  %664 = load double, ptr %82, align 8, !tbaa !11
  %665 = fmul double 4.000000e+00, %664
  %666 = load double, ptr %47, align 8, !tbaa !11
  %667 = fmul double %665, %666
  %668 = fneg double %667
  %669 = call double @llvm.fmuladd.f64(double %662, double %663, double %668)
  %670 = call double @sqrt(double noundef %669) #9
  store double %670, ptr %83, align 8, !tbaa !11
  %671 = load double, ptr %83, align 8, !tbaa !11
  %672 = call double @llvm.fabs.f64(double %671)
  store double %672, ptr %83, align 8, !tbaa !11
  %673 = load double, ptr %84, align 8, !tbaa !11
  %674 = load double, ptr %83, align 8, !tbaa !11
  %675 = fsub double %673, %674
  %676 = fmul double 5.000000e-01, %675
  store double %676, ptr %45, align 8, !tbaa !11
  %677 = load double, ptr %84, align 8, !tbaa !11
  %678 = load double, ptr %83, align 8, !tbaa !11
  %679 = fadd double %677, %678
  %680 = fmul double 5.000000e-01, %679
  store double %680, ptr %49, align 8, !tbaa !11
  %681 = load double, ptr %49, align 8, !tbaa !11
  %682 = fcmp olt double %681, 0.000000e+00
  br i1 %682, label %683, label %728

683:                                              ; preds = %607
  %684 = load double, ptr %49, align 8, !tbaa !11
  %685 = fcmp olt double %684, -1.000000e-10
  br i1 %685, label %686, label %726

686:                                              ; preds = %683
  %687 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.2)
          to label %688 unwind label %603

688:                                              ; preds = %686
  %689 = load double, ptr %45, align 8, !tbaa !11
  %690 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %687, double noundef %689)
          to label %691 unwind label %603

691:                                              ; preds = %688
  %692 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %690, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %693 unwind label %603

693:                                              ; preds = %691
  %694 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.3)
          to label %695 unwind label %603

695:                                              ; preds = %693
  %696 = load double, ptr %82, align 8, !tbaa !11
  %697 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %694, double noundef %696)
          to label %698 unwind label %603

698:                                              ; preds = %695
  %699 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %697, ptr noundef @.str.4)
          to label %700 unwind label %603

700:                                              ; preds = %698
  %701 = load double, ptr %47, align 8, !tbaa !11
  %702 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %699, double noundef %701)
          to label %703 unwind label %603

703:                                              ; preds = %700
  %704 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %702, ptr noundef @.str.5)
          to label %705 unwind label %603

705:                                              ; preds = %703
  %706 = load double, ptr %50, align 8, !tbaa !11
  %707 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %704, double noundef %706)
          to label %708 unwind label %603

708:                                              ; preds = %705
  %709 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %707, ptr noundef @.str.6)
          to label %710 unwind label %603

710:                                              ; preds = %708
  %711 = load double, ptr %78, align 8, !tbaa !11
  %712 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %709, double noundef %711)
          to label %713 unwind label %603

713:                                              ; preds = %710
  %714 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %712, ptr noundef @.str.7)
          to label %715 unwind label %603

715:                                              ; preds = %713
  %716 = load double, ptr %79, align 8, !tbaa !11
  %717 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %714, double noundef %716)
          to label %718 unwind label %603

718:                                              ; preds = %715
  %719 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %717, ptr noundef @.str.8)
          to label %720 unwind label %603

720:                                              ; preds = %718
  %721 = load double, ptr %80, align 8, !tbaa !11
  %722 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %719, double noundef %721)
          to label %723 unwind label %603

723:                                              ; preds = %720
  %724 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %722, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %725 unwind label %603

725:                                              ; preds = %723
  store i32 1, ptr %9, align 4
  store i32 1, ptr %101, align 4
  br label %1267

726:                                              ; preds = %683
  store double 0.000000e+00, ptr %45, align 8, !tbaa !11
  br label %727

727:                                              ; preds = %726
  br label %728

728:                                              ; preds = %727, %607
  %729 = load double, ptr %45, align 8, !tbaa !11
  %730 = call double @sqrt(double noundef %729) #9
  store double %730, ptr %44, align 8, !tbaa !11
  %731 = load double, ptr %49, align 8, !tbaa !11
  %732 = call double @sqrt(double noundef %731) #9
  store double %732, ptr %48, align 8, !tbaa !11
  %733 = load double, ptr %48, align 8, !tbaa !11
  %734 = invoke noundef zeroext i1 @_ZSt5isnand(double noundef %733)
          to label %735 unwind label %603

735:                                              ; preds = %728
  br i1 %734, label %736, label %741

736:                                              ; preds = %735
  %737 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.9)
          to label %738 unwind label %603

738:                                              ; preds = %736
  %739 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %737, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %740 unwind label %603

740:                                              ; preds = %738
  call void @exit(i32 noundef 0) #10
  unreachable

741:                                              ; preds = %735
  %742 = load double, ptr %48, align 8, !tbaa !11
  %743 = invoke noundef zeroext i1 @_ZSt5isinfd(double noundef %742)
          to label %744 unwind label %603

744:                                              ; preds = %741
  br i1 %743, label %745, label %795

745:                                              ; preds = %744
  %746 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.10)
          to label %747 unwind label %603

747:                                              ; preds = %745
  %748 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %746, ptr noundef @.str.11)
          to label %749 unwind label %603

749:                                              ; preds = %747
  %750 = load double, ptr %57, align 8, !tbaa !11
  %751 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %748, double noundef %750)
          to label %752 unwind label %603

752:                                              ; preds = %749
  %753 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %751, ptr noundef @.str.3)
          to label %754 unwind label %603

754:                                              ; preds = %752
  %755 = load double, ptr %82, align 8, !tbaa !11
  %756 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %753, double noundef %755)
          to label %757 unwind label %603

757:                                              ; preds = %754
  %758 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %756, ptr noundef @.str.4)
          to label %759 unwind label %603

759:                                              ; preds = %757
  %760 = load double, ptr %47, align 8, !tbaa !11
  %761 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %758, double noundef %760)
          to label %762 unwind label %603

762:                                              ; preds = %759
  %763 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %761, ptr noundef @.str.5)
          to label %764 unwind label %603

764:                                              ; preds = %762
  %765 = load double, ptr %50, align 8, !tbaa !11
  %766 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %763, double noundef %765)
          to label %767 unwind label %603

767:                                              ; preds = %764
  %768 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %766, ptr noundef @.str.12)
          to label %769 unwind label %603

769:                                              ; preds = %767
  %770 = load double, ptr %33, align 8, !tbaa !11
  %771 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %768, double noundef %770)
          to label %772 unwind label %603

772:                                              ; preds = %769
  %773 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %771, ptr noundef @.str.13)
          to label %774 unwind label %603

774:                                              ; preds = %772
  %775 = load double, ptr %41, align 8, !tbaa !11
  %776 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %773, double noundef %775)
          to label %777 unwind label %603

777:                                              ; preds = %774
  %778 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %776, ptr noundef @.str.14)
          to label %779 unwind label %603

779:                                              ; preds = %777
  %780 = load double, ptr %58, align 8, !tbaa !11
  %781 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %778, double noundef %780)
          to label %782 unwind label %603

782:                                              ; preds = %779
  %783 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %781, ptr noundef @.str.15)
          to label %784 unwind label %603

784:                                              ; preds = %782
  %785 = load double, ptr %59, align 8, !tbaa !11
  %786 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %783, double noundef %785)
          to label %787 unwind label %603

787:                                              ; preds = %784
  %788 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %786, ptr noundef @.str.16)
          to label %789 unwind label %603

789:                                              ; preds = %787
  %790 = load double, ptr %60, align 8, !tbaa !11
  %791 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %788, double noundef %790)
          to label %792 unwind label %603

792:                                              ; preds = %789
  %793 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %791, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %794 unwind label %603

794:                                              ; preds = %792
  call void @exit(i32 noundef 0) #10
  unreachable

795:                                              ; preds = %744
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #9
  %796 = load double, ptr %54, align 8, !tbaa !11
  %797 = load double, ptr %48, align 8, !tbaa !11
  %798 = fadd double %796, %797
  %799 = call double @llvm.fabs.f64(double %798)
  store double %799, ptr %104, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #9
  %800 = load double, ptr %54, align 8, !tbaa !11
  %801 = load double, ptr %48, align 8, !tbaa !11
  %802 = fsub double %800, %801
  %803 = call double @llvm.fabs.f64(double %802)
  store double %803, ptr %105, align 8, !tbaa !11
  %804 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull align 8 dereferenceable(8) %105)
          to label %805 unwind label %1257

805:                                              ; preds = %795
  %806 = load double, ptr %804, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #9
  store double %806, ptr %103, align 8, !tbaa !11
  %807 = load ptr, ptr %10, align 8, !tbaa !5
  %808 = getelementptr inbounds double, ptr %807, i64 0
  %809 = load double, ptr %808, align 8, !tbaa !11
  store double %809, ptr %72, align 8, !tbaa !11
  %810 = load ptr, ptr %10, align 8, !tbaa !5
  %811 = getelementptr inbounds double, ptr %810, i64 1
  %812 = load double, ptr %811, align 8, !tbaa !11
  store double %812, ptr %75, align 8, !tbaa !11
  %813 = load ptr, ptr %10, align 8, !tbaa !5
  %814 = getelementptr inbounds double, ptr %813, i64 2
  %815 = load double, ptr %814, align 8, !tbaa !11
  store double %815, ptr %76, align 8, !tbaa !11
  %816 = load ptr, ptr %10, align 8, !tbaa !5
  %817 = getelementptr inbounds double, ptr %816, i64 3
  %818 = load double, ptr %817, align 8, !tbaa !11
  store double %818, ptr %77, align 8, !tbaa !11
  %819 = load ptr, ptr %10, align 8, !tbaa !5
  %820 = getelementptr inbounds double, ptr %819, i64 4
  %821 = load double, ptr %820, align 8, !tbaa !11
  store double %821, ptr %81, align 8, !tbaa !11
  %822 = load ptr, ptr %10, align 8, !tbaa !5
  %823 = getelementptr inbounds double, ptr %822, i64 5
  %824 = load double, ptr %823, align 8, !tbaa !11
  store double %824, ptr %78, align 8, !tbaa !11
  %825 = load ptr, ptr %10, align 8, !tbaa !5
  %826 = getelementptr inbounds double, ptr %825, i64 6
  %827 = load double, ptr %826, align 8, !tbaa !11
  store double %827, ptr %79, align 8, !tbaa !11
  %828 = load ptr, ptr %10, align 8, !tbaa !5
  %829 = getelementptr inbounds double, ptr %828, i64 7
  %830 = load double, ptr %829, align 8, !tbaa !11
  store double %830, ptr %80, align 8, !tbaa !11
  %831 = load double, ptr %75, align 8, !tbaa !11
  %832 = load double, ptr %75, align 8, !tbaa !11
  %833 = load double, ptr %76, align 8, !tbaa !11
  %834 = load double, ptr %76, align 8, !tbaa !11
  %835 = fmul double %833, %834
  %836 = call double @llvm.fmuladd.f64(double %831, double %832, double %835)
  %837 = load double, ptr %77, align 8, !tbaa !11
  %838 = load double, ptr %77, align 8, !tbaa !11
  %839 = call double @llvm.fmuladd.f64(double %837, double %838, double %836)
  store double %839, ptr %90, align 8, !tbaa !11
  %840 = load double, ptr %72, align 8, !tbaa !11
  %841 = fmul double 5.000000e-01, %840
  %842 = load double, ptr %90, align 8, !tbaa !11
  %843 = fmul double %841, %842
  store double %843, ptr %86, align 8, !tbaa !11
  %844 = load double, ptr %78, align 8, !tbaa !11
  %845 = load double, ptr %78, align 8, !tbaa !11
  %846 = load double, ptr %79, align 8, !tbaa !11
  %847 = load double, ptr %79, align 8, !tbaa !11
  %848 = fmul double %846, %847
  %849 = call double @llvm.fmuladd.f64(double %844, double %845, double %848)
  %850 = load double, ptr %80, align 8, !tbaa !11
  %851 = load double, ptr %80, align 8, !tbaa !11
  %852 = call double @llvm.fmuladd.f64(double %850, double %851, double %849)
  store double %852, ptr %50, align 8, !tbaa !11
  %853 = load double, ptr %50, align 8, !tbaa !11
  %854 = fmul double 5.000000e-01, %853
  store double %854, ptr %87, align 8, !tbaa !11
  %855 = load double, ptr %81, align 8, !tbaa !11
  %856 = load double, ptr %52, align 8, !tbaa !11
  %857 = fmul double %855, %856
  store double %857, ptr %88, align 8, !tbaa !11
  %858 = load double, ptr %86, align 8, !tbaa !11
  %859 = load double, ptr %87, align 8, !tbaa !11
  %860 = fadd double %858, %859
  %861 = load double, ptr %88, align 8, !tbaa !11
  %862 = fadd double %860, %861
  store double %862, ptr %89, align 8, !tbaa !11
  %863 = load double, ptr %75, align 8, !tbaa !11
  %864 = load double, ptr %78, align 8, !tbaa !11
  %865 = load double, ptr %76, align 8, !tbaa !11
  %866 = load double, ptr %79, align 8, !tbaa !11
  %867 = fmul double %865, %866
  %868 = call double @llvm.fmuladd.f64(double %863, double %864, double %867)
  %869 = load double, ptr %77, align 8, !tbaa !11
  %870 = load double, ptr %80, align 8, !tbaa !11
  %871 = call double @llvm.fmuladd.f64(double %869, double %870, double %868)
  store double %871, ptr %91, align 8, !tbaa !11
  %872 = load double, ptr %72, align 8, !tbaa !11
  %873 = load double, ptr %75, align 8, !tbaa !11
  %874 = fmul double %872, %873
  %875 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 0
  store double %874, ptr %875, align 16, !tbaa !11
  %876 = load double, ptr %72, align 8, !tbaa !11
  %877 = load double, ptr %75, align 8, !tbaa !11
  %878 = fmul double %876, %877
  %879 = load double, ptr %75, align 8, !tbaa !11
  %880 = load double, ptr %81, align 8, !tbaa !11
  %881 = call double @llvm.fmuladd.f64(double %878, double %879, double %880)
  %882 = load double, ptr %87, align 8, !tbaa !11
  %883 = fadd double %881, %882
  %884 = load double, ptr %78, align 8, !tbaa !11
  %885 = load double, ptr %78, align 8, !tbaa !11
  %886 = fneg double %884
  %887 = call double @llvm.fmuladd.f64(double %886, double %885, double %883)
  %888 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 1
  store double %887, ptr %888, align 8, !tbaa !11
  %889 = load double, ptr %72, align 8, !tbaa !11
  %890 = load double, ptr %75, align 8, !tbaa !11
  %891 = fmul double %889, %890
  %892 = load double, ptr %76, align 8, !tbaa !11
  %893 = load double, ptr %78, align 8, !tbaa !11
  %894 = load double, ptr %79, align 8, !tbaa !11
  %895 = fmul double %893, %894
  %896 = fneg double %895
  %897 = call double @llvm.fmuladd.f64(double %891, double %892, double %896)
  %898 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 2
  store double %897, ptr %898, align 16, !tbaa !11
  %899 = load double, ptr %72, align 8, !tbaa !11
  %900 = load double, ptr %75, align 8, !tbaa !11
  %901 = fmul double %899, %900
  %902 = load double, ptr %77, align 8, !tbaa !11
  %903 = load double, ptr %78, align 8, !tbaa !11
  %904 = load double, ptr %80, align 8, !tbaa !11
  %905 = fmul double %903, %904
  %906 = fneg double %905
  %907 = call double @llvm.fmuladd.f64(double %901, double %902, double %906)
  %908 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 3
  store double %907, ptr %908, align 8, !tbaa !11
  %909 = load double, ptr %89, align 8, !tbaa !11
  %910 = load double, ptr %81, align 8, !tbaa !11
  %911 = fadd double %909, %910
  %912 = load double, ptr %87, align 8, !tbaa !11
  %913 = fadd double %911, %912
  %914 = load double, ptr %75, align 8, !tbaa !11
  %915 = load double, ptr %78, align 8, !tbaa !11
  %916 = load double, ptr %91, align 8, !tbaa !11
  %917 = fmul double %915, %916
  %918 = fneg double %917
  %919 = call double @llvm.fmuladd.f64(double %913, double %914, double %918)
  %920 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 4
  store double %919, ptr %920, align 16, !tbaa !11
  %921 = load double, ptr %75, align 8, !tbaa !11
  %922 = load double, ptr %79, align 8, !tbaa !11
  %923 = load double, ptr %76, align 8, !tbaa !11
  %924 = load double, ptr %78, align 8, !tbaa !11
  %925 = fmul double %923, %924
  %926 = fneg double %925
  %927 = call double @llvm.fmuladd.f64(double %921, double %922, double %926)
  %928 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 5
  store double %927, ptr %928, align 8, !tbaa !11
  %929 = load double, ptr %75, align 8, !tbaa !11
  %930 = load double, ptr %80, align 8, !tbaa !11
  %931 = load double, ptr %77, align 8, !tbaa !11
  %932 = load double, ptr %78, align 8, !tbaa !11
  %933 = fmul double %931, %932
  %934 = fneg double %933
  %935 = call double @llvm.fmuladd.f64(double %929, double %930, double %934)
  %936 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 6
  store double %935, ptr %936, align 16, !tbaa !11
  %937 = load double, ptr %72, align 8, !tbaa !11
  %938 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 0
  store double %937, ptr %938, align 16, !tbaa !11
  %939 = load double, ptr %72, align 8, !tbaa !11
  %940 = load double, ptr %75, align 8, !tbaa !11
  %941 = fmul double %939, %940
  %942 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 1
  store double %941, ptr %942, align 8, !tbaa !11
  %943 = load double, ptr %72, align 8, !tbaa !11
  %944 = load double, ptr %76, align 8, !tbaa !11
  %945 = fmul double %943, %944
  %946 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 2
  store double %945, ptr %946, align 16, !tbaa !11
  %947 = load double, ptr %72, align 8, !tbaa !11
  %948 = load double, ptr %77, align 8, !tbaa !11
  %949 = fmul double %947, %948
  %950 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 3
  store double %949, ptr %950, align 8, !tbaa !11
  %951 = load double, ptr %89, align 8, !tbaa !11
  %952 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 4
  store double %951, ptr %952, align 16, !tbaa !11
  %953 = load double, ptr %78, align 8, !tbaa !11
  %954 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 5
  store double %953, ptr %954, align 8, !tbaa !11
  %955 = load double, ptr %79, align 8, !tbaa !11
  %956 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 6
  store double %955, ptr %956, align 16, !tbaa !11
  %957 = load double, ptr %80, align 8, !tbaa !11
  %958 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 7
  store double %957, ptr %958, align 8, !tbaa !11
  %959 = load ptr, ptr %11, align 8, !tbaa !5
  %960 = getelementptr inbounds double, ptr %959, i64 0
  %961 = load double, ptr %960, align 8, !tbaa !11
  store double %961, ptr %72, align 8, !tbaa !11
  %962 = load ptr, ptr %11, align 8, !tbaa !5
  %963 = getelementptr inbounds double, ptr %962, i64 1
  %964 = load double, ptr %963, align 8, !tbaa !11
  store double %964, ptr %75, align 8, !tbaa !11
  %965 = load ptr, ptr %11, align 8, !tbaa !5
  %966 = getelementptr inbounds double, ptr %965, i64 2
  %967 = load double, ptr %966, align 8, !tbaa !11
  store double %967, ptr %76, align 8, !tbaa !11
  %968 = load ptr, ptr %11, align 8, !tbaa !5
  %969 = getelementptr inbounds double, ptr %968, i64 3
  %970 = load double, ptr %969, align 8, !tbaa !11
  store double %970, ptr %77, align 8, !tbaa !11
  %971 = load ptr, ptr %11, align 8, !tbaa !5
  %972 = getelementptr inbounds double, ptr %971, i64 4
  %973 = load double, ptr %972, align 8, !tbaa !11
  store double %973, ptr %81, align 8, !tbaa !11
  %974 = load ptr, ptr %11, align 8, !tbaa !5
  %975 = getelementptr inbounds double, ptr %974, i64 5
  %976 = load double, ptr %975, align 8, !tbaa !11
  store double %976, ptr %78, align 8, !tbaa !11
  %977 = load ptr, ptr %11, align 8, !tbaa !5
  %978 = getelementptr inbounds double, ptr %977, i64 6
  %979 = load double, ptr %978, align 8, !tbaa !11
  store double %979, ptr %79, align 8, !tbaa !11
  %980 = load ptr, ptr %11, align 8, !tbaa !5
  %981 = getelementptr inbounds double, ptr %980, i64 7
  %982 = load double, ptr %981, align 8, !tbaa !11
  store double %982, ptr %80, align 8, !tbaa !11
  %983 = load double, ptr %75, align 8, !tbaa !11
  %984 = load double, ptr %75, align 8, !tbaa !11
  %985 = load double, ptr %76, align 8, !tbaa !11
  %986 = load double, ptr %76, align 8, !tbaa !11
  %987 = fmul double %985, %986
  %988 = call double @llvm.fmuladd.f64(double %983, double %984, double %987)
  %989 = load double, ptr %77, align 8, !tbaa !11
  %990 = load double, ptr %77, align 8, !tbaa !11
  %991 = call double @llvm.fmuladd.f64(double %989, double %990, double %988)
  store double %991, ptr %90, align 8, !tbaa !11
  %992 = load double, ptr %72, align 8, !tbaa !11
  %993 = fmul double 5.000000e-01, %992
  %994 = load double, ptr %90, align 8, !tbaa !11
  %995 = fmul double %993, %994
  store double %995, ptr %86, align 8, !tbaa !11
  %996 = load double, ptr %78, align 8, !tbaa !11
  %997 = load double, ptr %78, align 8, !tbaa !11
  %998 = load double, ptr %79, align 8, !tbaa !11
  %999 = load double, ptr %79, align 8, !tbaa !11
  %1000 = fmul double %998, %999
  %1001 = call double @llvm.fmuladd.f64(double %996, double %997, double %1000)
  %1002 = load double, ptr %80, align 8, !tbaa !11
  %1003 = load double, ptr %80, align 8, !tbaa !11
  %1004 = call double @llvm.fmuladd.f64(double %1002, double %1003, double %1001)
  store double %1004, ptr %50, align 8, !tbaa !11
  %1005 = load double, ptr %50, align 8, !tbaa !11
  %1006 = fmul double 5.000000e-01, %1005
  store double %1006, ptr %87, align 8, !tbaa !11
  %1007 = load double, ptr %81, align 8, !tbaa !11
  %1008 = load double, ptr %52, align 8, !tbaa !11
  %1009 = fmul double %1007, %1008
  store double %1009, ptr %88, align 8, !tbaa !11
  %1010 = load double, ptr %86, align 8, !tbaa !11
  %1011 = load double, ptr %87, align 8, !tbaa !11
  %1012 = fadd double %1010, %1011
  %1013 = load double, ptr %88, align 8, !tbaa !11
  %1014 = fadd double %1012, %1013
  store double %1014, ptr %89, align 8, !tbaa !11
  %1015 = load double, ptr %75, align 8, !tbaa !11
  %1016 = load double, ptr %78, align 8, !tbaa !11
  %1017 = load double, ptr %76, align 8, !tbaa !11
  %1018 = load double, ptr %79, align 8, !tbaa !11
  %1019 = fmul double %1017, %1018
  %1020 = call double @llvm.fmuladd.f64(double %1015, double %1016, double %1019)
  %1021 = load double, ptr %77, align 8, !tbaa !11
  %1022 = load double, ptr %80, align 8, !tbaa !11
  %1023 = call double @llvm.fmuladd.f64(double %1021, double %1022, double %1020)
  store double %1023, ptr %91, align 8, !tbaa !11
  %1024 = load double, ptr %72, align 8, !tbaa !11
  %1025 = load double, ptr %75, align 8, !tbaa !11
  %1026 = fmul double %1024, %1025
  %1027 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 0
  store double %1026, ptr %1027, align 16, !tbaa !11
  %1028 = load double, ptr %72, align 8, !tbaa !11
  %1029 = load double, ptr %75, align 8, !tbaa !11
  %1030 = fmul double %1028, %1029
  %1031 = load double, ptr %75, align 8, !tbaa !11
  %1032 = load double, ptr %81, align 8, !tbaa !11
  %1033 = call double @llvm.fmuladd.f64(double %1030, double %1031, double %1032)
  %1034 = load double, ptr %87, align 8, !tbaa !11
  %1035 = fadd double %1033, %1034
  %1036 = load double, ptr %78, align 8, !tbaa !11
  %1037 = load double, ptr %78, align 8, !tbaa !11
  %1038 = fneg double %1036
  %1039 = call double @llvm.fmuladd.f64(double %1038, double %1037, double %1035)
  %1040 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 1
  store double %1039, ptr %1040, align 8, !tbaa !11
  %1041 = load double, ptr %72, align 8, !tbaa !11
  %1042 = load double, ptr %75, align 8, !tbaa !11
  %1043 = fmul double %1041, %1042
  %1044 = load double, ptr %76, align 8, !tbaa !11
  %1045 = load double, ptr %78, align 8, !tbaa !11
  %1046 = load double, ptr %79, align 8, !tbaa !11
  %1047 = fmul double %1045, %1046
  %1048 = fneg double %1047
  %1049 = call double @llvm.fmuladd.f64(double %1043, double %1044, double %1048)
  %1050 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 2
  store double %1049, ptr %1050, align 16, !tbaa !11
  %1051 = load double, ptr %72, align 8, !tbaa !11
  %1052 = load double, ptr %75, align 8, !tbaa !11
  %1053 = fmul double %1051, %1052
  %1054 = load double, ptr %77, align 8, !tbaa !11
  %1055 = load double, ptr %78, align 8, !tbaa !11
  %1056 = load double, ptr %80, align 8, !tbaa !11
  %1057 = fmul double %1055, %1056
  %1058 = fneg double %1057
  %1059 = call double @llvm.fmuladd.f64(double %1053, double %1054, double %1058)
  %1060 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 3
  store double %1059, ptr %1060, align 8, !tbaa !11
  %1061 = load double, ptr %89, align 8, !tbaa !11
  %1062 = load double, ptr %81, align 8, !tbaa !11
  %1063 = fadd double %1061, %1062
  %1064 = load double, ptr %87, align 8, !tbaa !11
  %1065 = fadd double %1063, %1064
  %1066 = load double, ptr %75, align 8, !tbaa !11
  %1067 = load double, ptr %78, align 8, !tbaa !11
  %1068 = load double, ptr %91, align 8, !tbaa !11
  %1069 = fmul double %1067, %1068
  %1070 = fneg double %1069
  %1071 = call double @llvm.fmuladd.f64(double %1065, double %1066, double %1070)
  %1072 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 4
  store double %1071, ptr %1072, align 16, !tbaa !11
  %1073 = load double, ptr %75, align 8, !tbaa !11
  %1074 = load double, ptr %79, align 8, !tbaa !11
  %1075 = load double, ptr %76, align 8, !tbaa !11
  %1076 = load double, ptr %78, align 8, !tbaa !11
  %1077 = fmul double %1075, %1076
  %1078 = fneg double %1077
  %1079 = call double @llvm.fmuladd.f64(double %1073, double %1074, double %1078)
  %1080 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 5
  store double %1079, ptr %1080, align 8, !tbaa !11
  %1081 = load double, ptr %75, align 8, !tbaa !11
  %1082 = load double, ptr %80, align 8, !tbaa !11
  %1083 = load double, ptr %77, align 8, !tbaa !11
  %1084 = load double, ptr %78, align 8, !tbaa !11
  %1085 = fmul double %1083, %1084
  %1086 = fneg double %1085
  %1087 = call double @llvm.fmuladd.f64(double %1081, double %1082, double %1086)
  %1088 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 6
  store double %1087, ptr %1088, align 16, !tbaa !11
  %1089 = load double, ptr %72, align 8, !tbaa !11
  %1090 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 0
  store double %1089, ptr %1090, align 16, !tbaa !11
  %1091 = load double, ptr %72, align 8, !tbaa !11
  %1092 = load double, ptr %75, align 8, !tbaa !11
  %1093 = fmul double %1091, %1092
  %1094 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 1
  store double %1093, ptr %1094, align 8, !tbaa !11
  %1095 = load double, ptr %72, align 8, !tbaa !11
  %1096 = load double, ptr %76, align 8, !tbaa !11
  %1097 = fmul double %1095, %1096
  %1098 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 2
  store double %1097, ptr %1098, align 16, !tbaa !11
  %1099 = load double, ptr %72, align 8, !tbaa !11
  %1100 = load double, ptr %77, align 8, !tbaa !11
  %1101 = fmul double %1099, %1100
  %1102 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 3
  store double %1101, ptr %1102, align 8, !tbaa !11
  %1103 = load double, ptr %89, align 8, !tbaa !11
  %1104 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 4
  store double %1103, ptr %1104, align 16, !tbaa !11
  %1105 = load double, ptr %78, align 8, !tbaa !11
  %1106 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 5
  store double %1105, ptr %1106, align 8, !tbaa !11
  %1107 = load double, ptr %79, align 8, !tbaa !11
  %1108 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 6
  store double %1107, ptr %1108, align 16, !tbaa !11
  %1109 = load double, ptr %80, align 8, !tbaa !11
  %1110 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 7
  store double %1109, ptr %1110, align 8, !tbaa !11
  %1111 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 0
  %1112 = load double, ptr %1111, align 16, !tbaa !11
  %1113 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 0
  %1114 = load double, ptr %1113, align 16, !tbaa !11
  %1115 = fadd double %1112, %1114
  %1116 = load double, ptr %103, align 8, !tbaa !11
  %1117 = call double @llvm.fabs.f64(double %1116)
  %1118 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 0
  %1119 = load double, ptr %1118, align 16, !tbaa !11
  %1120 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 0
  %1121 = load double, ptr %1120, align 16, !tbaa !11
  %1122 = fsub double %1119, %1121
  %1123 = fneg double %1117
  %1124 = call double @llvm.fmuladd.f64(double %1123, double %1122, double %1115)
  %1125 = fmul double 5.000000e-01, %1124
  %1126 = load ptr, ptr %12, align 8, !tbaa !5
  %1127 = getelementptr inbounds double, ptr %1126, i64 0
  store double %1125, ptr %1127, align 8, !tbaa !11
  %1128 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 1
  %1129 = load double, ptr %1128, align 8, !tbaa !11
  %1130 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 1
  %1131 = load double, ptr %1130, align 8, !tbaa !11
  %1132 = fadd double %1129, %1131
  %1133 = load double, ptr %103, align 8, !tbaa !11
  %1134 = call double @llvm.fabs.f64(double %1133)
  %1135 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 1
  %1136 = load double, ptr %1135, align 8, !tbaa !11
  %1137 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 1
  %1138 = load double, ptr %1137, align 8, !tbaa !11
  %1139 = fsub double %1136, %1138
  %1140 = fneg double %1134
  %1141 = call double @llvm.fmuladd.f64(double %1140, double %1139, double %1132)
  %1142 = fmul double 5.000000e-01, %1141
  %1143 = load ptr, ptr %12, align 8, !tbaa !5
  %1144 = getelementptr inbounds double, ptr %1143, i64 1
  store double %1142, ptr %1144, align 8, !tbaa !11
  %1145 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 2
  %1146 = load double, ptr %1145, align 16, !tbaa !11
  %1147 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 2
  %1148 = load double, ptr %1147, align 16, !tbaa !11
  %1149 = fadd double %1146, %1148
  %1150 = load double, ptr %103, align 8, !tbaa !11
  %1151 = call double @llvm.fabs.f64(double %1150)
  %1152 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 2
  %1153 = load double, ptr %1152, align 16, !tbaa !11
  %1154 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 2
  %1155 = load double, ptr %1154, align 16, !tbaa !11
  %1156 = fsub double %1153, %1155
  %1157 = fneg double %1151
  %1158 = call double @llvm.fmuladd.f64(double %1157, double %1156, double %1149)
  %1159 = fmul double 5.000000e-01, %1158
  %1160 = load ptr, ptr %12, align 8, !tbaa !5
  %1161 = getelementptr inbounds double, ptr %1160, i64 2
  store double %1159, ptr %1161, align 8, !tbaa !11
  %1162 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 3
  %1163 = load double, ptr %1162, align 8, !tbaa !11
  %1164 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 3
  %1165 = load double, ptr %1164, align 8, !tbaa !11
  %1166 = fadd double %1163, %1165
  %1167 = load double, ptr %103, align 8, !tbaa !11
  %1168 = call double @llvm.fabs.f64(double %1167)
  %1169 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 3
  %1170 = load double, ptr %1169, align 8, !tbaa !11
  %1171 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 3
  %1172 = load double, ptr %1171, align 8, !tbaa !11
  %1173 = fsub double %1170, %1172
  %1174 = fneg double %1168
  %1175 = call double @llvm.fmuladd.f64(double %1174, double %1173, double %1166)
  %1176 = fmul double 5.000000e-01, %1175
  %1177 = load ptr, ptr %12, align 8, !tbaa !5
  %1178 = getelementptr inbounds double, ptr %1177, i64 3
  store double %1176, ptr %1178, align 8, !tbaa !11
  %1179 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 4
  %1180 = load double, ptr %1179, align 16, !tbaa !11
  %1181 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 4
  %1182 = load double, ptr %1181, align 16, !tbaa !11
  %1183 = fadd double %1180, %1182
  %1184 = load double, ptr %103, align 8, !tbaa !11
  %1185 = call double @llvm.fabs.f64(double %1184)
  %1186 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 4
  %1187 = load double, ptr %1186, align 16, !tbaa !11
  %1188 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 4
  %1189 = load double, ptr %1188, align 16, !tbaa !11
  %1190 = fsub double %1187, %1189
  %1191 = fneg double %1185
  %1192 = call double @llvm.fmuladd.f64(double %1191, double %1190, double %1183)
  %1193 = fmul double 5.000000e-01, %1192
  %1194 = load ptr, ptr %12, align 8, !tbaa !5
  %1195 = getelementptr inbounds double, ptr %1194, i64 4
  store double %1193, ptr %1195, align 8, !tbaa !11
  %1196 = load ptr, ptr %12, align 8, !tbaa !5
  %1197 = getelementptr inbounds double, ptr %1196, i64 5
  store double 0.000000e+00, ptr %1197, align 8, !tbaa !11
  %1198 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 5
  %1199 = load double, ptr %1198, align 8, !tbaa !11
  %1200 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 5
  %1201 = load double, ptr %1200, align 8, !tbaa !11
  %1202 = fadd double %1199, %1201
  %1203 = load double, ptr %103, align 8, !tbaa !11
  %1204 = call double @llvm.fabs.f64(double %1203)
  %1205 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 6
  %1206 = load double, ptr %1205, align 16, !tbaa !11
  %1207 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 6
  %1208 = load double, ptr %1207, align 16, !tbaa !11
  %1209 = fsub double %1206, %1208
  %1210 = fneg double %1204
  %1211 = call double @llvm.fmuladd.f64(double %1210, double %1209, double %1202)
  %1212 = fmul double 5.000000e-01, %1211
  %1213 = load ptr, ptr %12, align 8, !tbaa !5
  %1214 = getelementptr inbounds double, ptr %1213, i64 6
  store double %1212, ptr %1214, align 8, !tbaa !11
  %1215 = getelementptr inbounds [7 x double], ptr %66, i64 0, i64 6
  %1216 = load double, ptr %1215, align 16, !tbaa !11
  %1217 = getelementptr inbounds [7 x double], ptr %67, i64 0, i64 6
  %1218 = load double, ptr %1217, align 16, !tbaa !11
  %1219 = fadd double %1216, %1218
  %1220 = load double, ptr %103, align 8, !tbaa !11
  %1221 = call double @llvm.fabs.f64(double %1220)
  %1222 = getelementptr inbounds [8 x double], ptr %63, i64 0, i64 7
  %1223 = load double, ptr %1222, align 8, !tbaa !11
  %1224 = getelementptr inbounds [8 x double], ptr %62, i64 0, i64 7
  %1225 = load double, ptr %1224, align 8, !tbaa !11
  %1226 = fsub double %1223, %1225
  %1227 = fneg double %1221
  %1228 = call double @llvm.fmuladd.f64(double %1227, double %1226, double %1219)
  %1229 = fmul double 5.000000e-01, %1228
  %1230 = load ptr, ptr %12, align 8, !tbaa !5
  %1231 = getelementptr inbounds double, ptr %1230, i64 7
  store double %1229, ptr %1231, align 8, !tbaa !11
  %1232 = load ptr, ptr %12, align 8, !tbaa !5
  %1233 = getelementptr inbounds double, ptr %1232, i64 0
  %1234 = load double, ptr %1233, align 8, !tbaa !11
  %1235 = invoke noundef zeroext i1 @_ZSt5isnand(double noundef %1234)
          to label %1236 unwind label %1261

1236:                                             ; preds = %805
  br i1 %1235, label %1237, label %1265

1237:                                             ; preds = %1236
  %1238 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.17)
          to label %1239 unwind label %1261

1239:                                             ; preds = %1237
  %1240 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1238, ptr noundef @.str.18)
          to label %1241 unwind label %1261

1241:                                             ; preds = %1239
  %1242 = load double, ptr %103, align 8, !tbaa !11
  %1243 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1240, double noundef %1242)
          to label %1244 unwind label %1261

1244:                                             ; preds = %1241
  %1245 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1243, ptr noundef @.str.19)
          to label %1246 unwind label %1261

1246:                                             ; preds = %1244
  %1247 = load double, ptr %48, align 8, !tbaa !11
  %1248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1245, double noundef %1247)
          to label %1249 unwind label %1261

1249:                                             ; preds = %1246
  %1250 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1248, ptr noundef @.str.20)
          to label %1251 unwind label %1261

1251:                                             ; preds = %1249
  %1252 = load double, ptr %54, align 8, !tbaa !11
  %1253 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1250, double noundef %1252)
          to label %1254 unwind label %1261

1254:                                             ; preds = %1251
  %1255 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1253, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1256 unwind label %1261

1256:                                             ; preds = %1254
  call void @exit(i32 noundef 0) #10
  unreachable

1257:                                             ; preds = %795
  %1258 = landingpad { ptr, i32 }
          cleanup
  %1259 = extractvalue { ptr, i32 } %1258, 0
  store ptr %1259, ptr %95, align 8
  %1260 = extractvalue { ptr, i32 } %1258, 1
  store i32 %1260, ptr %96, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #9
  br label %1266

1261:                                             ; preds = %1254, %1251, %1249, %1246, %1244, %1241, %1239, %1237, %805
  %1262 = landingpad { ptr, i32 }
          cleanup
  %1263 = extractvalue { ptr, i32 } %1262, 0
  store ptr %1263, ptr %95, align 8
  %1264 = extractvalue { ptr, i32 } %1262, 1
  store i32 %1264, ptr %96, align 4
  br label %1266

1265:                                             ; preds = %1236
  store i32 0, ptr %9, align 4
  store i32 1, ptr %101, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  br label %1267

1266:                                             ; preds = %1261, %1257
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  br label %1268

1267:                                             ; preds = %1265, %725
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  br label %1269

1268:                                             ; preds = %1266, %603
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  br label %1271

1269:                                             ; preds = %1267, %563
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %100) #9
  call void @llvm.lifetime.end.p0(i64 72, ptr %100) #9
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %99) #9
  call void @llvm.lifetime.end.p0(i64 72, ptr %99) #9
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %98) #9
  call void @llvm.lifetime.end.p0(i64 72, ptr %98) #9
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %97) #9
  call void @llvm.lifetime.end.p0(i64 72, ptr %97) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 50, ptr %21) #9
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %20) #9
  call void @llvm.lifetime.end.p0(i64 512, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  %1270 = load i32, ptr %9, align 4
  ret i32 %1270

1271:                                             ; preds = %1268, %580
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %100) #9
  br label %1272

1272:                                             ; preds = %1271, %576
  call void @llvm.lifetime.end.p0(i64 72, ptr %100) #9
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %99) #9
  br label %1273

1273:                                             ; preds = %1272, %572
  call void @llvm.lifetime.end.p0(i64 72, ptr %99) #9
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %98) #9
  br label %1274

1274:                                             ; preds = %1273, %568
  call void @llvm.lifetime.end.p0(i64 72, ptr %98) #9
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %97) #9
  br label %1275

1275:                                             ; preds = %1274, %564
  call void @llvm.lifetime.end.p0(i64 72, ptr %97) #9
  br label %1276

1276:                                             ; preds = %1275, %168
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 50, ptr %21) #9
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %20) #9
  call void @llvm.lifetime.end.p0(i64 512, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  br label %1277

1277:                                             ; preds = %1276
  %1278 = load ptr, ptr %95, align 8
  %1279 = load i32, ptr %96, align 4
  %1280 = insertvalue { ptr, i32 } poison, ptr %1278, 0
  %1281 = insertvalue { ptr, i32 } %1280, i32 %1279, 1
  resume { ptr, i32 } %1281
}

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(248)) unnamed_addr #0 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #4

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(248), ptr noundef, i32 noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264)) #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3TNT7Array2DIdEC2Eii(ptr noundef nonnull align 8 dereferenceable(72), i32 noundef, i32 noundef) unnamed_addr #0 align 2

; Function Attrs: nounwind
declare double @sqrt(double noundef) #7

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isnand(double noundef) #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isinfd(double noundef) #8

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #8 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248)) unnamed_addr #8 align 2

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn nounwind "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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { nounwind "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 #8 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { noreturn 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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon }
%union.anon = type { i32 }
%"class.TNT::Array2D" = type { %"class.TNT::Array1D", %"class.TNT::Array1D.0", i32, i32 }
%"class.TNT::Array1D" = type { %"class.TNT::i_refvec", i32, ptr }
%"class.TNT::i_refvec" = type { ptr, ptr }
%"class.TNT::Array1D.0" = type { %"class.TNT::i_refvec.1", i32, ptr }
%"class.TNT::i_refvec.1" = type { ptr, ptr }

@__const._Z2lfPdS_S_S_iS_iPi.outfilename = external hidden unnamed_addr constant [50 x i8], align 16
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str = external hidden unnamed_addr constant [32 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [20 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.2 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [8 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef range(i32 0, 2) i32 @_Z2lfPdS_S_S_iS_iPi(ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1, ptr nocapture noundef writeonly %2, ptr nocapture noundef readnone %3, i32 noundef %4, ptr nocapture noundef readnone %5, i32 noundef %6, ptr nocapture noundef readnone %7) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %9 = alloca double, align 8
  %10 = alloca %"class.std::basic_ofstream", align 8
  %11 = alloca [50 x i8], align 16
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca %"class.TNT::Array2D", align 8
  %15 = alloca %"class.TNT::Array2D", align 8
  %16 = alloca %"class.TNT::Array2D", align 8
  %17 = alloca %"class.TNT::Array2D", align 8
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #10
  store double 1.000000e-10, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %10) #10
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(248) %10)
  call void @llvm.lifetime.start.p0(i64 50, ptr nonnull %11) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(50) %11, ptr noundef nonnull align 16 dereferenceable(50) @__const._Z2lfPdS_S_S_iS_iPi.outfilename, i64 50, i1 false)
  %20 = load double, ptr %0, align 8, !tbaa !5
  %21 = getelementptr inbounds i8, ptr %0, i64 8
  %22 = load double, ptr %21, align 8, !tbaa !5
  %23 = getelementptr inbounds i8, ptr %0, i64 16
  %24 = getelementptr inbounds i8, ptr %0, i64 24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #10
  %25 = getelementptr inbounds i8, ptr %0, i64 32
  %26 = load double, ptr %25, align 8, !tbaa !5
  store double %26, ptr %12, align 8, !tbaa !5
  %27 = getelementptr inbounds i8, ptr %0, i64 40
  %28 = load double, ptr %27, align 8, !tbaa !5
  %29 = getelementptr inbounds i8, ptr %0, i64 48
  %30 = load double, ptr %29, align 8, !tbaa !5
  %31 = getelementptr inbounds i8, ptr %0, i64 56
  %32 = load double, ptr %31, align 8, !tbaa !5
  %33 = load double, ptr %1, align 8, !tbaa !5
  %34 = getelementptr inbounds i8, ptr %1, i64 8
  %35 = load double, ptr %34, align 8, !tbaa !5
  %36 = getelementptr inbounds i8, ptr %1, i64 16
  %37 = getelementptr inbounds i8, ptr %1, i64 24
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #10
  %38 = getelementptr inbounds i8, ptr %1, i64 32
  %39 = load double, ptr %38, align 8, !tbaa !5
  store double %39, ptr %13, align 8, !tbaa !5
  %40 = getelementptr inbounds i8, ptr %1, i64 40
  %41 = load double, ptr %40, align 8, !tbaa !5
  %42 = getelementptr inbounds i8, ptr %1, i64 48
  %43 = load double, ptr %42, align 8, !tbaa !5
  %44 = getelementptr inbounds i8, ptr %1, i64 56
  %45 = load double, ptr %44, align 8, !tbaa !5
  %46 = fcmp olt double %20, 0.000000e+00
  %47 = fcmp olt double %33, 0.000000e+00
  %or.cond = select i1 %46, i1 true, i1 %47
  br i1 %or.cond, label %48, label %55

48:                                               ; preds = %8
  %49 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str)
          to label %50 unwind label %53

50:                                               ; preds = %48
  %51 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %52 unwind label %53

52:                                               ; preds = %50
  call void @exit(i32 noundef 0) #11
  unreachable

53:                                               ; preds = %65, %63, %56, %55, %50, %48
  %54 = landingpad { ptr, i32 }
          cleanup
  br label %440

55:                                               ; preds = %8
  invoke void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(248) %10, ptr noundef nonnull %11, i32 noundef 1)
          to label %56 unwind label %53

56:                                               ; preds = %55
  %57 = load ptr, ptr %10, align 8, !tbaa !9
  %58 = getelementptr i8, ptr %57, i64 -24
  %59 = load i64, ptr %58, align 8
  %60 = getelementptr inbounds i8, ptr %10, i64 %59
  %61 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %60)
          to label %62 unwind label %53

62:                                               ; preds = %56
  br i1 %61, label %63, label %67

63:                                               ; preds = %62
  %64 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.1)
          to label %65 unwind label %53

65:                                               ; preds = %63
  %66 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %67 unwind label %53

67:                                               ; preds = %65, %62
  switch i32 %6, label %._crit_edge [
    i32 3, label %85
    i32 2, label %68
  ]

._crit_edge:                                      ; preds = %67
  %.pre = load double, ptr %13, align 8, !tbaa !5
  br label %98

68:                                               ; preds = %67
  %69 = load double, ptr %0, align 8, !tbaa !5
  %70 = load double, ptr %23, align 8, !tbaa !5
  %71 = load double, ptr %25, align 8, !tbaa !5
  store double %71, ptr %12, align 8, !tbaa !5
  %72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %73 = load double, ptr %72, align 8, !tbaa !5
  store double %73, ptr %12, align 8, !tbaa !5
  %74 = load double, ptr %29, align 8, !tbaa !5
  %75 = load double, ptr %31, align 8, !tbaa !5
  %76 = load double, ptr %27, align 8, !tbaa !5
  %77 = load double, ptr %1, align 8, !tbaa !5
  %78 = load double, ptr %36, align 8, !tbaa !5
  %79 = load double, ptr %38, align 8, !tbaa !5
  store double %79, ptr %13, align 8, !tbaa !5
  %80 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %9)
  %81 = load double, ptr %80, align 8, !tbaa !5
  store double %81, ptr %13, align 8, !tbaa !5
  %82 = load double, ptr %42, align 8, !tbaa !5
  %83 = load double, ptr %44, align 8, !tbaa !5
  %84 = load double, ptr %40, align 8, !tbaa !5
  br label %98

85:                                               ; preds = %67
  %86 = load double, ptr %0, align 8, !tbaa !5
  %87 = load double, ptr %24, align 8, !tbaa !5
  %88 = load double, ptr %25, align 8, !tbaa !5
  store double %88, ptr %12, align 8, !tbaa !5
  %89 = load double, ptr %31, align 8, !tbaa !5
  %90 = load double, ptr %27, align 8, !tbaa !5
  %91 = load double, ptr %29, align 8, !tbaa !5
  %92 = load double, ptr %1, align 8, !tbaa !5
  %93 = load double, ptr %37, align 8, !tbaa !5
  %94 = load double, ptr %38, align 8, !tbaa !5
  store double %94, ptr %13, align 8, !tbaa !5
  %95 = load double, ptr %44, align 8, !tbaa !5
  %96 = load double, ptr %40, align 8, !tbaa !5
  %97 = load double, ptr %42, align 8, !tbaa !5
  br label %98

98:                                               ; preds = %._crit_edge, %68, %85
  %99 = phi double [ %81, %68 ], [ %94, %85 ], [ %.pre, %._crit_edge ]
  %.0452 = phi double [ %84, %68 ], [ %97, %85 ], [ %45, %._crit_edge ]
  %.0451 = phi double [ %83, %68 ], [ %96, %85 ], [ %43, %._crit_edge ]
  %.0450 = phi double [ %82, %68 ], [ %95, %85 ], [ %41, %._crit_edge ]
  %.0447 = phi double [ %78, %68 ], [ %93, %85 ], [ %35, %._crit_edge ]
  %.0446 = phi double [ %77, %68 ], [ %92, %85 ], [ %33, %._crit_edge ]
  %.0445 = phi double [ %76, %68 ], [ %91, %85 ], [ %32, %._crit_edge ]
  %.0444 = phi double [ %75, %68 ], [ %90, %85 ], [ %30, %._crit_edge ]
  %.0443 = phi double [ %74, %68 ], [ %89, %85 ], [ %28, %._crit_edge ]
  %.0440 = phi double [ %70, %68 ], [ %87, %85 ], [ %22, %._crit_edge ]
  %.0439 = phi double [ %69, %68 ], [ %86, %85 ], [ %20, %._crit_edge ]
  %100 = load double, ptr %12, align 8, !tbaa !5
  %101 = fadd double %.0446, %.0439
  %102 = fmul double %101, 5.000000e-01
  %103 = fadd double %.0447, %.0440
  %104 = fmul double %103, 5.000000e-01
  %105 = fadd double %100, %99
  %106 = fmul double %105, 5.000000e-01
  %107 = fadd double %.0450, %.0443
  %108 = fmul double %107, 5.000000e-01
  %109 = fadd double %.0451, %.0444
  %110 = fmul double %109, 5.000000e-01
  %111 = fadd double %.0452, %.0445
  %112 = fmul double %111, 5.000000e-01
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %14) #10
  invoke void @_ZN3TNT7Array2DIdEC2Eii(ptr noundef nonnull align 8 dereferenceable(72) %14, i32 noundef 7, i32 noundef 7)
          to label %113 unwind label %148

113:                                              ; preds = %98
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %15) #10
  invoke void @_ZN3TNT7Array2DIdEC2Eii(ptr noundef nonnull align 8 dereferenceable(72) %15, i32 noundef 7, i32 noundef 7)
          to label %114 unwind label %150

114:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %16) #10
  invoke void @_ZN3TNT7Array2DIdEC2Eii(ptr noundef nonnull align 8 dereferenceable(72) %16, i32 noundef 7, i32 noundef 7)
          to label %115 unwind label %152

115:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %17) #10
  invoke void @_ZN3TNT7Array2DIdEC2Eii(ptr noundef nonnull align 8 dereferenceable(72) %17, i32 noundef 7, i32 noundef 7)
          to label %116 unwind label %154

116:                                              ; preds = %115
  %117 = fdiv double 1.000000e+00, %.0439
  %118 = fcmp olt double %.0439, 0.000000e+00
  br i1 %118, label %cdce.call, label %cdce.end, !prof !11

cdce.call:                                        ; preds = %116
  %119 = call double @sqrt(double noundef %.0439) #10
  br label %cdce.end

cdce.end:                                         ; preds = %116, %cdce.call
  %120 = call double @sqrt(double noundef %117) #10
  %121 = fmul double %.0443, %120
  %122 = call double @sqrt(double noundef %117) #10
  %123 = fmul double %.0444, %122
  %124 = call double @sqrt(double noundef %117) #10
  %125 = fmul double %.0445, %124
  %126 = fmul double %123, %123
  %127 = call double @llvm.fmuladd.f64(double %121, double %121, double %126)
  %128 = call double @llvm.fmuladd.f64(double %125, double %125, double %127)
  %129 = load double, ptr %12, align 8, !tbaa !5
  %130 = fmul double %121, %121
  %131 = call double @llvm.fabs.f64(double %130)
  %132 = fmul double %129, 0x3FFAAAAAAAAAAAAB
  %133 = fmul double %117, %132
  %134 = fadd double %133, %128
  %135 = fmul double %133, -4.000000e+00
  %136 = fmul double %131, %135
  %137 = call double @llvm.fmuladd.f64(double %134, double %134, double %136)
  %138 = call double @sqrt(double noundef %137) #10
  %139 = call double @llvm.fabs.f64(double %138)
  %140 = fsub double %134, %139
  %141 = fmul double %140, 5.000000e-01
  %142 = fadd double %139, %134
  %143 = fmul double %142, 5.000000e-01
  %144 = fcmp olt double %141, 0.000000e+00
  br i1 %144, label %cdce.call467, label %cdce.end468, !prof !11

cdce.call467:                                     ; preds = %cdce.end
  %145 = call double @sqrt(double noundef %141) #10
  br label %cdce.end468

cdce.end468:                                      ; preds = %cdce.end, %cdce.call467
  %146 = call double @sqrt(double noundef %143) #10
  %147 = call noundef zeroext i1 @_ZSt5isnand(double noundef %146)
  br i1 %147, label %156, label %163

148:                                              ; preds = %98
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %439

150:                                              ; preds = %113
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %438

152:                                              ; preds = %114
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %437

154:                                              ; preds = %115
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %436

156:                                              ; preds = %cdce.end468
  %157 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.9)
          to label %158 unwind label %161

158:                                              ; preds = %156
  %159 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %157, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %160 unwind label %161

160:                                              ; preds = %158
  call void @exit(i32 noundef 0) #11
  unreachable

161:                                              ; preds = %275, %273, %271, %269, %267, %265, %263, %261, %259, %257, %255, %253, %251, %249, %247, %245, %243, %241, %239, %237, %232, %230, %223, %221, %219, %217, %215, %213, %211, %209, %207, %205, %203, %201, %199, %197, %195, %193, %158, %156
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %435

163:                                              ; preds = %cdce.end468
  %164 = fdiv double 1.000000e+00, %102
  %165 = fcmp olt double %102, 0.000000e+00
  br i1 %165, label %cdce.call469, label %cdce.end470, !prof !11

cdce.call469:                                     ; preds = %163
  %166 = call double @sqrt(double noundef %102) #10
  br label %cdce.end470

cdce.end470:                                      ; preds = %163, %cdce.call469
  %167 = call double @sqrt(double noundef %164) #10
  %168 = fmul double %108, %167
  %169 = call double @sqrt(double noundef %164) #10
  %170 = fmul double %110, %169
  %171 = call double @sqrt(double noundef %164) #10
  %172 = fmul double %112, %171
  %173 = fmul double %170, %170
  %174 = call double @llvm.fmuladd.f64(double %168, double %168, double %173)
  %175 = call double @llvm.fmuladd.f64(double %172, double %172, double %174)
  %176 = fmul double %168, %168
  %177 = call double @llvm.fabs.f64(double %176)
  %178 = fmul double %106, 0x3FFAAAAAAAAAAAAB
  %179 = fmul double %164, %178
  %180 = fadd double %179, %175
  %181 = fmul double %179, -4.000000e+00
  %182 = fmul double %181, %177
  %183 = call double @llvm.fmuladd.f64(double %180, double %180, double %182)
  %184 = call double @sqrt(double noundef %183) #10
  %185 = call double @llvm.fabs.f64(double %184)
  %186 = fsub double %180, %185
  %187 = fmul double %186, 5.000000e-01
  %188 = fadd double %185, %180
  %189 = fmul double %188, 5.000000e-01
  %190 = fcmp olt double %189, 0.000000e+00
  br i1 %190, label %191, label %225

191:                                              ; preds = %cdce.end470
  %192 = fcmp olt double %189, -1.000000e-10
  br i1 %192, label %193, label %cdce.end472

193:                                              ; preds = %191
  %194 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.2)
          to label %195 unwind label %161

195:                                              ; preds = %193
  %196 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %194, double noundef %187)
          to label %197 unwind label %161

197:                                              ; preds = %195
  %198 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %196, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %199 unwind label %161

199:                                              ; preds = %197
  %200 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.3)
          to label %201 unwind label %161

201:                                              ; preds = %199
  %202 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %200, double noundef %179)
          to label %203 unwind label %161

203:                                              ; preds = %201
  %204 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %202, ptr noundef nonnull @.str.4)
          to label %205 unwind label %161

205:                                              ; preds = %203
  %206 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %204, double noundef %177)
          to label %207 unwind label %161

207:                                              ; preds = %205
  %208 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %206, ptr noundef nonnull @.str.5)
          to label %209 unwind label %161

209:                                              ; preds = %207
  %210 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %208, double noundef %175)
          to label %211 unwind label %161

211:                                              ; preds = %209
  %212 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %210, ptr noundef nonnull @.str.6)
          to label %213 unwind label %161

213:                                              ; preds = %211
  %214 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %212, double noundef %168)
          to label %215 unwind label %161

215:                                              ; preds = %213
  %216 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %214, ptr noundef nonnull @.str.7)
          to label %217 unwind label %161

217:                                              ; preds = %215
  %218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %216, double noundef %170)
          to label %219 unwind label %161

219:                                              ; preds = %217
  %220 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %218, ptr noundef nonnull @.str.8)
          to label %221 unwind label %161

221:                                              ; preds = %219
  %222 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %220, double noundef %172)
          to label %223 unwind label %161

223:                                              ; preds = %221
  %224 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %222, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %434 unwind label %161

225:                                              ; preds = %cdce.end470
  %226 = fcmp olt double %187, 0.000000e+00
  br i1 %226, label %cdce.call471, label %cdce.end472, !prof !12

cdce.call471:                                     ; preds = %225
  %227 = call double @sqrt(double noundef %187) #10
  br label %cdce.end472

cdce.end472:                                      ; preds = %191, %225, %cdce.call471
  %228 = call double @sqrt(double noundef %189) #10
  %229 = call noundef zeroext i1 @_ZSt5isnand(double noundef %228)
  br i1 %229, label %230, label %235

230:                                              ; preds = %cdce.end472
  %231 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.9)
          to label %232 unwind label %161

232:                                              ; preds = %230
  %233 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %231, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %234 unwind label %161

234:                                              ; preds = %232
  call void @exit(i32 noundef 0) #11
  unreachable

235:                                              ; preds = %cdce.end472
  %236 = call noundef zeroext i1 @_ZSt5isinfd(double noundef %228)
  br i1 %236, label %237, label %278

237:                                              ; preds = %235
  %238 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.10)
          to label %239 unwind label %161

239:                                              ; preds = %237
  %240 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %238, ptr noundef nonnull @.str.11)
          to label %241 unwind label %161

241:                                              ; preds = %239
  %242 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %240, double noundef %106)
          to label %243 unwind label %161

243:                                              ; preds = %241
  %244 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %242, ptr noundef nonnull @.str.3)
          to label %245 unwind label %161

245:                                              ; preds = %243
  %246 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %244, double noundef %179)
          to label %247 unwind label %161

247:                                              ; preds = %245
  %248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %246, ptr noundef nonnull @.str.4)
          to label %249 unwind label %161

249:                                              ; preds = %247
  %250 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %248, double noundef %177)
          to label %251 unwind label %161

251:                                              ; preds = %249
  %252 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef nonnull @.str.5)
          to label %253 unwind label %161

253:                                              ; preds = %251
  %254 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %252, double noundef %175)
          to label %255 unwind label %161

255:                                              ; preds = %253
  %256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %254, ptr noundef nonnull @.str.12)
          to label %257 unwind label %161

257:                                              ; preds = %255
  %258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %256, double noundef %.0443)
          to label %259 unwind label %161

259:                                              ; preds = %257
  %260 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull @.str.13)
          to label %261 unwind label %161

261:                                              ; preds = %259
  %262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %260, double noundef %.0450)
          to label %263 unwind label %161

263:                                              ; preds = %261
  %264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %262, ptr noundef nonnull @.str.14)
          to label %265 unwind label %161

265:                                              ; preds = %263
  %266 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %264, double noundef %108)
          to label %267 unwind label %161

267:                                              ; preds = %265
  %268 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %266, ptr noundef nonnull @.str.15)
          to label %269 unwind label %161

269:                                              ; preds = %267
  %270 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %268, double noundef %110)
          to label %271 unwind label %161

271:                                              ; preds = %269
  %272 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %270, ptr noundef nonnull @.str.16)
          to label %273 unwind label %161

273:                                              ; preds = %271
  %274 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %272, double noundef %112)
          to label %275 unwind label %161

275:                                              ; preds = %273
  %276 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %274, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %277 unwind label %161

277:                                              ; preds = %275
  call void @exit(i32 noundef 0) #11
  unreachable

278:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #10
  %279 = fadd double %104, %228
  %280 = call double @llvm.fabs.f64(double %279)
  store double %280, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #10
  %281 = fsub double %104, %228
  %282 = call double @llvm.fabs.f64(double %281)
  store double %282, ptr %19, align 8, !tbaa !5
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19)
  %284 = load double, ptr %283, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #10
  %285 = load <2 x double>, ptr %0, align 8, !tbaa !5
  %286 = load double, ptr %25, align 8, !tbaa !5
  %287 = load double, ptr %27, align 8, !tbaa !5
  %288 = extractelement <2 x double> %285, i64 0
  %289 = fmul double %288, 5.000000e-01
  %290 = fmul double %286, 0x3FF7FFFFFFFFFFFF
  %291 = extractelement <2 x double> %285, i64 1
  %292 = fmul double %288, %291
  %293 = call double @llvm.fmuladd.f64(double %292, double %291, double %286)
  %294 = fneg double %287
  %295 = load <2 x double>, ptr %1, align 8, !tbaa !5
  %296 = load double, ptr %38, align 8, !tbaa !5
  %297 = load double, ptr %40, align 8, !tbaa !5
  %298 = extractelement <2 x double> %295, i64 0
  %299 = fmul double %298, 5.000000e-01
  %300 = fmul double %296, 0x3FF7FFFFFFFFFFFF
  %301 = extractelement <2 x double> %295, i64 1
  %302 = fmul double %298, %301
  %303 = call double @llvm.fmuladd.f64(double %302, double %301, double %296)
  %304 = fneg double %297
  %305 = call double @llvm.fabs.f64(double %284)
  %306 = fneg double %305
  %307 = insertelement <2 x double> poison, double %292, i64 0
  %308 = insertelement <2 x double> poison, double %302, i64 0
  %309 = insertelement <2 x double> poison, double %306, i64 0
  %310 = shufflevector <2 x double> %309, <2 x double> poison, <2 x i32> zeroinitializer
  %311 = getelementptr inbounds i8, ptr %2, i64 16
  %312 = load <2 x double>, ptr %23, align 8, !tbaa !5
  %313 = load <2 x double>, ptr %29, align 8, !tbaa !5
  %314 = fmul <2 x double> %312, %312
  %315 = extractelement <2 x double> %314, i64 0
  %316 = call double @llvm.fmuladd.f64(double %291, double %291, double %315)
  %317 = extractelement <2 x double> %312, i64 1
  %318 = call double @llvm.fmuladd.f64(double %317, double %317, double %316)
  %319 = fmul double %289, %318
  %320 = fmul <2 x double> %313, %313
  %321 = extractelement <2 x double> %320, i64 0
  %322 = call double @llvm.fmuladd.f64(double %287, double %287, double %321)
  %323 = extractelement <2 x double> %313, i64 1
  %324 = call double @llvm.fmuladd.f64(double %323, double %323, double %322)
  %325 = fmul double %324, 5.000000e-01
  %326 = fadd double %319, %325
  %327 = fadd double %290, %326
  %328 = fmul <2 x double> %312, %313
  %329 = extractelement <2 x double> %328, i64 0
  %330 = call double @llvm.fmuladd.f64(double %291, double %287, double %329)
  %331 = call double @llvm.fmuladd.f64(double %317, double %323, double %330)
  %332 = fadd double %293, %325
  %333 = call double @llvm.fmuladd.f64(double %294, double %287, double %332)
  %334 = insertelement <2 x double> poison, double %294, i64 0
  %335 = shufflevector <2 x double> %334, <2 x double> poison, <2 x i32> zeroinitializer
  %336 = fmul <2 x double> %313, %335
  %337 = shufflevector <2 x double> %307, <2 x double> poison, <2 x i32> zeroinitializer
  %338 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %337, <2 x double> %312, <2 x double> %336)
  %339 = fadd double %286, %327
  %340 = fadd double %325, %339
  %341 = fmul double %331, %294
  %342 = call double @llvm.fmuladd.f64(double %340, double %291, double %341)
  %343 = shufflevector <2 x double> %285, <2 x double> poison, <2 x i32> zeroinitializer
  %344 = fmul <2 x double> %343, %312
  %345 = load <2 x double>, ptr %36, align 8, !tbaa !5
  %346 = load <2 x double>, ptr %42, align 8, !tbaa !5
  %347 = fmul <2 x double> %345, %345
  %348 = extractelement <2 x double> %347, i64 0
  %349 = call double @llvm.fmuladd.f64(double %301, double %301, double %348)
  %350 = extractelement <2 x double> %345, i64 1
  %351 = call double @llvm.fmuladd.f64(double %350, double %350, double %349)
  %352 = fmul double %299, %351
  %353 = fmul <2 x double> %346, %346
  %354 = extractelement <2 x double> %353, i64 0
  %355 = call double @llvm.fmuladd.f64(double %297, double %297, double %354)
  %356 = extractelement <2 x double> %346, i64 1
  %357 = call double @llvm.fmuladd.f64(double %356, double %356, double %355)
  %358 = fmul double %357, 5.000000e-01
  %359 = fadd double %352, %358
  %360 = fadd double %300, %359
  %361 = fmul <2 x double> %345, %346
  %362 = extractelement <2 x double> %361, i64 0
  %363 = call double @llvm.fmuladd.f64(double %301, double %297, double %362)
  %364 = call double @llvm.fmuladd.f64(double %350, double %356, double %363)
  %365 = fadd double %303, %358
  %366 = call double @llvm.fmuladd.f64(double %304, double %297, double %365)
  %367 = insertelement <2 x double> poison, double %304, i64 0
  %368 = shufflevector <2 x double> %367, <2 x double> poison, <2 x i32> zeroinitializer
  %369 = fmul <2 x double> %346, %368
  %370 = shufflevector <2 x double> %308, <2 x double> poison, <2 x i32> zeroinitializer
  %371 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %370, <2 x double> %345, <2 x double> %369)
  %372 = fadd double %296, %360
  %373 = fadd double %358, %372
  %374 = fmul double %364, %304
  %375 = call double @llvm.fmuladd.f64(double %373, double %301, double %374)
  %376 = shufflevector <2 x double> %295, <2 x double> poison, <2 x i32> zeroinitializer
  %377 = fmul <2 x double> %376, %345
  %378 = insertelement <2 x double> %307, double %333, i64 1
  %379 = insertelement <2 x double> %308, double %366, i64 1
  %380 = fadd <2 x double> %378, %379
  %381 = insertelement <2 x double> %295, double %302, i64 1
  %382 = insertelement <2 x double> %285, double %292, i64 1
  %383 = fsub <2 x double> %381, %382
  %384 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %310, <2 x double> %383, <2 x double> %380)
  %385 = fmul <2 x double> %384, <double 5.000000e-01, double 5.000000e-01>
  store <2 x double> %385, ptr %2, align 8, !tbaa !5
  %386 = fadd <2 x double> %338, %371
  %387 = fsub <2 x double> %377, %344
  %388 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %310, <2 x double> %387, <2 x double> %386)
  %389 = fmul <2 x double> %388, <double 5.000000e-01, double 5.000000e-01>
  store <2 x double> %389, ptr %311, align 8, !tbaa !5
  %390 = fadd double %342, %375
  %391 = fsub double %360, %327
  %392 = call double @llvm.fmuladd.f64(double %306, double %391, double %390)
  %393 = fmul double %392, 5.000000e-01
  %394 = getelementptr inbounds i8, ptr %2, i64 32
  store double %393, ptr %394, align 8, !tbaa !5
  %395 = getelementptr inbounds i8, ptr %2, i64 40
  store double 0.000000e+00, ptr %395, align 8, !tbaa !5
  %396 = getelementptr inbounds i8, ptr %2, i64 48
  %397 = fneg <2 x double> %312
  %398 = insertelement <2 x double> poison, double %287, i64 0
  %399 = shufflevector <2 x double> %398, <2 x double> poison, <2 x i32> zeroinitializer
  %400 = fmul <2 x double> %399, %397
  %401 = shufflevector <2 x double> %285, <2 x double> poison, <2 x i32> <i32 1, i32 1>
  %402 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %401, <2 x double> %313, <2 x double> %400)
  %403 = fneg <2 x double> %345
  %404 = insertelement <2 x double> poison, double %297, i64 0
  %405 = shufflevector <2 x double> %404, <2 x double> poison, <2 x i32> zeroinitializer
  %406 = fmul <2 x double> %405, %403
  %407 = shufflevector <2 x double> %295, <2 x double> poison, <2 x i32> <i32 1, i32 1>
  %408 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %407, <2 x double> %346, <2 x double> %406)
  %409 = fadd <2 x double> %402, %408
  %410 = fsub <2 x double> %346, %313
  %411 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %310, <2 x double> %410, <2 x double> %409)
  %412 = fmul <2 x double> %411, <double 5.000000e-01, double 5.000000e-01>
  store <2 x double> %412, ptr %396, align 8, !tbaa !5
  %413 = extractelement <2 x double> %385, i64 0
  %414 = call noundef zeroext i1 @_ZSt5isnand(double noundef %413)
  br i1 %414, label %415, label %434

415:                                              ; preds = %278
  %416 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.17)
          to label %417 unwind label %432

417:                                              ; preds = %415
  %418 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %416, ptr noundef nonnull @.str.18)
          to label %419 unwind label %432

419:                                              ; preds = %417
  %420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %418, double noundef %284)
          to label %421 unwind label %432

421:                                              ; preds = %419
  %422 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %420, ptr noundef nonnull @.str.19)
          to label %423 unwind label %432

423:                                              ; preds = %421
  %424 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %422, double noundef %228)
          to label %425 unwind label %432

425:                                              ; preds = %423
  %426 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %424, ptr noundef nonnull @.str.20)
          to label %427 unwind label %432

427:                                              ; preds = %425
  %428 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %426, double noundef %104)
          to label %429 unwind label %432

429:                                              ; preds = %427
  %430 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %428, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %431 unwind label %432

431:                                              ; preds = %429
  call void @exit(i32 noundef 0) #11
  unreachable

432:                                              ; preds = %429, %427, %425, %423, %421, %419, %417, %415
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %435

434:                                              ; preds = %223, %278
  %.0 = phi i32 [ 1, %223 ], [ 0, %278 ]
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %17) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %17) #10
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %16) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %16) #10
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %15) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %15) #10
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %14) #10
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 50, ptr nonnull %11) #10
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %10) #10
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  ret i32 %.0

435:                                              ; preds = %161, %432
  %.pn = phi { ptr, i32 } [ %162, %161 ], [ %433, %432 ]
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %17) #10
  br label %436

436:                                              ; preds = %435, %154
  %.pn.pn = phi { ptr, i32 } [ %.pn, %435 ], [ %155, %154 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %17) #10
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %16) #10
  br label %437

437:                                              ; preds = %436, %152
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %436 ], [ %153, %152 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %16) #10
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %15) #10
  br label %438

438:                                              ; preds = %437, %150
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %437 ], [ %151, %150 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %15) #10
  call void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72) %14) #10
  br label %439

439:                                              ; preds = %438, %148
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %438 ], [ %149, %148 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %14) #10
  br label %440

440:                                              ; preds = %439, %53
  %.pn464 = phi { ptr, i32 } [ %54, %53 ], [ %.pn.pn.pn.pn.pn, %439 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 50, ptr nonnull %11) #10
  call void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248) %10) #10
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  resume { ptr, i32 } %.pn464
}

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(248)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEE4openEPKcSt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(248), ptr noundef, i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3TNT7Array2DIdEC2Eii(ptr noundef nonnull align 8 dereferenceable(72), i32 noundef, i32 noundef) unnamed_addr #0 align 2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #7

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isnand(double noundef) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSt5isinfd(double noundef) local_unnamed_addr #8

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3TNT7Array2DIdED2Ev(ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #8 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt14basic_ofstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(248)) unnamed_addr #8 align 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>) #9

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn nounwind "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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { mustprogress nofree nounwind willreturn memory(write) "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 #8 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #10 = { nounwind }
attributes #11 = { noreturn 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 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!"branch_weights", i32 1, i32 1048575}
!12 = !{!"branch_weights", i32 3072, i32 2147480576}


; Effective O3 passes: AggressiveInstCombinePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LibCallsShrinkWrapPass,LoopRotatePass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,VectorCombinePass