Browse Source

adding google

Konstantin Ladutenko 10 years ago
parent
commit
3ada57eec3
4 changed files with 1266 additions and 616 deletions
  1. 8 2
      compare.cc
  2. 16 8
      go.sh
  3. 58 164
      tests/shell/analysis.txt
  4. 1184 442
      tests/shell/graph.svg

+ 8 - 2
compare.cc

@@ -35,6 +35,8 @@
 #include <stdio.h>
 #include <time.h>
 #include <string.h>
+//sudo aptitude install libgoogle-perftools-dev
+#include <google/heap-profiler.h>
 #include "nmie.h"
 #include "nmie-wrapper.h"
 
@@ -215,7 +217,9 @@ int main(int argc, char *argv[]) {
     long cpptime_nsec, best_cpp;
     long ctime_nsec, best_c;
 
+    //HeapProfilerStart("heapprof");    
     for (int i = 0; i<150000; ++i) {
+      //for (int i = 0; i<100; ++i) {
       // clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time1);
       // nMie(L, x, m, nt, Theta, &Qext, &Qsca, &Qabs, &Qbk, &Qpr, &g, &Albedo, S1, S2);
       // clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time2);
@@ -235,16 +239,18 @@ int main(int argc, char *argv[]) {
       //printf("-- C/C++ time ratio: %Lg\n", static_cast<long double>(ctime_nsec)/static_cast<long double>(cpptime_nsec));
       //printf("--best C/C++ time ratio: %Lg\n", static_cast<long double>(best_c)/static_cast<long double>(best_cpp));
     }  
+    //HeapProfilerStop();
+
     //printf("--best C/C++ time ratio: %Lg\n", static_cast<long double>(best_c)/static_cast<long double>(best_cpp));
 
     // clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time1);
-    nMie(L, x, m, nt, Theta, &Qext, &Qsca, &Qabs, &Qbk, &Qpr, &g, &Albedo, S1, S2);
+    //nMie(L, x, m, nt, Theta, &Qext, &Qsca, &Qabs, &Qbk, &Qpr, &g, &Albedo, S1, S2);
     // clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time2);
     //  ctime_nsec = diff(time1,time2).tv_nsec;
     // printf("-- C time consumed %ld sec : %ld nsec\n",diff(time1,time2).tv_sec, ctime_nsec);
 
     // clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time1);
-    // nmie::nMie_wrapper(L, x, m, nt, Theta, &Qextw, &Qscaw, &Qabsw, &Qbkw, &Qprw, &gw, &Albedow, S1w, S2w);
+       ///    nmie::nMie_wrapper(L, x, m, nt, Theta, &Qextw, &Qscaw, &Qabsw, &Qbkw, &Qprw, &gw, &Albedow, S1w, S2w);
     // clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time2);
     // cpptime_nsec = diff(time1,time2).tv_nsec;
     // printf("-- C++ time consumed %ld sec : %ld nsec\n",diff(time1,time2).tv_sec,cpptime_nsec);

+ 16 - 8
go.sh

@@ -3,7 +3,10 @@ echo Compile with gcc -O2
 rm -f *.bin
 rm -f ../scattnlay
 g++ -Ofast -std=c++11 compare.cc nmie.cc nmie-wrapper.cc -lm -lrt -o scattnlay.bin -static
-g++ -Ofast -std=c++11 compare.cc nmie.cc nmie-wrapper.cc -lm -lrt -o scattnlay-pg.bin -static -pg
+# g++ -Ofast -std=c++11 compare.cc nmie.cc nmie-wrapper.cc -lm -lrt -o scattnlay-pg.bin -static -pg
+
+#google profiler
+# g++ -Ofast -std=c++11 compare.cc nmie.cc nmie-wrapper.cc -lm -lrt -o scattnlay.bin /usr/lib/libtcmalloc.so.4 -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free 
 #clang++ -g -O1 -fsanitize=address  -fno-optimize-sibling-calls -fno-omit-frame-pointer -std=c++11 compare.cc nmie.cc nmie-wrapper.cc -lm -lrt -o scattnlay.bin
 
 cp scattnlay.bin ../scattnlay
@@ -17,20 +20,25 @@ cd tests/shell
 # done
  PROGRAM='../../../scattnlay'
 # time ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.4 
-# time $PROGRAM -l 5 0.4642 1.8000 1.7000 0.7114 0.8000 0.7000 0.7393 1.2000 0.0900 0.9168 2.8000 0.2000 1.0000 1.5000 0.4000  -t 0.0 90.0 5 -c test01
+#time 
+time $PROGRAM -l 5 0.4642 1.8000 1.7000 0.7114 0.8000 0.7000 0.7393 1.2000 0.0900 0.9168 2.8000 0.2000 1.0000 1.5000 0.4000  -t 0.0 90.0 5 -c test01
 
-# echo valgring
+echo valgring
 # valgrind --tool=callgrind $PROGRAM -l 5 0.4642 1.8000 1.7000 0.7114 0.8000 0.7000 0.7393 1.2000 0.0900 0.9168 2.8000 0.2000 1.0000 1.5000 0.4000  -t 0.0 90.0 5 -c test01
 # rm out.dot
 # ./gprof2dot.py --output=out.dot --format=callgrind callgrind.out.*
 # mv callgrind.out.* callgrind
 # dot -Tsvg out.dot -o graph.svg
 
-rm gmon.out
-rm analysis.txt
-PROGRAM='../../../scattnlay-pg'
-time $PROGRAM -l 5 0.4642 1.8000 1.7000 0.7114 0.8000 0.7000 0.7393 1.2000 0.0900 0.9168 2.8000 0.2000 1.0000 1.5000 0.4000  -t 0.0 90.0 5 -c test01
-gprof $PROGRAM gmon.out > analysis.txt
+# rm *.aprof
+# /home/mmedia/soft/aprof-0.2.1/inst/bin/valgrind --tool=aprof  $PROGRAM -l 5 0.4642 1.8000 1.7000 0.7114 0.8000 0.7000 0.7393 1.2000 0.0900 0.9168 2.8000 0.2000 1.0000 1.5000 0.4000  -t 0.0 90.0 5 -c test01
+
+
+# rm gmon.out
+# rm analysis.txt
+# PROGRAM='../../../scattnlay-pg'
+# time $PROGRAM -l 5 0.4642 1.8000 1.7000 0.7114 0.8000 0.7000 0.7393 1.2000 0.0900 0.9168 2.8000 0.2000 1.0000 1.5000 0.4000  -t 0.0 90.0 5 -c test01
+# gprof $PROGRAM gmon.out > analysis.txt
 
 # repeats=30
 # echo Run test for $repeats times

+ 58 - 164
tests/shell/analysis.txt

@@ -1,45 +1,23 @@
 Flat profile:
 
 Each sample counts as 0.01 seconds.
+ no time accumulated
+
   %   cumulative   self              self     total           
- time   seconds   seconds    calls  us/call  us/call  name    
- 38.03     12.73    12.73 15000000     0.85     0.85  nmie::MultiLayerMie::calcD1D3(std::complex<double>, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&)
- 27.31     21.87     9.14  1500000     6.09    14.87  nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&)
-  5.98     23.87     2.00                             _int_malloc
-  4.03     25.22     1.35  1500000     0.90    16.73  nmie::MultiLayerMie::RunMieCalculations()
-  3.76     26.48     1.26                             _int_free
-  3.59     27.68     1.20 93000000     0.01     0.01  std::vector<std::complex<double>, std::allocator<std::complex<double> > >::_M_default_append(unsigned long)
-  2.72     28.59     0.91                             malloc_consolidate
-  2.33     29.37     0.78                             malloc
-  2.06     30.06     0.69                             __cos_avx
-  1.79     30.66     0.60                             __dubsin
-  1.70     31.23     0.57                             __sin_avx
-  1.67     31.79     0.56  1500000     0.37     0.37  nmie::MultiLayerMie::calcPiTau(std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&)
-  1.43     32.27     0.48                             __ieee754_exp_avx
-  0.57     32.46     0.19                             cfree
-  0.45     32.61     0.15                             memset
-  0.30     32.71     0.10                             operator new(unsigned long)
-  0.27     32.80     0.09                             brk
-  0.24     32.88     0.08  1500000     0.05     0.05  nmie::MultiLayerMie::Nmax(int)
-  0.21     32.95     0.07                             __malloc_check_init
-  0.21     33.02     0.07  1500000     0.05     0.05  nmie::MultiLayerMie::SetWidthSP(std::vector<double, std::allocator<double> > const&)
-  0.21     33.09     0.07                             nmie::nMie_wrapper(int, std::vector<double, std::allocator<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, int, std::vector<double, std::allocator<double> > const&, double*, double*, double*, double*, double*, double*, double*, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&)
-  0.16     33.15     0.06                             sincos
-  0.15     33.20     0.05                             __profile_frequency
-  0.15     33.25     0.05                             _mid_memalign
-  0.15     33.30     0.05                             free_check
-  0.12     33.34     0.04  3000000     0.01     0.01  std::vector<std::complex<double>, std::allocator<std::complex<double> > >::operator=(std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&)
-  0.10     33.37     0.04                             csloww
-  0.09     33.40     0.03                             int_mallinfo
-  0.06     33.42     0.02  1500000     0.01     0.03  nmie::MultiLayerMie::InitMieCalculations()
-  0.06     33.44     0.02                             void std::vector<std::array<double, 5ul>, std::allocator<std::array<double, 5ul> > >::_M_emplace_back_aux<std::array<double, 5ul> >(std::array<double, 5ul>&&)
-  0.04     33.46     0.02                             __sin_sse2
-  0.03     33.47     0.01                             bsloww2
-  0.01     33.47     0.01                             bsloww
-  0.00     33.47     0.00  1500000     0.00     0.00  std::vector<double, std::allocator<double> >::operator=(std::vector<double, std::allocator<double> > const&)
-  0.00     33.47     0.00        1     0.00     0.00  _GLOBAL__sub_I__ZN4nmie12nMie_wrapperEiRKSt6vectorIdSaIdEERKS0_ISt7complexIdESaIS6_EEiS4_PdSB_SB_SB_SB_SB_SB_RS8_SC_
-  0.00     33.47     0.00        1     0.00     0.00  _GLOBAL__sub_I_main
-  0.00     33.47     0.00        1     0.00     0.00  main
+ time   seconds   seconds    calls  Ts/call  Ts/call  name    
+  0.00      0.00     0.00       62     0.00     0.00  std::vector<std::complex<double>, std::allocator<std::complex<double> > >::_M_default_append(unsigned long)
+  0.00      0.00     0.00       10     0.00     0.00  nmie::MultiLayerMie::calcD1D3(std::complex<double>, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&)
+  0.00      0.00     0.00        2     0.00     0.00  std::vector<std::complex<double>, std::allocator<std::complex<double> > >::operator=(std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&)
+  0.00      0.00     0.00        1     0.00     0.00  _GLOBAL__sub_I__ZN4nmie12nMie_wrapperEiRKSt6vectorIdSaIdEERKS0_ISt7complexIdESaIS6_EEiS4_PdSB_SB_SB_SB_SB_SB_RS8_SC_
+  0.00      0.00     0.00        1     0.00     0.00  _GLOBAL__sub_I_main
+  0.00      0.00     0.00        1     0.00     0.00  nmie::MultiLayerMie::SetWidthSP(std::vector<double, std::allocator<double> > const&)
+  0.00      0.00     0.00        1     0.00     0.00  nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&)
+  0.00      0.00     0.00        1     0.00     0.00  nmie::MultiLayerMie::RunMieCalculations()
+  0.00      0.00     0.00        1     0.00     0.00  nmie::MultiLayerMie::InitMieCalculations()
+  0.00      0.00     0.00        1     0.00     0.00  nmie::MultiLayerMie::Nmax(int)
+  0.00      0.00     0.00        1     0.00     0.00  nmie::MultiLayerMie::calcPiTau(std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&)
+  0.00      0.00     0.00        1     0.00     0.00  std::vector<double, std::allocator<double> >::operator=(std::vector<double, std::allocator<double> > const&)
+  0.00      0.00     0.00        1     0.00     0.00  main
 
  %         the percentage of the total running time of the
 time       program used by this function.
@@ -77,133 +55,57 @@ notice and this notice are preserved.
 		     Call graph (explanation follows)
 
 
-granularity: each sample hit covers 2 byte(s) for 0.03% of 33.47 seconds
+granularity: each sample hit covers 2 byte(s) no time propagated
 
 index % time    self  children    called     name
-                                                 <spontaneous>
-[1]     75.5    0.07   25.19                 nmie::nMie_wrapper(int, std::vector<double, std::allocator<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, int, std::vector<double, std::allocator<double> > const&, double*, double*, double*, double*, double*, double*, double*, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [1]
-                1.35   23.75 1500000/1500000     nmie::MultiLayerMie::RunMieCalculations() [2]
-                0.07    0.00 1500000/1500000     nmie::MultiLayerMie::SetWidthSP(std::vector<double, std::allocator<double> > const&) [21]
-                0.02    0.00 1500000/3000000     std::vector<std::complex<double>, std::allocator<std::complex<double> > >::operator=(std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&) [26]
-                0.00    0.00 1500000/1500000     std::vector<double, std::allocator<double> >::operator=(std::vector<double, std::allocator<double> > const&) [449]
------------------------------------------------
-                1.35   23.75 1500000/1500000     nmie::nMie_wrapper(int, std::vector<double, std::allocator<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, int, std::vector<double, std::allocator<double> > const&, double*, double*, double*, double*, double*, double*, double*, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [1]
-[2]     75.0    1.35   23.75 1500000         nmie::MultiLayerMie::RunMieCalculations() [2]
-                9.14   13.16 1500000/1500000     nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [3]
-                0.85    0.00 66000000/93000000     std::vector<std::complex<double>, std::allocator<std::complex<double> > >::_M_default_append(unsigned long) [7]
-                0.56    0.00 1500000/1500000     nmie::MultiLayerMie::calcPiTau(std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&) [13]
-                0.02    0.02 1500000/1500000     nmie::MultiLayerMie::InitMieCalculations() [27]
------------------------------------------------
-                9.14   13.16 1500000/1500000     nmie::MultiLayerMie::RunMieCalculations() [2]
-[3]     66.6    9.14   13.16 1500000         nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [3]
-               12.73    0.00 15000000/15000000     nmie::MultiLayerMie::calcD1D3(std::complex<double>, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [4]
-                0.35    0.00 27000000/93000000     std::vector<std::complex<double>, std::allocator<std::complex<double> > >::_M_default_append(unsigned long) [7]
-                0.08    0.00 1500000/1500000     nmie::MultiLayerMie::Nmax(int) [19]
------------------------------------------------
-               12.73    0.00 15000000/15000000     nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [3]
-[4]     38.0   12.73    0.00 15000000         nmie::MultiLayerMie::calcD1D3(std::complex<double>, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [4]
------------------------------------------------
-                                                 <spontaneous>
-[5]      6.0    2.00    0.00                 _int_malloc [5]
------------------------------------------------
-                                                 <spontaneous>
-[6]      3.8    1.26    0.00                 _int_free [6]
------------------------------------------------
-                0.35    0.00 27000000/93000000     nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [3]
-                0.85    0.00 66000000/93000000     nmie::MultiLayerMie::RunMieCalculations() [2]
-[7]      3.6    1.20    0.00 93000000         std::vector<std::complex<double>, std::allocator<std::complex<double> > >::_M_default_append(unsigned long) [7]
------------------------------------------------
-                                                 <spontaneous>
-[8]      2.7    0.91    0.00                 malloc_consolidate [8]
------------------------------------------------
-                                                 <spontaneous>
-[9]      2.3    0.78    0.00                 malloc [9]
------------------------------------------------
-                                                 <spontaneous>
-[10]     2.1    0.69    0.00                 __cos_avx [10]
------------------------------------------------
-                                                 <spontaneous>
-[11]     1.8    0.60    0.00                 __dubsin [11]
------------------------------------------------
-                                                 <spontaneous>
-[12]     1.7    0.57    0.00                 __sin_avx [12]
------------------------------------------------
-                0.56    0.00 1500000/1500000     nmie::MultiLayerMie::RunMieCalculations() [2]
-[13]     1.7    0.56    0.00 1500000         nmie::MultiLayerMie::calcPiTau(std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&) [13]
------------------------------------------------
-                                                 <spontaneous>
-[14]     1.4    0.48    0.00                 __ieee754_exp_avx [14]
------------------------------------------------
-                                                 <spontaneous>
-[15]     0.6    0.19    0.00                 cfree [15]
------------------------------------------------
-                                                 <spontaneous>
-[16]     0.4    0.15    0.00                 memset [16]
------------------------------------------------
-                                                 <spontaneous>
-[17]     0.3    0.10    0.00                 operator new(unsigned long) [17]
------------------------------------------------
-                                                 <spontaneous>
-[18]     0.3    0.09    0.00                 brk [18]
------------------------------------------------
-                0.08    0.00 1500000/1500000     nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [3]
-[19]     0.2    0.08    0.00 1500000         nmie::MultiLayerMie::Nmax(int) [19]
------------------------------------------------
-                                                 <spontaneous>
-[20]     0.2    0.07    0.00                 __malloc_check_init [20]
------------------------------------------------
-                0.07    0.00 1500000/1500000     nmie::nMie_wrapper(int, std::vector<double, std::allocator<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, int, std::vector<double, std::allocator<double> > const&, double*, double*, double*, double*, double*, double*, double*, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [1]
-[21]     0.2    0.07    0.00 1500000         nmie::MultiLayerMie::SetWidthSP(std::vector<double, std::allocator<double> > const&) [21]
------------------------------------------------
-                                                 <spontaneous>
-[22]     0.2    0.06    0.00                 sincos [22]
------------------------------------------------
-                                                 <spontaneous>
-[23]     0.1    0.05    0.00                 free_check [23]
------------------------------------------------
-                                                 <spontaneous>
-[24]     0.1    0.05    0.00                 __profile_frequency [24]
------------------------------------------------
-                                                 <spontaneous>
-[25]     0.1    0.05    0.00                 _mid_memalign [25]
+                0.00    0.00       1/1           __libc_start_main [2933]
+[1]      0.0    0.00    0.00       1         main [1]
 -----------------------------------------------
-                0.02    0.00 1500000/3000000     nmie::MultiLayerMie::InitMieCalculations() [27]
-                0.02    0.00 1500000/3000000     nmie::nMie_wrapper(int, std::vector<double, std::allocator<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, int, std::vector<double, std::allocator<double> > const&, double*, double*, double*, double*, double*, double*, double*, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [1]
-[26]     0.1    0.04    0.00 3000000         std::vector<std::complex<double>, std::allocator<std::complex<double> > >::operator=(std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&) [26]
+                0.00    0.00      18/62          nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [433]
+                0.00    0.00      44/62          nmie::MultiLayerMie::RunMieCalculations() [434]
+[427]    0.0    0.00    0.00      62         std::vector<std::complex<double>, std::allocator<std::complex<double> > >::_M_default_append(unsigned long) [427]
 -----------------------------------------------
-                0.02    0.02 1500000/1500000     nmie::MultiLayerMie::RunMieCalculations() [2]
-[27]     0.1    0.02    0.02 1500000         nmie::MultiLayerMie::InitMieCalculations() [27]
-                0.02    0.00 1500000/3000000     std::vector<std::complex<double>, std::allocator<std::complex<double> > >::operator=(std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&) [26]
+                0.00    0.00      10/10          nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [433]
+[428]    0.0    0.00    0.00      10         nmie::MultiLayerMie::calcD1D3(std::complex<double>, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [428]
 -----------------------------------------------
-                                                 <spontaneous>
-[28]     0.1    0.04    0.00                 csloww [28]
+                0.00    0.00       1/2           nmie::MultiLayerMie::InitMieCalculations() [435]
+                0.00    0.00       1/2           nmie::nMie_wrapper(int, std::vector<double, std::allocator<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, int, std::vector<double, std::allocator<double> > const&, double*, double*, double*, double*, double*, double*, double*, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [847]
+[429]    0.0    0.00    0.00       2         std::vector<std::complex<double>, std::allocator<std::complex<double> > >::operator=(std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&) [429]
 -----------------------------------------------
-                                                 <spontaneous>
-[29]     0.1    0.03    0.00                 int_mallinfo [29]
+                0.00    0.00       1/1           __libc_csu_init [2918]
+[430]    0.0    0.00    0.00       1         _GLOBAL__sub_I__ZN4nmie12nMie_wrapperEiRKSt6vectorIdSaIdEERKS0_ISt7complexIdESaIS6_EEiS4_PdSB_SB_SB_SB_SB_SB_RS8_SC_ [430]
 -----------------------------------------------
-                                                 <spontaneous>
-[30]     0.1    0.02    0.00                 void std::vector<std::array<double, 5ul>, std::allocator<std::array<double, 5ul> > >::_M_emplace_back_aux<std::array<double, 5ul> >(std::array<double, 5ul>&&) [30]
+                0.00    0.00       1/1           __libc_csu_init [2918]
+[431]    0.0    0.00    0.00       1         _GLOBAL__sub_I_main [431]
 -----------------------------------------------
-                                                 <spontaneous>
-[31]     0.0    0.02    0.00                 __sin_sse2 [31]
+                0.00    0.00       1/1           nmie::nMie_wrapper(int, std::vector<double, std::allocator<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, int, std::vector<double, std::allocator<double> > const&, double*, double*, double*, double*, double*, double*, double*, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [847]
+[432]    0.0    0.00    0.00       1         nmie::MultiLayerMie::SetWidthSP(std::vector<double, std::allocator<double> > const&) [432]
 -----------------------------------------------
-                                                 <spontaneous>
-[32]     0.0    0.01    0.00                 bsloww2 [32]
+                0.00    0.00       1/1           nmie::MultiLayerMie::RunMieCalculations() [434]
+[433]    0.0    0.00    0.00       1         nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [433]
+                0.00    0.00      18/62          std::vector<std::complex<double>, std::allocator<std::complex<double> > >::_M_default_append(unsigned long) [427]
+                0.00    0.00      10/10          nmie::MultiLayerMie::calcD1D3(std::complex<double>, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [428]
+                0.00    0.00       1/1           nmie::MultiLayerMie::Nmax(int) [436]
 -----------------------------------------------
-                                                 <spontaneous>
-[33]     0.0    0.01    0.00                 bsloww [33]
+                0.00    0.00       1/1           nmie::nMie_wrapper(int, std::vector<double, std::allocator<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, int, std::vector<double, std::allocator<double> > const&, double*, double*, double*, double*, double*, double*, double*, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [847]
+[434]    0.0    0.00    0.00       1         nmie::MultiLayerMie::RunMieCalculations() [434]
+                0.00    0.00      44/62          std::vector<std::complex<double>, std::allocator<std::complex<double> > >::_M_default_append(unsigned long) [427]
+                0.00    0.00       1/1           nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [433]
+                0.00    0.00       1/1           nmie::MultiLayerMie::calcPiTau(std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&) [437]
+                0.00    0.00       1/1           nmie::MultiLayerMie::InitMieCalculations() [435]
 -----------------------------------------------
-                0.00    0.00       1/1           __libc_start_main [2940]
-[34]     0.0    0.00    0.00       1         main [34]
+                0.00    0.00       1/1           nmie::MultiLayerMie::RunMieCalculations() [434]
+[435]    0.0    0.00    0.00       1         nmie::MultiLayerMie::InitMieCalculations() [435]
+                0.00    0.00       1/2           std::vector<std::complex<double>, std::allocator<std::complex<double> > >::operator=(std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&) [429]
 -----------------------------------------------
-                0.00    0.00 1500000/1500000     nmie::nMie_wrapper(int, std::vector<double, std::allocator<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, int, std::vector<double, std::allocator<double> > const&, double*, double*, double*, double*, double*, double*, double*, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [1]
-[449]    0.0    0.00    0.00 1500000         std::vector<double, std::allocator<double> >::operator=(std::vector<double, std::allocator<double> > const&) [449]
+                0.00    0.00       1/1           nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [433]
+[436]    0.0    0.00    0.00       1         nmie::MultiLayerMie::Nmax(int) [436]
 -----------------------------------------------
-                0.00    0.00       1/1           __libc_csu_init [2925]
-[450]    0.0    0.00    0.00       1         _GLOBAL__sub_I__ZN4nmie12nMie_wrapperEiRKSt6vectorIdSaIdEERKS0_ISt7complexIdESaIS6_EEiS4_PdSB_SB_SB_SB_SB_SB_RS8_SC_ [450]
+                0.00    0.00       1/1           nmie::MultiLayerMie::RunMieCalculations() [434]
+[437]    0.0    0.00    0.00       1         nmie::MultiLayerMie::calcPiTau(std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&) [437]
 -----------------------------------------------
-                0.00    0.00       1/1           __libc_csu_init [2925]
-[451]    0.0    0.00    0.00       1         _GLOBAL__sub_I_main [451]
+                0.00    0.00       1/1           nmie::nMie_wrapper(int, std::vector<double, std::allocator<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, int, std::vector<double, std::allocator<double> > const&, double*, double*, double*, double*, double*, double*, double*, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [847]
+[438]    0.0    0.00    0.00       1         std::vector<double, std::allocator<double> >::operator=(std::vector<double, std::allocator<double> > const&) [438]
 -----------------------------------------------
 
  This table describes the call tree of the program, and was sorted by
@@ -296,16 +198,8 @@ notice and this notice are preserved.
 
 Index by function name
 
- [450] _GLOBAL__sub_I__ZN4nmie12nMie_wrapperEiRKSt6vectorIdSaIdEERKS0_ISt7complexIdESaIS6_EEiS4_PdSB_SB_SB_SB_SB_SB_RS8_SC_ [449] std::vector<double, std::allocator<double> >::operator=(std::vector<double, std::allocator<double> > const&) [33] bsloww
- [451] _GLOBAL__sub_I_main    [17] operator new(unsigned long) [32] bsloww2
-   [1] nmie::nMie_wrapper(int, std::vector<double, std::allocator<double> > const&, std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&, int, std::vector<double, std::allocator<double> > const&, double*, double*, double*, double*, double*, double*, double*, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [10] __cos_avx [15] cfree
-  [21] nmie::MultiLayerMie::SetWidthSP(std::vector<double, std::allocator<double> > const&) [11] __dubsin [28] csloww
-   [3] nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [14] __ieee754_exp_avx [23] free_check
-   [2] nmie::MultiLayerMie::RunMieCalculations() [20] __malloc_check_init [29] int_mallinfo
-  [27] nmie::MultiLayerMie::InitMieCalculations() [24] __profile_frequency [34] main
-  [19] nmie::MultiLayerMie::Nmax(int) [12] __sin_avx       [9] malloc
-   [4] nmie::MultiLayerMie::calcD1D3(std::complex<double>, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [31] __sin_sse2 [8] malloc_consolidate
-  [13] nmie::MultiLayerMie::calcPiTau(std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&) [6] _int_free [16] memset
-  [30] void std::vector<std::array<double, 5ul>, std::allocator<std::array<double, 5ul> > >::_M_emplace_back_aux<std::array<double, 5ul> >(std::array<double, 5ul>&&) [5] _int_malloc [22] sincos
-   [7] std::vector<std::complex<double>, std::allocator<std::complex<double> > >::_M_default_append(unsigned long) [25] _mid_memalign
-  [26] std::vector<std::complex<double>, std::allocator<std::complex<double> > >::operator=(std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&) [18] brk
+ [430] _GLOBAL__sub_I__ZN4nmie12nMie_wrapperEiRKSt6vectorIdSaIdEERKS0_ISt7complexIdESaIS6_EEiS4_PdSB_SB_SB_SB_SB_SB_RS8_SC_ [435] nmie::MultiLayerMie::InitMieCalculations() [429] std::vector<std::complex<double>, std::allocator<std::complex<double> > >::operator=(std::vector<std::complex<double>, std::allocator<std::complex<double> > > const&)
+ [431] _GLOBAL__sub_I_main   [436] nmie::MultiLayerMie::Nmax(int) [438] std::vector<double, std::allocator<double> >::operator=(std::vector<double, std::allocator<double> > const&)
+ [432] nmie::MultiLayerMie::SetWidthSP(std::vector<double, std::allocator<double> > const&) [428] nmie::MultiLayerMie::calcD1D3(std::complex<double>, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [1] main
+ [433] nmie::MultiLayerMie::ScattCoeffs(std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, std::vector<std::complex<double>, std::allocator<std::complex<double> > >&) [437] nmie::MultiLayerMie::calcPiTau(std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&, std::vector<std::vector<double, std::allocator<double> >, std::allocator<std::vector<double, std::allocator<double> > > >&)
+ [434] nmie::MultiLayerMie::RunMieCalculations() [427] std::vector<std::complex<double>, std::allocator<std::complex<double> > >::_M_default_append(unsigned long)

+ 1184 - 442
tests/shell/graph.svg

@@ -4,526 +4,1268 @@
 <!-- Generated by graphviz version 2.38.0 (20140413.2041)
  -->
 <!-- Title: %3 Pages: 1 -->
-<svg width="3502pt" height="1142pt"
- viewBox="0.00 0.00 3501.50 1142.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1138)">
+<svg width="3879pt" height="2068pt"
+ viewBox="0.00 0.00 3879.00 2068.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2064)">
 <title>%3</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-1138 3497.5,-1138 3497.5,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-2064 3875,-2064 3875,4 -4,4"/>
 <!-- (below main) -->
 <g id="node1" class="node"><title>(below main)</title>
-<polygon fill="#ff0000" stroke="#ff0000" points="2567,-1031 2496,-1031 2496,-968 2567,-968 2567,-1031"/>
-<text text-anchor="middle" x="2531.5" y="-1019" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="2531.5" y="-1008" font-family="Arial" font-size="10.00" fill="#ffffff">(below main)</text>
-<text text-anchor="middle" x="2531.5" y="-997" font-family="Arial" font-size="10.00" fill="#ffffff">100.00%</text>
-<text text-anchor="middle" x="2531.5" y="-986" font-family="Arial" font-size="10.00" fill="#ffffff">(0.00%)</text>
-<text text-anchor="middle" x="2531.5" y="-975" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+<polygon fill="#ff0000" stroke="#ff0000" points="2890.5,-1957 2819.5,-1957 2819.5,-1894 2890.5,-1894 2890.5,-1957"/>
+<text text-anchor="middle" x="2855" y="-1945" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2855" y="-1934" font-family="Arial" font-size="10.00" fill="#ffffff">(below main)</text>
+<text text-anchor="middle" x="2855" y="-1923" font-family="Arial" font-size="10.00" fill="#ffffff">100.00%</text>
+<text text-anchor="middle" x="2855" y="-1912" font-family="Arial" font-size="10.00" fill="#ffffff">(0.14%)</text>
+<text text-anchor="middle" x="2855" y="-1901" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- __libc_csu_init -->
+<g id="node2" class="node"><title>__libc_csu_init</title>
+<polygon fill="#0d4281" stroke="#0d4281" points="2744.5,-1854 2663.5,-1854 2663.5,-1791 2744.5,-1791 2744.5,-1854"/>
+<text text-anchor="middle" x="2704" y="-1842" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2704" y="-1831" font-family="Arial" font-size="10.00" fill="#ffffff">__libc_csu_init</text>
+<text text-anchor="middle" x="2704" y="-1820" font-family="Arial" font-size="10.00" fill="#ffffff">11.38%</text>
+<text text-anchor="middle" x="2704" y="-1809" font-family="Arial" font-size="10.00" fill="#ffffff">(0.03%)</text>
+<text text-anchor="middle" x="2704" y="-1798" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- (below main)&#45;&gt;__libc_csu_init -->
+<g id="edge1" class="edge"><title>(below main)&#45;&gt;__libc_csu_init</title>
+<path fill="none" stroke="#0d4281" stroke-width="0.5" d="M2819.22,-1900.56C2797.76,-1886.22 2770.33,-1867.87 2747.62,-1852.68"/>
+<polygon fill="#0d4281" stroke="#0d4281" stroke-width="0.5" points="2748.18,-1851.58 2744.59,-1850.65 2746.82,-1853.61 2748.18,-1851.58"/>
+<text text-anchor="middle" x="2811" y="-1877" font-family="Arial" font-size="10.00" fill="#0d4281">11.38%</text>
+<text text-anchor="middle" x="2811" y="-1866" font-family="Arial" font-size="10.00" fill="#0d4281">1×</text>
+</g>
+<!-- __libc_init_first -->
+<g id="node3" class="node"><title>__libc_init_first</title>
+<polygon fill="#0d1776" stroke="#0d1776" points="3646.5,-1782 3565.5,-1782 3565.5,-1719 3646.5,-1719 3646.5,-1782"/>
+<text text-anchor="middle" x="3606" y="-1770" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3606" y="-1759" font-family="Arial" font-size="10.00" fill="#ffffff">__libc_init_first</text>
+<text text-anchor="middle" x="3606" y="-1748" font-family="Arial" font-size="10.00" fill="#ffffff">2.51%</text>
+<text text-anchor="middle" x="3606" y="-1737" font-family="Arial" font-size="10.00" fill="#ffffff">(0.01%)</text>
+<text text-anchor="middle" x="3606" y="-1726" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- (below main)&#45;&gt;__libc_init_first -->
+<g id="edge2" class="edge"><title>(below main)&#45;&gt;__libc_init_first</title>
+<path fill="none" stroke="#0d1776" stroke-width="0.5" d="M2890.72,-1916.27C3014.53,-1887.75 3425.16,-1793.16 3561.54,-1761.74"/>
+<polygon fill="#0d1776" stroke="#0d1776" stroke-width="0.5" points="3561.96,-1762.9 3565.1,-1760.92 3561.41,-1760.51 3561.96,-1762.9"/>
+<text text-anchor="middle" x="3134" y="-1877" font-family="Arial" font-size="10.00" fill="#0d1776">2.51%</text>
+<text text-anchor="middle" x="3134" y="-1866" font-family="Arial" font-size="10.00" fill="#0d1776">1×</text>
 </g>
 <!-- main -->
-<g id="node2" class="node"><title>main</title>
-<polygon fill="#ff0000" stroke="#ff0000" points="2559.5,-928 2503.5,-928 2503.5,-865 2559.5,-865 2559.5,-928"/>
-<text text-anchor="middle" x="2531.5" y="-916" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="2531.5" y="-905" font-family="Arial" font-size="10.00" fill="#ffffff">main</text>
-<text text-anchor="middle" x="2531.5" y="-894" font-family="Arial" font-size="10.00" fill="#ffffff">100.00%</text>
-<text text-anchor="middle" x="2531.5" y="-883" font-family="Arial" font-size="10.00" fill="#ffffff">(0.02%)</text>
-<text text-anchor="middle" x="2531.5" y="-872" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+<g id="node4" class="node"><title>main</title>
+<polygon fill="#e98903" stroke="#e98903" points="2883,-1092 2827,-1092 2827,-1029 2883,-1029 2883,-1092"/>
+<text text-anchor="middle" x="2855" y="-1080" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2855" y="-1069" font-family="Arial" font-size="10.00" fill="#ffffff">main</text>
+<text text-anchor="middle" x="2855" y="-1058" font-family="Arial" font-size="10.00" fill="#ffffff">85.40%</text>
+<text text-anchor="middle" x="2855" y="-1047" font-family="Arial" font-size="10.00" fill="#ffffff">(0.56%)</text>
+<text text-anchor="middle" x="2855" y="-1036" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
 </g>
 <!-- (below main)&#45;&gt;main -->
-<g id="edge1" class="edge"><title>(below main)&#45;&gt;main</title>
-<path fill="none" stroke="#ff0000" stroke-width="4" d="M2531.5,-967.923C2531.5,-958.615 2531.5,-948.232 2531.5,-938.359"/>
-<polygon fill="#ff0000" stroke="#ff0000" stroke-width="4" points="2535,-938.322 2531.5,-928.322 2528,-938.322 2535,-938.322"/>
-<text text-anchor="middle" x="2551" y="-951" font-family="Arial" font-size="10.00" fill="#ff0000">100.00%</text>
-<text text-anchor="middle" x="2551" y="-940" font-family="Arial" font-size="10.00" fill="#ff0000">1×</text>
+<g id="edge3" class="edge"><title>(below main)&#45;&gt;main</title>
+<path fill="none" stroke="#e98903" stroke-width="3.42" d="M2855,-1893.56C2855,-1873.57 2855,-1847 2855,-1823.5 2855,-1823.5 2855,-1823.5 2855,-1162.5 2855,-1142.49 2855,-1120.25 2855,-1101.75"/>
+<polygon fill="#e98903" stroke="#e98903" stroke-width="3.42" points="2858.22,-1101.64 2855,-1092.44 2851.78,-1101.64 2858.22,-1101.64"/>
+<text text-anchor="middle" x="2872" y="-1475.5" font-family="Arial" font-size="10.00" fill="#e98903">85.40%</text>
+<text text-anchor="middle" x="2872" y="-1464.5" font-family="Arial" font-size="10.00" fill="#e98903">1×</text>
+</g>
+<!-- _GLOBAL__sub_I_main -->
+<g id="node6" class="node"><title>_GLOBAL__sub_I_main</title>
+<polygon fill="#0d3f81" stroke="#0d3f81" points="2752.5,-1710 2631.5,-1710 2631.5,-1647 2752.5,-1647 2752.5,-1710"/>
+<text text-anchor="middle" x="2692" y="-1698" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2692" y="-1687" font-family="Arial" font-size="10.00" fill="#ffffff">_GLOBAL__sub_I_main</text>
+<text text-anchor="middle" x="2692" y="-1676" font-family="Arial" font-size="10.00" fill="#ffffff">10.91%</text>
+<text text-anchor="middle" x="2692" y="-1665" font-family="Arial" font-size="10.00" fill="#ffffff">(0.00%)</text>
+<text text-anchor="middle" x="2692" y="-1654" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- __libc_csu_init&#45;&gt;_GLOBAL__sub_I_main -->
+<g id="edge9" class="edge"><title>__libc_csu_init&#45;&gt;_GLOBAL__sub_I_main</title>
+<path fill="none" stroke="#0d3f81" stroke-width="0.5" d="M2701.4,-1790.69C2699.49,-1768.08 2696.89,-1737.36 2694.91,-1713.95"/>
+<polygon fill="#0d3f81" stroke="#0d3f81" stroke-width="0.5" points="2696.11,-1713.64 2694.6,-1710.25 2693.67,-1713.84 2696.11,-1713.64"/>
+<text text-anchor="middle" x="2718" y="-1753.5" font-family="Arial" font-size="10.00" fill="#0d3f81">10.91%</text>
+<text text-anchor="middle" x="2718" y="-1742.5" font-family="Arial" font-size="10.00" fill="#0d3f81">1×</text>
+</g>
+<!-- _dl_non_dynamic_init -->
+<g id="node16" class="node"><title>_dl_non_dynamic_init</title>
+<polygon fill="#0d1776" stroke="#0d1776" points="3813,-557 3703,-557 3703,-494 3813,-494 3813,-557"/>
+<text text-anchor="middle" x="3758" y="-545" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3758" y="-534" font-family="Arial" font-size="10.00" fill="#ffffff">_dl_non_dynamic_init</text>
+<text text-anchor="middle" x="3758" y="-523" font-family="Arial" font-size="10.00" fill="#ffffff">2.47%</text>
+<text text-anchor="middle" x="3758" y="-512" font-family="Arial" font-size="10.00" fill="#ffffff">(0.04%)</text>
+<text text-anchor="middle" x="3758" y="-501" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- __libc_init_first&#45;&gt;_dl_non_dynamic_init -->
+<g id="edge10" class="edge"><title>__libc_init_first&#45;&gt;_dl_non_dynamic_init</title>
+<path fill="none" stroke="#0d1776" stroke-width="0.5" d="M3646.74,-1746.79C3714.5,-1739.84 3843,-1715.16 3843,-1628 3843,-1628 3843,-1628 3843,-668.5 3843,-626.917 3815.83,-586.967 3792.22,-560.093"/>
+<polygon fill="#0d1776" stroke="#0d1776" stroke-width="0.5" points="3792.89,-559.01 3789.65,-557.208 3791.06,-560.638 3792.89,-559.01"/>
+<text text-anchor="middle" x="3857" y="-1218" font-family="Arial" font-size="10.00" fill="#0d1776">2.47%</text>
+<text text-anchor="middle" x="3857" y="-1207" font-family="Arial" font-size="10.00" fill="#0d1776">1×</text>
+</g>
+<!-- __printf_chk -->
+<g id="node21" class="node"><title>__printf_chk</title>
+<polygon fill="#0baa3f" stroke="#0baa3f" points="3273.5,-989 3204.5,-989 3204.5,-926 3273.5,-926 3273.5,-989"/>
+<text text-anchor="middle" x="3239" y="-977" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3239" y="-966" font-family="Arial" font-size="10.00" fill="#ffffff">__printf_chk</text>
+<text text-anchor="middle" x="3239" y="-955" font-family="Arial" font-size="10.00" fill="#ffffff">41.78%</text>
+<text text-anchor="middle" x="3239" y="-944" font-family="Arial" font-size="10.00" fill="#ffffff">(0.28%)</text>
+<text text-anchor="middle" x="3239" y="-933" font-family="Arial" font-size="10.00" fill="#ffffff">13×</text>
+</g>
+<!-- main&#45;&gt;__printf_chk -->
+<g id="edge32" class="edge"><title>main&#45;&gt;__printf_chk</title>
+<path fill="none" stroke="#0baa3f" stroke-width="1.67" d="M2883.01,-1058.26C2950.94,-1054.92 3122.58,-1044.24 3174,-1020 3187.04,-1013.85 3199.17,-1004.08 3209.34,-994.116"/>
+<polygon fill="#0baa3f" stroke="#0baa3f" stroke-width="1.67" points="3211.22,-995.45 3214.16,-989.226 3207.98,-992.254 3211.22,-995.45"/>
+<text text-anchor="middle" x="3221" y="-1012" font-family="Arial" font-size="10.00" fill="#0baa3f">41.78%</text>
+<text text-anchor="middle" x="3221" y="-1001" font-family="Arial" font-size="10.00" fill="#0baa3f">13×</text>
+</g>
+<!-- double __gnu_cxx::__stoa&lt;double, double, char&gt;(double (*)(char const*, char**), char const*, char const*, unsigned long*) -->
+<g id="node37" class="node"><title>double __gnu_cxx::__stoa&lt;double, double, char&gt;(double (*)(char const*, char**), char const*, char const*, unsigned long*)</title>
+<polygon fill="#0d1b77" stroke="#0d1b77" points="3829,-989 3283,-989 3283,-926 3829,-926 3829,-989"/>
+<text text-anchor="middle" x="3556" y="-977" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3556" y="-966" font-family="Arial" font-size="10.00" fill="#ffffff">double __gnu_cxx::__stoa&lt;double, double, char&gt;(double (*)(char const*, char**), char const*, char const*, unsigned long*)</text>
+<text text-anchor="middle" x="3556" y="-955" font-family="Arial" font-size="10.00" fill="#ffffff">3.36%</text>
+<text text-anchor="middle" x="3556" y="-944" font-family="Arial" font-size="10.00" fill="#ffffff">(0.19%)</text>
+<text text-anchor="middle" x="3556" y="-933" font-family="Arial" font-size="10.00" fill="#ffffff">17×</text>
+</g>
+<!-- main&#45;&gt;double __gnu_cxx::__stoa&lt;double, double, char&gt;(double (*)(char const*, char**), char const*, char const*, unsigned long*) -->
+<g id="edge33" class="edge"><title>main&#45;&gt;double __gnu_cxx::__stoa&lt;double, double, char&gt;(double (*)(char const*, char**), char const*, char const*, unsigned long*)</title>
+<path fill="none" stroke="#0d1b77" stroke-width="0.5" d="M2883.13,-1057.49C2946.86,-1052.73 3107.07,-1039.71 3240,-1020 3295.86,-1011.72 3356.84,-1000.39 3410.21,-989.718"/>
+<polygon fill="#0d1b77" stroke="#0d1b77" stroke-width="0.5" points="3410.52,-990.905 3413.71,-989.016 3410.04,-988.502 3410.52,-990.905"/>
+<text text-anchor="middle" x="3377" y="-1012" font-family="Arial" font-size="10.00" fill="#0d1b77">3.36%</text>
+<text text-anchor="middle" x="3377" y="-1001" font-family="Arial" font-size="10.00" fill="#0d1b77">17×</text>
 </g>
 <!-- nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;) -->
-<g id="node13" class="node"><title>nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</title>
-<polygon fill="#ff0000" stroke="#ff0000" points="3493.5,-825 1569.5,-825 1569.5,-762 3493.5,-762 3493.5,-825"/>
-<text text-anchor="middle" x="2531.5" y="-813" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="2531.5" y="-802" font-family="Arial" font-size="10.00" fill="#ffffff">nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</text>
-<text text-anchor="middle" x="2531.5" y="-791" font-family="Arial" font-size="10.00" fill="#ffffff">99.98%</text>
-<text text-anchor="middle" x="2531.5" y="-780" font-family="Arial" font-size="10.00" fill="#ffffff">(0.31%)</text>
-<text text-anchor="middle" x="2531.5" y="-769" font-family="Arial" font-size="10.00" fill="#ffffff">150000×</text>
+<g id="node40" class="node"><title>nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</title>
+<polygon fill="#0b9e6f" stroke="#0b9e6f" points="2567,-989 643,-989 643,-926 2567,-926 2567,-989"/>
+<text text-anchor="middle" x="1605" y="-977" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1605" y="-966" font-family="Arial" font-size="10.00" fill="#ffffff">nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</text>
+<text text-anchor="middle" x="1605" y="-955" font-family="Arial" font-size="10.00" fill="#ffffff">32.98%</text>
+<text text-anchor="middle" x="1605" y="-944" font-family="Arial" font-size="10.00" fill="#ffffff">(0.10%)</text>
+<text text-anchor="middle" x="1605" y="-933" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
 </g>
 <!-- main&#45;&gt;nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;) -->
-<g id="edge7" class="edge"><title>main&#45;&gt;nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</title>
-<path fill="none" stroke="#ff0000" stroke-width="4" d="M2531.5,-864.923C2531.5,-855.615 2531.5,-845.232 2531.5,-835.359"/>
-<polygon fill="#ff0000" stroke="#ff0000" stroke-width="4" points="2535,-835.322 2531.5,-825.322 2528,-835.322 2535,-835.322"/>
-<text text-anchor="middle" x="2550.5" y="-848" font-family="Arial" font-size="10.00" fill="#ff0000">99.98%</text>
-<text text-anchor="middle" x="2550.5" y="-837" font-family="Arial" font-size="10.00" fill="#ff0000">150000×</text>
-</g>
-<!-- 0x0000000000402b73 -->
-<g id="node3" class="node"><title>0x0000000000402b73</title>
-<polygon fill="#ff0000" stroke="#ff0000" points="2587,-1134 2476,-1134 2476,-1071 2587,-1071 2587,-1134"/>
-<text text-anchor="middle" x="2531.5" y="-1122" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="2531.5" y="-1111" font-family="Arial" font-size="10.00" fill="#ffffff">0x0000000000402b73</text>
-<text text-anchor="middle" x="2531.5" y="-1100" font-family="Arial" font-size="10.00" fill="#ffffff">100.00%</text>
-<text text-anchor="middle" x="2531.5" y="-1089" font-family="Arial" font-size="10.00" fill="#ffffff">(0.00%)</text>
-<text text-anchor="middle" x="2531.5" y="-1078" font-family="Arial" font-size="10.00" fill="#ffffff">0×</text>
-</g>
-<!-- 0x0000000000402b73&#45;&gt;(below main) -->
-<g id="edge2" class="edge"><title>0x0000000000402b73&#45;&gt;(below main)</title>
-<path fill="none" stroke="#ff0000" stroke-width="4" d="M2531.5,-1070.92C2531.5,-1061.61 2531.5,-1051.23 2531.5,-1041.36"/>
-<polygon fill="#ff0000" stroke="#ff0000" stroke-width="4" points="2535,-1041.32 2531.5,-1031.32 2528,-1041.32 2535,-1041.32"/>
-<text text-anchor="middle" x="2551" y="-1054" font-family="Arial" font-size="10.00" fill="#ff0000">100.00%</text>
-<text text-anchor="middle" x="2551" y="-1043" font-family="Arial" font-size="10.00" fill="#ff0000">1×</text>
+<g id="edge34" class="edge"><title>main&#45;&gt;nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</title>
+<path fill="none" stroke="#0b9e6f" stroke-width="1.32" d="M2826.84,-1057.22C2716.51,-1048.31 2304.22,-1015 1988.77,-989.509"/>
+<polygon fill="#0b9e6f" stroke="#0b9e6f" stroke-width="1.32" points="1988.58,-987.492 1982.74,-989.021 1988.26,-991.469 1988.58,-987.492"/>
+<text text-anchor="middle" x="2359" y="-1012" font-family="Arial" font-size="10.00" fill="#0b9e6f">32.98%</text>
+<text text-anchor="middle" x="2359" y="-1001" font-family="Arial" font-size="10.00" fill="#0b9e6f">1×</text>
+</g>
+<!-- operator delete(void*) -->
+<g id="node41" class="node"><title>operator delete(void*)</title>
+<polygon fill="#0d2079" stroke="#0d2079" points="343.5,-557 236.5,-557 236.5,-494 343.5,-494 343.5,-557"/>
+<text text-anchor="middle" x="290" y="-545" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="290" y="-534" font-family="Arial" font-size="10.00" fill="#ffffff">operator delete(void*)</text>
+<text text-anchor="middle" x="290" y="-523" font-family="Arial" font-size="10.00" fill="#ffffff">4.53%</text>
+<text text-anchor="middle" x="290" y="-512" font-family="Arial" font-size="10.00" fill="#ffffff">(0.04%)</text>
+<text text-anchor="middle" x="290" y="-501" font-family="Arial" font-size="10.00" fill="#ffffff">127×</text>
+</g>
+<!-- main&#45;&gt;operator delete(void*) -->
+<g id="edge35" class="edge"><title>main&#45;&gt;operator delete(void*)</title>
+<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M2826.91,-1059.5C2585,-1059.38 857.06,-1056.18 638,-989 528.751,-955.498 484.548,-942.528 425,-845 393.357,-793.175 425.112,-766.933 404,-710 383.009,-653.393 343.341,-595.42 316.784,-560.182"/>
+<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="317.665,-559.316 314.576,-557.264 315.712,-560.794 317.665,-559.316"/>
+<text text-anchor="middle" x="439" y="-816.5" font-family="Arial" font-size="10.00" fill="#0d0e73">0.20%</text>
+<text text-anchor="middle" x="439" y="-805.5" font-family="Arial" font-size="10.00" fill="#0d0e73">7×</text>
+</g>
+<!-- std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;::basic_string(char const*, std::allocator&lt;char&gt; const&amp;) -->
+<g id="node42" class="node"><title>std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;::basic_string(char const*, std::allocator&lt;char&gt; const&amp;)</title>
+<polygon fill="#0d1776" stroke="#0d1776" points="3229,-845 2671,-845 2671,-782 3229,-782 3229,-845"/>
+<text text-anchor="middle" x="2950" y="-833" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2950" y="-822" font-family="Arial" font-size="10.00" fill="#ffffff">std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;::basic_string(char const*, std::allocator&lt;char&gt; const&amp;)</text>
+<text text-anchor="middle" x="2950" y="-811" font-family="Arial" font-size="10.00" fill="#ffffff">2.41%</text>
+<text text-anchor="middle" x="2950" y="-800" font-family="Arial" font-size="10.00" fill="#ffffff">(0.18%)</text>
+<text text-anchor="middle" x="2950" y="-789" font-family="Arial" font-size="10.00" fill="#ffffff">25×</text>
+</g>
+<!-- main&#45;&gt;std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;::basic_string(char const*, std::allocator&lt;char&gt; const&amp;) -->
+<g id="edge36" class="edge"><title>main&#45;&gt;std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;::basic_string(char const*, std::allocator&lt;char&gt; const&amp;)</title>
+<path fill="none" stroke="#0d0d73" stroke-width="0.5" d="M2883.22,-1057.17C2950.93,-1050.95 3119.44,-1031.43 3153,-989 3198.41,-931.592 3111.11,-878.772 3037.2,-846.625"/>
+<polygon fill="#0d0d73" stroke="#0d0d73" stroke-width="0.5" points="3037.39,-845.373 3033.69,-845.11 3036.42,-847.622 3037.39,-845.373"/>
+<text text-anchor="middle" x="3180" y="-960.5" font-family="Arial" font-size="10.00" fill="#0d0d73">0.10%</text>
+<text text-anchor="middle" x="3180" y="-949.5" font-family="Arial" font-size="10.00" fill="#0d0d73">1×</text>
+</g>
+<!-- std::string::compare(char const*) const -->
+<g id="node43" class="node"><title>std::string::compare(char const*) const</title>
+<polygon fill="#0d1274" stroke="#0d1274" points="2809,-701 2623,-701 2623,-638 2809,-638 2809,-701"/>
+<text text-anchor="middle" x="2716" y="-689" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2716" y="-678" font-family="Arial" font-size="10.00" fill="#ffffff">std::string::compare(char const*) const</text>
+<text text-anchor="middle" x="2716" y="-667" font-family="Arial" font-size="10.00" fill="#ffffff">1.28%</text>
+<text text-anchor="middle" x="2716" y="-656" font-family="Arial" font-size="10.00" fill="#ffffff">(0.56%)</text>
+<text text-anchor="middle" x="2716" y="-645" font-family="Arial" font-size="10.00" fill="#ffffff">69×</text>
+</g>
+<!-- main&#45;&gt;std::string::compare(char const*) const -->
+<g id="edge37" class="edge"><title>main&#45;&gt;std::string::compare(char const*) const</title>
+<path fill="none" stroke="#0d1274" stroke-width="0.5" d="M2826.71,-1056C2766.07,-1047.85 2626.8,-1025.49 2599,-989 2563.6,-942.527 2653.29,-776.864 2695.49,-704.61"/>
+<polygon fill="#0d1274" stroke="#0d1274" stroke-width="0.5" points="2696.75,-704.88 2697.46,-701.24 2694.63,-703.642 2696.75,-704.88"/>
+<text text-anchor="middle" x="2634" y="-888.5" font-family="Arial" font-size="10.00" fill="#0d1274">1.28%</text>
+<text text-anchor="middle" x="2634" y="-877.5" font-family="Arial" font-size="10.00" fill="#0d1274">69×</text>
+</g>
+<!-- std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::~vector() -->
+<g id="node44" class="node"><title>std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::~vector()</title>
+<polygon fill="#0d1074" stroke="#0d1074" points="407.5,-917 126.5,-917 126.5,-854 407.5,-854 407.5,-917"/>
+<text text-anchor="middle" x="267" y="-905" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="267" y="-894" font-family="Arial" font-size="10.00" fill="#ffffff">std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::~vector()</text>
+<text text-anchor="middle" x="267" y="-883" font-family="Arial" font-size="10.00" fill="#ffffff">0.82%</text>
+<text text-anchor="middle" x="267" y="-872" font-family="Arial" font-size="10.00" fill="#ffffff">(0.13%)</text>
+<text text-anchor="middle" x="267" y="-861" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- main&#45;&gt;std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::~vector() -->
+<g id="edge38" class="edge"><title>main&#45;&gt;std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::~vector()</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M2826.99,-1059.13C2555.23,-1055.54 397.584,-1026.79 383,-1020 338.506,-999.286 304.351,-952.393 284.971,-920.088"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="285.982,-919.392 283.142,-917.008 283.876,-920.643 285.982,-919.392"/>
+<text text-anchor="middle" x="397" y="-1012" font-family="Arial" font-size="10.00" fill="#0d1074">0.82%</text>
+<text text-anchor="middle" x="397" y="-1001" font-family="Arial" font-size="10.00" fill="#0d1074">1×</text>
+</g>
+<!-- void std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::_M_assign_aux&lt;char**&gt;(char**, char**, std::forward_iterator_tag) -->
+<g id="node45" class="node"><title>void std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::_M_assign_aux&lt;char**&gt;(char**, char**, std::forward_iterator_tag)</title>
+<polygon fill="#0d1776" stroke="#0d1776" points="3148.5,-989 2603.5,-989 2603.5,-926 3148.5,-926 3148.5,-989"/>
+<text text-anchor="middle" x="2876" y="-977" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2876" y="-966" font-family="Arial" font-size="10.00" fill="#ffffff">void std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::_M_assign_aux&lt;char**&gt;(char**, char**, std::forward_iterator_tag)</text>
+<text text-anchor="middle" x="2876" y="-955" font-family="Arial" font-size="10.00" fill="#ffffff">2.46%</text>
+<text text-anchor="middle" x="2876" y="-944" font-family="Arial" font-size="10.00" fill="#ffffff">(0.09%)</text>
+<text text-anchor="middle" x="2876" y="-933" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- main&#45;&gt;void std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::_M_assign_aux&lt;char**&gt;(char**, char**, std::forward_iterator_tag) -->
+<g id="edge39" class="edge"><title>main&#45;&gt;void std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::_M_assign_aux&lt;char**&gt;(char**, char**, std::forward_iterator_tag)</title>
+<path fill="none" stroke="#0d1776" stroke-width="0.5" d="M2861.36,-1028.92C2863.72,-1017.56 2866.42,-1004.59 2868.85,-992.904"/>
+<polygon fill="#0d1776" stroke="#0d1776" stroke-width="0.5" points="2870.08,-992.998 2869.59,-989.322 2867.68,-992.499 2870.08,-992.998"/>
+<text text-anchor="middle" x="2882" y="-1012" font-family="Arial" font-size="10.00" fill="#0d1776">2.46%</text>
+<text text-anchor="middle" x="2882" y="-1001" font-family="Arial" font-size="10.00" fill="#0d1776">1×</text>
+</g>
+<!-- 0x0000000000402ad3 -->
+<g id="node5" class="node"><title>0x0000000000402ad3</title>
+<polygon fill="#ff0000" stroke="#ff0000" points="2910.5,-2060 2799.5,-2060 2799.5,-1997 2910.5,-1997 2910.5,-2060"/>
+<text text-anchor="middle" x="2855" y="-2048" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2855" y="-2037" font-family="Arial" font-size="10.00" fill="#ffffff">0x0000000000402ad3</text>
+<text text-anchor="middle" x="2855" y="-2026" font-family="Arial" font-size="10.00" fill="#ffffff">100.00%</text>
+<text text-anchor="middle" x="2855" y="-2015" font-family="Arial" font-size="10.00" fill="#ffffff">(0.00%)</text>
+<text text-anchor="middle" x="2855" y="-2004" font-family="Arial" font-size="10.00" fill="#ffffff">0×</text>
+</g>
+<!-- 0x0000000000402ad3&#45;&gt;(below main) -->
+<g id="edge4" class="edge"><title>0x0000000000402ad3&#45;&gt;(below main)</title>
+<path fill="none" stroke="#ff0000" stroke-width="4" d="M2855,-1996.92C2855,-1987.61 2855,-1977.23 2855,-1967.36"/>
+<polygon fill="#ff0000" stroke="#ff0000" stroke-width="4" points="2858.5,-1967.32 2855,-1957.32 2851.5,-1967.32 2858.5,-1967.32"/>
+<text text-anchor="middle" x="2874.5" y="-1980" font-family="Arial" font-size="10.00" fill="#ff0000">100.00%</text>
+<text text-anchor="middle" x="2874.5" y="-1969" font-family="Arial" font-size="10.00" fill="#ff0000">1×</text>
+</g>
+<!-- std::ios_base::Init::Init() -->
+<g id="node7" class="node"><title>std::ios_base::Init::Init()</title>
+<polygon fill="#0d3f81" stroke="#0d3f81" points="1515.5,-1607 1396.5,-1607 1396.5,-1544 1515.5,-1544 1515.5,-1607"/>
+<text text-anchor="middle" x="1456" y="-1595" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1456" y="-1584" font-family="Arial" font-size="10.00" fill="#ffffff">std::ios_base::Init::Init()</text>
+<text text-anchor="middle" x="1456" y="-1573" font-family="Arial" font-size="10.00" fill="#ffffff">10.90%</text>
+<text text-anchor="middle" x="1456" y="-1562" font-family="Arial" font-size="10.00" fill="#ffffff">(0.09%)</text>
+<text text-anchor="middle" x="1456" y="-1551" font-family="Arial" font-size="10.00" fill="#ffffff">2×</text>
+</g>
+<!-- _GLOBAL__sub_I_main&#45;&gt;std::ios_base::Init::Init() -->
+<g id="edge5" class="edge"><title>_GLOBAL__sub_I_main&#45;&gt;std::ios_base::Init::Init()</title>
+<path fill="none" stroke="#0d3f81" stroke-width="0.5" d="M2631.13,-1672.53C2421.73,-1655.41 1732.27,-1599.08 1519.26,-1581.67"/>
+<polygon fill="#0d3f81" stroke="#0d3f81" stroke-width="0.5" points="1519.14,-1580.43 1515.55,-1581.37 1518.94,-1582.87 1519.14,-1580.43"/>
+<text text-anchor="middle" x="2202" y="-1630" font-family="Arial" font-size="10.00" fill="#0d3f81">10.89%</text>
+<text text-anchor="middle" x="2202" y="-1619" font-family="Arial" font-size="10.00" fill="#0d3f81">1×</text>
+</g>
+<!-- std::basic_ios&lt;char, std::char_traits&lt;char&gt; &gt;::init(std::basic_streambuf&lt;char, std::char_traits&lt;char&gt; &gt;*) -->
+<g id="node56" class="node"><title>std::basic_ios&lt;char, std::char_traits&lt;char&gt; &gt;::init(std::basic_streambuf&lt;char, std::char_traits&lt;char&gt; &gt;*)</title>
+<polygon fill="#0d1274" stroke="#0d1274" points="1899,-1504 1431,-1504 1431,-1441 1899,-1441 1899,-1504"/>
+<text text-anchor="middle" x="1665" y="-1492" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1665" y="-1481" font-family="Arial" font-size="10.00" fill="#ffffff">std::basic_ios&lt;char, std::char_traits&lt;char&gt; &gt;::init(std::basic_streambuf&lt;char, std::char_traits&lt;char&gt; &gt;*)</text>
+<text text-anchor="middle" x="1665" y="-1470" font-family="Arial" font-size="10.00" fill="#ffffff">1.17%</text>
+<text text-anchor="middle" x="1665" y="-1459" font-family="Arial" font-size="10.00" fill="#ffffff">(0.03%)</text>
+<text text-anchor="middle" x="1665" y="-1448" font-family="Arial" font-size="10.00" fill="#ffffff">4×</text>
+</g>
+<!-- std::ios_base::Init::Init()&#45;&gt;std::basic_ios&lt;char, std::char_traits&lt;char&gt; &gt;::init(std::basic_streambuf&lt;char, std::char_traits&lt;char&gt; &gt;*) -->
+<g id="edge71" class="edge"><title>std::ios_base::Init::Init()&#45;&gt;std::basic_ios&lt;char, std::char_traits&lt;char&gt; &gt;::init(std::basic_streambuf&lt;char, std::char_traits&lt;char&gt; &gt;*)</title>
+<path fill="none" stroke="#0d1274" stroke-width="0.5" d="M1515.61,-1545.69C1541.47,-1533.2 1571.85,-1518.52 1598.44,-1505.67"/>
+<polygon fill="#0d1274" stroke="#0d1274" stroke-width="0.5" points="1599.04,-1506.74 1601.66,-1504.11 1597.98,-1504.53 1599.04,-1506.74"/>
+<text text-anchor="middle" x="1594" y="-1527" font-family="Arial" font-size="10.00" fill="#0d1274">1.17%</text>
+<text text-anchor="middle" x="1594" y="-1516" font-family="Arial" font-size="10.00" fill="#0d1274">4×</text>
+</g>
+<!-- std::basic_ios&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;::init(std::basic_streambuf&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;*) -->
+<g id="node58" class="node"><title>std::basic_ios&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;::init(std::basic_streambuf&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;*)</title>
+<polygon fill="#0d1174" stroke="#0d1174" points="1313,-1504 785,-1504 785,-1441 1313,-1441 1313,-1504"/>
+<text text-anchor="middle" x="1049" y="-1492" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1049" y="-1481" font-family="Arial" font-size="10.00" fill="#ffffff">std::basic_ios&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;::init(std::basic_streambuf&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;*)</text>
+<text text-anchor="middle" x="1049" y="-1470" font-family="Arial" font-size="10.00" fill="#ffffff">0.97%</text>
+<text text-anchor="middle" x="1049" y="-1459" font-family="Arial" font-size="10.00" fill="#ffffff">(0.03%)</text>
+<text text-anchor="middle" x="1049" y="-1448" font-family="Arial" font-size="10.00" fill="#ffffff">4×</text>
+</g>
+<!-- std::ios_base::Init::Init()&#45;&gt;std::basic_ios&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;::init(std::basic_streambuf&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;*) -->
+<g id="edge72" class="edge"><title>std::ios_base::Init::Init()&#45;&gt;std::basic_ios&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;::init(std::basic_streambuf&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;*)</title>
+<path fill="none" stroke="#0d1174" stroke-width="0.5" d="M1396.38,-1559.71C1338.68,-1545.39 1249.37,-1523.22 1175.76,-1504.96"/>
+<polygon fill="#0d1174" stroke="#0d1174" stroke-width="0.5" points="1175.96,-1503.74 1172.26,-1504.09 1175.37,-1506.12 1175.96,-1503.74"/>
+<text text-anchor="middle" x="1303" y="-1527" font-family="Arial" font-size="10.00" fill="#0d1174">0.97%</text>
+<text text-anchor="middle" x="1303" y="-1516" font-family="Arial" font-size="10.00" fill="#0d1174">4×</text>
+</g>
+<!-- std::locale::locale() -->
+<g id="node64" class="node"><title>std::locale::locale()</title>
+<polygon fill="#0d347e" stroke="#0d347e" points="1421.5,-1504 1322.5,-1504 1322.5,-1441 1421.5,-1441 1421.5,-1504"/>
+<text text-anchor="middle" x="1372" y="-1492" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1372" y="-1481" font-family="Arial" font-size="10.00" fill="#ffffff">std::locale::locale()</text>
+<text text-anchor="middle" x="1372" y="-1470" font-family="Arial" font-size="10.00" fill="#ffffff">8.60%</text>
+<text text-anchor="middle" x="1372" y="-1459" font-family="Arial" font-size="10.00" fill="#ffffff">(0.13%)</text>
+<text text-anchor="middle" x="1372" y="-1448" font-family="Arial" font-size="10.00" fill="#ffffff">22×</text>
+</g>
+<!-- std::ios_base::Init::Init()&#45;&gt;std::locale::locale() -->
+<g id="edge73" class="edge"><title>std::ios_base::Init::Init()&#45;&gt;std::locale::locale()</title>
+<path fill="none" stroke="#0d337e" stroke-width="0.5" d="M1430.57,-1543.92C1420.95,-1532.36 1409.96,-1519.14 1400.11,-1507.3"/>
+<polygon fill="#0d337e" stroke="#0d337e" stroke-width="0.5" points="1400.81,-1506.23 1397.63,-1504.32 1398.93,-1507.8 1400.81,-1506.23"/>
+<text text-anchor="middle" x="1436" y="-1527" font-family="Arial" font-size="10.00" fill="#0d337e">8.46%</text>
+<text text-anchor="middle" x="1436" y="-1516" font-family="Arial" font-size="10.00" fill="#0d337e">6×</text>
+</g>
+<!-- _IO_file_overflow -->
+<g id="node8" class="node"><title>_IO_file_overflow</title>
+<polygon fill="#0d2f7d" stroke="#0d2f7d" points="3532,-454 3444,-454 3444,-391 3532,-391 3532,-454"/>
+<text text-anchor="middle" x="3488" y="-442" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3488" y="-431" font-family="Arial" font-size="10.00" fill="#ffffff">_IO_file_overflow</text>
+<text text-anchor="middle" x="3488" y="-420" font-family="Arial" font-size="10.00" fill="#ffffff">7.60%</text>
+<text text-anchor="middle" x="3488" y="-409" font-family="Arial" font-size="10.00" fill="#ffffff">(7.20%)</text>
+<text text-anchor="middle" x="3488" y="-398" font-family="Arial" font-size="10.00" fill="#ffffff">716×</text>
+</g>
+<!-- _IO_file_xsputn -->
+<g id="node9" class="node"><title>_IO_file_xsputn</title>
+<polygon fill="#0d1876" stroke="#0d1876" points="3701.5,-701 3618.5,-701 3618.5,-638 3701.5,-638 3701.5,-701"/>
+<text text-anchor="middle" x="3660" y="-689" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3660" y="-678" font-family="Arial" font-size="10.00" fill="#ffffff">_IO_file_xsputn</text>
+<text text-anchor="middle" x="3660" y="-667" font-family="Arial" font-size="10.00" fill="#ffffff">2.64%</text>
+<text text-anchor="middle" x="3660" y="-656" font-family="Arial" font-size="10.00" fill="#ffffff">(1.59%)</text>
+<text text-anchor="middle" x="3660" y="-645" font-family="Arial" font-size="10.00" fill="#ffffff">91×</text>
+</g>
+<!-- _IO_file_xsputn&#45;&gt;_IO_file_overflow -->
+<g id="edge6" class="edge"><title>_IO_file_xsputn&#45;&gt;_IO_file_overflow</title>
+<path fill="none" stroke="#0d0f73" stroke-width="0.5" d="M3664.48,-637.915C3668.26,-599.799 3668.59,-534.727 3635,-494 3606.63,-459.603 3582.99,-473.723 3543,-454 3540.58,-452.805 3538.11,-451.555 3535.62,-450.274"/>
+<polygon fill="#0d0f73" stroke="#0d0f73" stroke-width="0.5" points="3535.9,-449.038 3532.23,-448.508 3534.77,-451.211 3535.9,-449.038"/>
+<text text-anchor="middle" x="3676" y="-528.5" font-family="Arial" font-size="10.00" fill="#0d0f73">0.50%</text>
+<text text-anchor="middle" x="3676" y="-517.5" font-family="Arial" font-size="10.00" fill="#0d0f73">14×</text>
+</g>
+<!-- mempcpy -->
+<g id="node10" class="node"><title>mempcpy</title>
+<polygon fill="#0d1074" stroke="#0d1074" points="3630.5,-557 3571.5,-557 3571.5,-494 3630.5,-494 3630.5,-557"/>
+<text text-anchor="middle" x="3601" y="-545" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3601" y="-534" font-family="Arial" font-size="10.00" fill="#ffffff">mempcpy</text>
+<text text-anchor="middle" x="3601" y="-523" font-family="Arial" font-size="10.00" fill="#ffffff">0.84%</text>
+<text text-anchor="middle" x="3601" y="-512" font-family="Arial" font-size="10.00" fill="#ffffff">(0.84%)</text>
+<text text-anchor="middle" x="3601" y="-501" font-family="Arial" font-size="10.00" fill="#ffffff">145×</text>
+</g>
+<!-- _IO_file_xsputn&#45;&gt;mempcpy -->
+<g id="edge7" class="edge"><title>_IO_file_xsputn&#45;&gt;mempcpy</title>
+<path fill="none" stroke="#0d0f73" stroke-width="0.5" d="M3630.24,-637.614C3628.3,-634.816 3626.52,-631.929 3625,-629 3613.96,-607.672 3607.93,-581.234 3604.68,-560.551"/>
+<polygon fill="#0d0f73" stroke="#0d0f73" stroke-width="0.5" points="3605.88,-560.297 3604.14,-557.022 3603.46,-560.666 3605.88,-560.297"/>
+<text text-anchor="middle" x="3639" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d0f73">0.45%</text>
+<text text-anchor="middle" x="3639" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d0f73">78×</text>
+</g>
+<!-- ____strtod_l_internal -->
+<g id="node11" class="node"><title>____strtod_l_internal</title>
+<polygon fill="#0d1a77" stroke="#0d1a77" points="3609.5,-701 3502.5,-701 3502.5,-638 3609.5,-638 3609.5,-701"/>
+<text text-anchor="middle" x="3556" y="-689" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3556" y="-678" font-family="Arial" font-size="10.00" fill="#ffffff">____strtod_l_internal</text>
+<text text-anchor="middle" x="3556" y="-667" font-family="Arial" font-size="10.00" fill="#ffffff">3.13%</text>
+<text text-anchor="middle" x="3556" y="-656" font-family="Arial" font-size="10.00" fill="#ffffff">(1.99%)</text>
+<text text-anchor="middle" x="3556" y="-645" font-family="Arial" font-size="10.00" fill="#ffffff">17×</text>
+</g>
+<!-- memcpy -->
+<g id="node12" class="node"><title>memcpy</title>
+<polygon fill="#0d0f73" stroke="#0d0f73" points="3551,-557 3495,-557 3495,-494 3551,-494 3551,-557"/>
+<text text-anchor="middle" x="3523" y="-545" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3523" y="-534" font-family="Arial" font-size="10.00" fill="#ffffff">memcpy</text>
+<text text-anchor="middle" x="3523" y="-523" font-family="Arial" font-size="10.00" fill="#ffffff">0.50%</text>
+<text text-anchor="middle" x="3523" y="-512" font-family="Arial" font-size="10.00" fill="#ffffff">(0.50%)</text>
+<text text-anchor="middle" x="3523" y="-501" font-family="Arial" font-size="10.00" fill="#ffffff">70×</text>
+</g>
+<!-- ____strtod_l_internal&#45;&gt;memcpy -->
+<g id="edge8" class="edge"><title>____strtod_l_internal&#45;&gt;memcpy</title>
+<path fill="none" stroke="#0d0d73" stroke-width="0.5" d="M3567.27,-637.62C3573.08,-616.579 3577.06,-588.556 3567,-566 3563.98,-559.233 3559.17,-553.141 3553.81,-547.882"/>
+<polygon fill="#0d0d73" stroke="#0d0d73" stroke-width="0.5" points="3554.53,-546.876 3551.14,-545.368 3552.85,-548.66 3554.53,-546.876"/>
+<text text-anchor="middle" x="3588" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d0d73">0.10%</text>
+<text text-anchor="middle" x="3588" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d0d73">19×</text>
 </g>
 <!-- __cos_avx -->
-<g id="node4" class="node"><title>__cos_avx</title>
-<polygon fill="#0d1c77" stroke="#0d1c77" points="2159.5,-269 2097.5,-269 2097.5,-206 2159.5,-206 2159.5,-269"/>
-<text text-anchor="middle" x="2128.5" y="-257" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="2128.5" y="-246" font-family="Arial" font-size="10.00" fill="#ffffff">__cos_avx</text>
-<text text-anchor="middle" x="2128.5" y="-235" font-family="Arial" font-size="10.00" fill="#ffffff">3.58%</text>
-<text text-anchor="middle" x="2128.5" y="-224" font-family="Arial" font-size="10.00" fill="#ffffff">(2.43%)</text>
-<text text-anchor="middle" x="2128.5" y="-213" font-family="Arial" font-size="10.00" fill="#ffffff">3600000×</text>
-</g>
-<!-- csloww -->
-<g id="node5" class="node"><title>csloww</title>
-<polygon fill="#0d1274" stroke="#0d1274" points="2156.5,-166 2100.5,-166 2100.5,-103 2156.5,-103 2156.5,-166"/>
-<text text-anchor="middle" x="2128.5" y="-154" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="2128.5" y="-143" font-family="Arial" font-size="10.00" fill="#ffffff">csloww</text>
-<text text-anchor="middle" x="2128.5" y="-132" font-family="Arial" font-size="10.00" fill="#ffffff">1.15%</text>
-<text text-anchor="middle" x="2128.5" y="-121" font-family="Arial" font-size="10.00" fill="#ffffff">(0.15%)</text>
-<text text-anchor="middle" x="2128.5" y="-110" font-family="Arial" font-size="10.00" fill="#ffffff">150000×</text>
-</g>
-<!-- __cos_avx&#45;&gt;csloww -->
-<g id="edge3" class="edge"><title>__cos_avx&#45;&gt;csloww</title>
-<path fill="none" stroke="#0d1274" stroke-width="0.5" d="M2128.5,-205.923C2128.5,-194.557 2128.5,-181.589 2128.5,-169.904"/>
-<polygon fill="#0d1274" stroke="#0d1274" stroke-width="0.5" points="2129.73,-169.822 2128.5,-166.322 2127.28,-169.822 2129.73,-169.822"/>
-<text text-anchor="middle" x="2147.5" y="-189" font-family="Arial" font-size="10.00" fill="#0d1274">1.15%</text>
-<text text-anchor="middle" x="2147.5" y="-178" font-family="Arial" font-size="10.00" fill="#0d1274">150000×</text>
-</g>
-<!-- __dubsin -->
-<g id="node6" class="node"><title>__dubsin</title>
-<polygon fill="#0d1174" stroke="#0d1174" points="2156.5,-63 2100.5,-63 2100.5,-0 2156.5,-0 2156.5,-63"/>
-<text text-anchor="middle" x="2128.5" y="-51" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="2128.5" y="-40" font-family="Arial" font-size="10.00" fill="#ffffff">__dubsin</text>
-<text text-anchor="middle" x="2128.5" y="-29" font-family="Arial" font-size="10.00" fill="#ffffff">1.00%</text>
-<text text-anchor="middle" x="2128.5" y="-18" font-family="Arial" font-size="10.00" fill="#ffffff">(1.00%)</text>
-<text text-anchor="middle" x="2128.5" y="-7" font-family="Arial" font-size="10.00" fill="#ffffff">300000×</text>
-</g>
-<!-- csloww&#45;&gt;__dubsin -->
-<g id="edge5" class="edge"><title>csloww&#45;&gt;__dubsin</title>
-<path fill="none" stroke="#0d1174" stroke-width="0.5" d="M2128.5,-102.923C2128.5,-91.5573 2128.5,-78.5886 2128.5,-66.9039"/>
-<polygon fill="#0d1174" stroke="#0d1174" stroke-width="0.5" points="2129.73,-66.822 2128.5,-63.3221 2127.28,-66.8221 2129.73,-66.822"/>
-<text text-anchor="middle" x="2147.5" y="-86" font-family="Arial" font-size="10.00" fill="#0d1174">1.00%</text>
-<text text-anchor="middle" x="2147.5" y="-75" font-family="Arial" font-size="10.00" fill="#0d1174">300000×</text>
+<g id="node13" class="node"><title>__cos_avx</title>
+<polygon fill="#0d1274" stroke="#0d1274" points="1720,-310 1658,-310 1658,-247 1720,-247 1720,-310"/>
+<text text-anchor="middle" x="1689" y="-298" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1689" y="-287" font-family="Arial" font-size="10.00" fill="#ffffff">__cos_avx</text>
+<text text-anchor="middle" x="1689" y="-276" font-family="Arial" font-size="10.00" fill="#ffffff">1.19%</text>
+<text text-anchor="middle" x="1689" y="-265" font-family="Arial" font-size="10.00" fill="#ffffff">(0.81%)</text>
+<text text-anchor="middle" x="1689" y="-254" font-family="Arial" font-size="10.00" fill="#ffffff">24×</text>
+</g>
+<!-- __dynamic_cast -->
+<g id="node14" class="node"><title>__dynamic_cast</title>
+<polygon fill="#0d1375" stroke="#0d1375" points="3007,-2060 2919,-2060 2919,-1997 3007,-1997 3007,-2060"/>
+<text text-anchor="middle" x="2963" y="-2048" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2963" y="-2037" font-family="Arial" font-size="10.00" fill="#ffffff">__dynamic_cast</text>
+<text text-anchor="middle" x="2963" y="-2026" font-family="Arial" font-size="10.00" fill="#ffffff">1.43%</text>
+<text text-anchor="middle" x="2963" y="-2015" font-family="Arial" font-size="10.00" fill="#ffffff">(0.72%)</text>
+<text text-anchor="middle" x="2963" y="-2004" font-family="Arial" font-size="10.00" fill="#ffffff">48×</text>
 </g>
 <!-- __ieee754_exp_avx -->
-<g id="node7" class="node"><title>__ieee754_exp_avx</title>
-<polygon fill="#0d1575" stroke="#0d1575" points="3198,-372 3097,-372 3097,-309 3198,-309 3198,-372"/>
-<text text-anchor="middle" x="3147.5" y="-360" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="3147.5" y="-349" font-family="Arial" font-size="10.00" fill="#ffffff">__ieee754_exp_avx</text>
-<text text-anchor="middle" x="3147.5" y="-338" font-family="Arial" font-size="10.00" fill="#ffffff">1.95%</text>
-<text text-anchor="middle" x="3147.5" y="-327" font-family="Arial" font-size="10.00" fill="#ffffff">(1.95%)</text>
-<text text-anchor="middle" x="3147.5" y="-316" font-family="Arial" font-size="10.00" fill="#ffffff">3300000×</text>
+<g id="node15" class="node"><title>__ieee754_exp_avx</title>
+<polygon fill="#0d0f74" stroke="#0d0f74" points="1201.5,-454 1100.5,-454 1100.5,-391 1201.5,-391 1201.5,-454"/>
+<text text-anchor="middle" x="1151" y="-442" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1151" y="-431" font-family="Arial" font-size="10.00" fill="#ffffff">__ieee754_exp_avx</text>
+<text text-anchor="middle" x="1151" y="-420" font-family="Arial" font-size="10.00" fill="#ffffff">0.65%</text>
+<text text-anchor="middle" x="1151" y="-409" font-family="Arial" font-size="10.00" fill="#ffffff">(0.65%)</text>
+<text text-anchor="middle" x="1151" y="-398" font-family="Arial" font-size="10.00" fill="#ffffff">22×</text>
+</g>
+<!-- _dl_get_origin -->
+<g id="node27" class="node"><title>_dl_get_origin</title>
+<polygon fill="#0d0f73" stroke="#0d0f73" points="3624.5,-454 3547.5,-454 3547.5,-391 3624.5,-391 3624.5,-454"/>
+<text text-anchor="middle" x="3586" y="-442" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3586" y="-431" font-family="Arial" font-size="10.00" fill="#ffffff">_dl_get_origin</text>
+<text text-anchor="middle" x="3586" y="-420" font-family="Arial" font-size="10.00" fill="#ffffff">0.57%</text>
+<text text-anchor="middle" x="3586" y="-409" font-family="Arial" font-size="10.00" fill="#ffffff">(0.03%)</text>
+<text text-anchor="middle" x="3586" y="-398" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- _dl_non_dynamic_init&#45;&gt;_dl_get_origin -->
+<g id="edge21" class="edge"><title>_dl_non_dynamic_init&#45;&gt;_dl_get_origin</title>
+<path fill="none" stroke="#0d0f73" stroke-width="0.5" d="M3702.68,-498.148C3696.13,-494.118 3689.74,-489.714 3684,-485 3674.24,-476.981 3676.4,-470.169 3666,-463 3655.58,-455.822 3650.54,-459.181 3639,-454 3635.29,-452.336 3631.51,-450.487 3627.75,-448.546"/>
+<polygon fill="#0d0f73" stroke="#0d0f73" stroke-width="0.5" points="3628.28,-447.438 3624.61,-446.897 3627.14,-449.607 3628.28,-447.438"/>
+<text text-anchor="middle" x="3698" y="-477" font-family="Arial" font-size="10.00" fill="#0d0f73">0.57%</text>
+<text text-anchor="middle" x="3698" y="-466" font-family="Arial" font-size="10.00" fill="#0d0f73">1×</text>
+</g>
+<!-- _dl_init_paths -->
+<g id="node29" class="node"><title>_dl_init_paths</title>
+<polygon fill="#0d1074" stroke="#0d1074" points="3720.5,-454 3643.5,-454 3643.5,-391 3720.5,-391 3720.5,-454"/>
+<text text-anchor="middle" x="3682" y="-442" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3682" y="-431" font-family="Arial" font-size="10.00" fill="#ffffff">_dl_init_paths</text>
+<text text-anchor="middle" x="3682" y="-420" font-family="Arial" font-size="10.00" fill="#ffffff">0.67%</text>
+<text text-anchor="middle" x="3682" y="-409" font-family="Arial" font-size="10.00" fill="#ffffff">(0.10%)</text>
+<text text-anchor="middle" x="3682" y="-398" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- _dl_non_dynamic_init&#45;&gt;_dl_init_paths -->
+<g id="edge22" class="edge"><title>_dl_non_dynamic_init&#45;&gt;_dl_init_paths</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M3734.99,-493.923C3726.29,-482.361 3716.34,-469.141 3707.43,-457.301"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="3708.28,-456.382 3705.19,-454.322 3706.32,-457.855 3708.28,-456.382"/>
+<text text-anchor="middle" x="3741" y="-477" font-family="Arial" font-size="10.00" fill="#0d1074">0.67%</text>
+<text text-anchor="middle" x="3741" y="-466" font-family="Arial" font-size="10.00" fill="#0d1074">1×</text>
+</g>
+<!-- getenv -->
+<g id="node30" class="node"><title>getenv</title>
+<polygon fill="#0d1274" stroke="#0d1274" points="3791,-454 3735,-454 3735,-391 3791,-391 3791,-454"/>
+<text text-anchor="middle" x="3763" y="-442" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3763" y="-431" font-family="Arial" font-size="10.00" fill="#ffffff">getenv</text>
+<text text-anchor="middle" x="3763" y="-420" font-family="Arial" font-size="10.00" fill="#ffffff">1.19%</text>
+<text text-anchor="middle" x="3763" y="-409" font-family="Arial" font-size="10.00" fill="#ffffff">(0.97%)</text>
+<text text-anchor="middle" x="3763" y="-398" font-family="Arial" font-size="10.00" fill="#ffffff">7×</text>
+</g>
+<!-- _dl_non_dynamic_init&#45;&gt;getenv -->
+<g id="edge23" class="edge"><title>_dl_non_dynamic_init&#45;&gt;getenv</title>
+<path fill="none" stroke="#0d1274" stroke-width="0.5" d="M3759.51,-493.923C3760.08,-482.557 3760.72,-469.589 3761.3,-457.904"/>
+<polygon fill="#0d1274" stroke="#0d1274" stroke-width="0.5" points="3762.52,-457.878 3761.47,-454.322 3760.08,-457.757 3762.52,-457.878"/>
+<text text-anchor="middle" x="3775" y="-477" font-family="Arial" font-size="10.00" fill="#0d1274">1.19%</text>
+<text text-anchor="middle" x="3775" y="-466" font-family="Arial" font-size="10.00" fill="#0d1274">7×</text>
+</g>
+<!-- __memcmp_sse4_1 -->
+<g id="node17" class="node"><title>__memcmp_sse4_1</title>
+<polygon fill="#0d0f74" stroke="#0d0f74" points="2798,-557 2694,-557 2694,-494 2798,-494 2798,-557"/>
+<text text-anchor="middle" x="2746" y="-545" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2746" y="-534" font-family="Arial" font-size="10.00" fill="#ffffff">__memcmp_sse4_1</text>
+<text text-anchor="middle" x="2746" y="-523" font-family="Arial" font-size="10.00" fill="#ffffff">0.66%</text>
+<text text-anchor="middle" x="2746" y="-512" font-family="Arial" font-size="10.00" fill="#ffffff">(0.66%)</text>
+<text text-anchor="middle" x="2746" y="-501" font-family="Arial" font-size="10.00" fill="#ffffff">110×</text>
+</g>
+<!-- __mpn_divrem -->
+<g id="node18" class="node"><title>__mpn_divrem</title>
+<polygon fill="#0d0f73" stroke="#0d0f73" points="3414.5,-454 3335.5,-454 3335.5,-391 3414.5,-391 3414.5,-454"/>
+<text text-anchor="middle" x="3375" y="-442" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3375" y="-431" font-family="Arial" font-size="10.00" fill="#ffffff">__mpn_divrem</text>
+<text text-anchor="middle" x="3375" y="-420" font-family="Arial" font-size="10.00" fill="#ffffff">0.55%</text>
+<text text-anchor="middle" x="3375" y="-409" font-family="Arial" font-size="10.00" fill="#ffffff">(0.55%)</text>
+<text text-anchor="middle" x="3375" y="-398" font-family="Arial" font-size="10.00" fill="#ffffff">40×</text>
+</g>
+<!-- __mpn_mul_1 -->
+<g id="node19" class="node"><title>__mpn_mul_1</title>
+<polygon fill="#0d1876" stroke="#0d1876" points="3326.5,-454 3249.5,-454 3249.5,-391 3326.5,-391 3326.5,-454"/>
+<text text-anchor="middle" x="3288" y="-442" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3288" y="-431" font-family="Arial" font-size="10.00" fill="#ffffff">__mpn_mul_1</text>
+<text text-anchor="middle" x="3288" y="-420" font-family="Arial" font-size="10.00" fill="#ffffff">2.67%</text>
+<text text-anchor="middle" x="3288" y="-409" font-family="Arial" font-size="10.00" fill="#ffffff">(2.67%)</text>
+<text text-anchor="middle" x="3288" y="-398" font-family="Arial" font-size="10.00" fill="#ffffff">421×</text>
+</g>
+<!-- __overflow -->
+<g id="node20" class="node"><title>__overflow</title>
+<polygon fill="#0d327d" stroke="#0d327d" points="3485.5,-557 3424.5,-557 3424.5,-494 3485.5,-494 3485.5,-557"/>
+<text text-anchor="middle" x="3455" y="-545" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3455" y="-534" font-family="Arial" font-size="10.00" fill="#ffffff">__overflow</text>
+<text text-anchor="middle" x="3455" y="-523" font-family="Arial" font-size="10.00" fill="#ffffff">8.32%</text>
+<text text-anchor="middle" x="3455" y="-512" font-family="Arial" font-size="10.00" fill="#ffffff">(1.28%)</text>
+<text text-anchor="middle" x="3455" y="-501" font-family="Arial" font-size="10.00" fill="#ffffff">696×</text>
+</g>
+<!-- __overflow&#45;&gt;_IO_file_overflow -->
+<g id="edge11" class="edge"><title>__overflow&#45;&gt;_IO_file_overflow</title>
+<path fill="none" stroke="#0d2c7c" stroke-width="0.5" d="M3464.99,-493.923C3468.7,-482.557 3472.94,-469.589 3476.76,-457.904"/>
+<polygon fill="#0d2c7c" stroke="#0d2c7c" stroke-width="0.5" points="3478.01,-458.029 3477.93,-454.322 3475.68,-457.269 3478.01,-458.029"/>
+<text text-anchor="middle" x="3489" y="-477" font-family="Arial" font-size="10.00" fill="#0d2c7c">7.04%</text>
+<text text-anchor="middle" x="3489" y="-466" font-family="Arial" font-size="10.00" fill="#0d2c7c">696×</text>
+</g>
+<!-- vfprintf -->
+<g id="node22" class="node"><title>vfprintf</title>
+<polygon fill="#0baa41" stroke="#0baa41" points="3491,-845 3435,-845 3435,-782 3491,-782 3491,-845"/>
+<text text-anchor="middle" x="3463" y="-833" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3463" y="-822" font-family="Arial" font-size="10.00" fill="#ffffff">vfprintf</text>
+<text text-anchor="middle" x="3463" y="-811" font-family="Arial" font-size="10.00" fill="#ffffff">41.50%</text>
+<text text-anchor="middle" x="3463" y="-800" font-family="Arial" font-size="10.00" fill="#ffffff">(4.28%)</text>
+<text text-anchor="middle" x="3463" y="-789" font-family="Arial" font-size="10.00" fill="#ffffff">13×</text>
+</g>
+<!-- __printf_chk&#45;&gt;vfprintf -->
+<g id="edge12" class="edge"><title>__printf_chk&#45;&gt;vfprintf</title>
+<path fill="none" stroke="#0baa41" stroke-width="1.66" d="M3273.71,-929.015C3275.15,-927.984 3276.58,-926.975 3278,-926 3329.01,-890.872 3391.21,-854.659 3428.92,-833.384"/>
+<polygon fill="#0baa41" stroke="#0baa41" stroke-width="1.66" points="3430.28,-835.19 3434.76,-830.1 3428.08,-831.286 3430.28,-835.19"/>
+<text text-anchor="middle" x="3409" y="-888.5" font-family="Arial" font-size="10.00" fill="#0baa41">41.50%</text>
+<text text-anchor="middle" x="3409" y="-877.5" font-family="Arial" font-size="10.00" fill="#0baa41">13×</text>
+</g>
+<!-- vfprintf&#45;&gt;_IO_file_xsputn -->
+<g id="edge87" class="edge"><title>vfprintf&#45;&gt;_IO_file_xsputn</title>
+<path fill="none" stroke="#0d1776" stroke-width="0.5" d="M3491.27,-783.612C3494.05,-780.163 3496.69,-776.589 3499,-773 3515.49,-747.386 3501.46,-728.043 3526,-710 3541.84,-698.357 3595.49,-707.624 3614,-701 3614.27,-700.903 3614.54,-700.804 3614.81,-700.704"/>
+<polygon fill="#0d1776" stroke="#0d1776" stroke-width="0.5" points="3615.53,-701.735 3618.32,-699.295 3614.62,-699.462 3615.53,-701.735"/>
+<text text-anchor="middle" x="3540" y="-744.5" font-family="Arial" font-size="10.00" fill="#0d1776">2.42%</text>
+<text text-anchor="middle" x="3540" y="-733.5" font-family="Arial" font-size="10.00" fill="#0d1776">81×</text>
+</g>
+<!-- __printf_fp -->
+<g id="node23" class="node"><title>__printf_fp</title>
+<polygon fill="#0ba06a" stroke="#0ba06a" points="3493.5,-701 3432.5,-701 3432.5,-638 3493.5,-638 3493.5,-701"/>
+<text text-anchor="middle" x="3463" y="-689" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3463" y="-678" font-family="Arial" font-size="10.00" fill="#ffffff">__printf_fp</text>
+<text text-anchor="middle" x="3463" y="-667" font-family="Arial" font-size="10.00" fill="#ffffff">34.03%</text>
+<text text-anchor="middle" x="3463" y="-656" font-family="Arial" font-size="10.00" fill="#ffffff">(16.39%)</text>
+<text text-anchor="middle" x="3463" y="-645" font-family="Arial" font-size="10.00" fill="#ffffff">64×</text>
+</g>
+<!-- vfprintf&#45;&gt;__printf_fp -->
+<g id="edge88" class="edge"><title>vfprintf&#45;&gt;__printf_fp</title>
+<path fill="none" stroke="#0ba06a" stroke-width="1.36" d="M3463,-781.688C3463,-759.824 3463,-730.378 3463,-707.282"/>
+<polygon fill="#0ba06a" stroke="#0ba06a" stroke-width="1.36" points="3465.03,-707.052 3463,-701.252 3460.97,-707.052 3465.03,-707.052"/>
+<text text-anchor="middle" x="3480" y="-744.5" font-family="Arial" font-size="10.00" fill="#0ba06a">34.03%</text>
+<text text-anchor="middle" x="3480" y="-733.5" font-family="Arial" font-size="10.00" fill="#0ba06a">64×</text>
+</g>
+<!-- __printf_fp&#45;&gt;mempcpy -->
+<g id="edge17" class="edge"><title>__printf_fp&#45;&gt;mempcpy</title>
+<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M3493.82,-640.569C3495.21,-639.661 3496.6,-638.8 3498,-638 3508.98,-631.723 3516.67,-638.521 3525,-629 3543.77,-607.545 3519.8,-588.731 3537,-566 3542.4,-558.867 3547.26,-561.48 3555,-557 3559.31,-554.504 3563.77,-551.764 3568.14,-548.982"/>
+<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="3568.86,-549.973 3571.14,-547.051 3567.54,-547.912 3568.86,-549.973"/>
+<text text-anchor="middle" x="3551" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d0e73">0.35%</text>
+<text text-anchor="middle" x="3551" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d0e73">64×</text>
+</g>
+<!-- __printf_fp&#45;&gt;memcpy -->
+<g id="edge16" class="edge"><title>__printf_fp&#45;&gt;memcpy</title>
+<path fill="none" stroke="#0d0d73" stroke-width="0.5" d="M3479.38,-637.74C3480.69,-634.823 3481.92,-631.879 3483,-629 3493.14,-601.95 3487.82,-592.638 3499,-566 3499.78,-564.15 3500.63,-562.285 3501.54,-560.425"/>
+<polygon fill="#0d0d73" stroke="#0d0d73" stroke-width="0.5" points="3502.74,-560.763 3503.23,-557.087 3500.55,-559.657 3502.74,-560.763"/>
+<text text-anchor="middle" x="3513" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d0d73">0.14%</text>
+<text text-anchor="middle" x="3513" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d0d73">20×</text>
+</g>
+<!-- __printf_fp&#45;&gt;__mpn_mul_1 -->
+<g id="edge13" class="edge"><title>__printf_fp&#45;&gt;__mpn_mul_1</title>
+<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M3432.36,-640.211C3430.93,-639.402 3429.47,-638.659 3428,-638 3398.98,-624.988 3385.19,-643.724 3357,-629 3318.79,-609.044 3308.08,-597.001 3292,-557 3279.21,-525.188 3279.86,-485.588 3282.69,-457.809"/>
+<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="3283.93,-457.752 3283.09,-454.141 3281.5,-457.49 3283.93,-457.752"/>
+<text text-anchor="middle" x="3306" y="-528.5" font-family="Arial" font-size="10.00" fill="#0d0e73">0.23%</text>
+<text text-anchor="middle" x="3306" y="-517.5" font-family="Arial" font-size="10.00" fill="#0d0e73">23×</text>
+</g>
+<!-- __printf_fp&#45;&gt;__overflow -->
+<g id="edge14" class="edge"><title>__printf_fp&#45;&gt;__overflow</title>
+<path fill="none" stroke="#0d327d" stroke-width="0.5" d="M3457.95,-637.926C3457.58,-634.916 3457.25,-631.903 3457,-629 3455.07,-606.389 3454.57,-580.876 3454.55,-560.959"/>
+<polygon fill="#0d327d" stroke="#0d327d" stroke-width="0.5" points="3455.77,-560.554 3454.55,-557.053 3453.32,-560.552 3455.77,-560.554"/>
+<text text-anchor="middle" x="3471" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d327d">8.32%</text>
+<text text-anchor="middle" x="3471" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d327d">696×</text>
+</g>
+<!-- hack_digit.13261 -->
+<g id="node24" class="node"><title>hack_digit.13261</title>
+<polygon fill="#0d2a7b" stroke="#0d2a7b" points="3415,-557 3325,-557 3325,-494 3415,-494 3415,-557"/>
+<text text-anchor="middle" x="3370" y="-545" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3370" y="-534" font-family="Arial" font-size="10.00" fill="#ffffff">hack_digit.13261</text>
+<text text-anchor="middle" x="3370" y="-523" font-family="Arial" font-size="10.00" fill="#ffffff">6.58%</text>
+<text text-anchor="middle" x="3370" y="-512" font-family="Arial" font-size="10.00" fill="#ffffff">(3.60%)</text>
+<text text-anchor="middle" x="3370" y="-501" font-family="Arial" font-size="10.00" fill="#ffffff">426×</text>
+</g>
+<!-- __printf_fp&#45;&gt;hack_digit.13261 -->
+<g id="edge15" class="edge"><title>__printf_fp&#45;&gt;hack_digit.13261</title>
+<path fill="none" stroke="#0d2a7b" stroke-width="0.5" d="M3432.33,-640.278C3430.9,-639.451 3429.46,-638.686 3428,-638 3405.58,-627.461 3389.31,-647.639 3373,-629 3356.97,-610.688 3357.21,-582.71 3360.9,-560.608"/>
+<polygon fill="#0d2a7b" stroke="#0d2a7b" stroke-width="0.5" points="3362.12,-560.774 3361.53,-557.113 3359.71,-560.345 3362.12,-560.774"/>
+<text text-anchor="middle" x="3387" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d2a7b">6.58%</text>
+<text text-anchor="middle" x="3387" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d2a7b">426×</text>
+</g>
+<!-- strlen -->
+<g id="node25" class="node"><title>strlen</title>
+<polygon fill="#0d1274" stroke="#0d1274" points="2863,-557 2807,-557 2807,-494 2863,-494 2863,-557"/>
+<text text-anchor="middle" x="2835" y="-545" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2835" y="-534" font-family="Arial" font-size="10.00" fill="#ffffff">strlen</text>
+<text text-anchor="middle" x="2835" y="-523" font-family="Arial" font-size="10.00" fill="#ffffff">1.23%</text>
+<text text-anchor="middle" x="2835" y="-512" font-family="Arial" font-size="10.00" fill="#ffffff">(1.23%)</text>
+<text text-anchor="middle" x="2835" y="-501" font-family="Arial" font-size="10.00" fill="#ffffff">245×</text>
+</g>
+<!-- __printf_fp&#45;&gt;strlen -->
+<g id="edge18" class="edge"><title>__printf_fp&#45;&gt;strlen</title>
+<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M3432.42,-640.069C3430.97,-639.3 3429.49,-638.604 3428,-638 3391.9,-623.408 3290.12,-640.76 3253,-629 3202.92,-613.136 3203.23,-581.364 3153,-566 3122.6,-556.701 2896.33,-569.276 2867,-557 2866.84,-556.933 2866.68,-556.865 2866.52,-556.796"/>
+<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="2866.92,-555.629 2863.24,-555.186 2865.84,-557.828 2866.92,-555.629"/>
+<text text-anchor="middle" x="3267" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d0e73">0.31%</text>
+<text text-anchor="middle" x="3267" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d0e73">64×</text>
+</g>
+<!-- hack_digit.13261&#45;&gt;__mpn_divrem -->
+<g id="edge30" class="edge"><title>hack_digit.13261&#45;&gt;__mpn_divrem</title>
+<path fill="none" stroke="#0d0f73" stroke-width="0.5" d="M3371.51,-493.923C3372.08,-482.557 3372.72,-469.589 3373.3,-457.904"/>
+<polygon fill="#0d0f73" stroke="#0d0f73" stroke-width="0.5" points="3374.52,-457.878 3373.47,-454.322 3372.08,-457.757 3374.52,-457.878"/>
+<text text-anchor="middle" x="3387" y="-477" font-family="Arial" font-size="10.00" fill="#0d0f73">0.55%</text>
+<text text-anchor="middle" x="3387" y="-466" font-family="Arial" font-size="10.00" fill="#0d0f73">40×</text>
+</g>
+<!-- hack_digit.13261&#45;&gt;__mpn_mul_1 -->
+<g id="edge31" class="edge"><title>hack_digit.13261&#45;&gt;__mpn_mul_1</title>
+<path fill="none" stroke="#0d1776" stroke-width="0.5" d="M3345.17,-493.923C3335.79,-482.361 3325.06,-469.141 3315.44,-457.301"/>
+<polygon fill="#0d1776" stroke="#0d1776" stroke-width="0.5" points="3316.18,-456.267 3313.02,-454.322 3314.28,-457.811 3316.18,-456.267"/>
+<text text-anchor="middle" x="3351" y="-477" font-family="Arial" font-size="10.00" fill="#0d1776">2.43%</text>
+<text text-anchor="middle" x="3351" y="-466" font-family="Arial" font-size="10.00" fill="#0d1776">396×</text>
 </g>
 <!-- __sin_avx -->
-<g id="node8" class="node"><title>__sin_avx</title>
-<polygon fill="#0d1675" stroke="#0d1675" points="2231,-269 2172,-269 2172,-206 2231,-206 2231,-269"/>
-<text text-anchor="middle" x="2201.5" y="-257" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="2201.5" y="-246" font-family="Arial" font-size="10.00" fill="#ffffff">__sin_avx</text>
-<text text-anchor="middle" x="2201.5" y="-235" font-family="Arial" font-size="10.00" fill="#ffffff">2.12%</text>
-<text text-anchor="middle" x="2201.5" y="-224" font-family="Arial" font-size="10.00" fill="#ffffff">(2.12%)</text>
-<text text-anchor="middle" x="2201.5" y="-213" font-family="Arial" font-size="10.00" fill="#ffffff">2850000×</text>
+<g id="node26" class="node"><title>__sin_avx</title>
+<polygon fill="#0d1074" stroke="#0d1074" points="899.5,-310 840.5,-310 840.5,-247 899.5,-247 899.5,-310"/>
+<text text-anchor="middle" x="870" y="-298" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="870" y="-287" font-family="Arial" font-size="10.00" fill="#ffffff">__sin_avx</text>
+<text text-anchor="middle" x="870" y="-276" font-family="Arial" font-size="10.00" fill="#ffffff">0.70%</text>
+<text text-anchor="middle" x="870" y="-265" font-family="Arial" font-size="10.00" fill="#ffffff">(0.70%)</text>
+<text text-anchor="middle" x="870" y="-254" font-family="Arial" font-size="10.00" fill="#ffffff">19×</text>
+</g>
+<!-- malloc -->
+<g id="node28" class="node"><title>malloc</title>
+<polygon fill="#0d307d" stroke="#0d307d" points="2783,-310 2727,-310 2727,-247 2783,-247 2783,-310"/>
+<text text-anchor="middle" x="2755" y="-298" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2755" y="-287" font-family="Arial" font-size="10.00" fill="#ffffff">malloc</text>
+<text text-anchor="middle" x="2755" y="-276" font-family="Arial" font-size="10.00" fill="#ffffff">7.78%</text>
+<text text-anchor="middle" x="2755" y="-265" font-family="Arial" font-size="10.00" fill="#ffffff">(1.63%)</text>
+<text text-anchor="middle" x="2755" y="-254" font-family="Arial" font-size="10.00" fill="#ffffff">134×</text>
+</g>
+<!-- _dl_get_origin&#45;&gt;malloc -->
+<g id="edge19" class="edge"><title>_dl_get_origin&#45;&gt;malloc</title>
+<path fill="none" stroke="#0d0f73" stroke-width="0.5" d="M3547.46,-395.937C3543.68,-394.064 3539.83,-392.375 3536,-391 3258.6,-291.38 2895.69,-280.455 2787.05,-279.503"/>
+<polygon fill="#0d0f73" stroke="#0d0f73" stroke-width="0.5" points="2786.81,-278.276 2783.3,-279.473 2786.79,-280.726 2786.81,-278.276"/>
+<text text-anchor="middle" x="3510" y="-353.5" font-family="Arial" font-size="10.00" fill="#0d0f73">0.53%</text>
+<text text-anchor="middle" x="3510" y="-342.5" font-family="Arial" font-size="10.00" fill="#0d0f73">1×</text>
+</g>
+<!-- _int_malloc -->
+<g id="node33" class="node"><title>_int_malloc</title>
+<polygon fill="#0d277a" stroke="#0d277a" points="2463,-166 2397,-166 2397,-103 2463,-103 2463,-166"/>
+<text text-anchor="middle" x="2430" y="-154" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2430" y="-143" font-family="Arial" font-size="10.00" fill="#ffffff">_int_malloc</text>
+<text text-anchor="middle" x="2430" y="-132" font-family="Arial" font-size="10.00" fill="#ffffff">5.98%</text>
+<text text-anchor="middle" x="2430" y="-121" font-family="Arial" font-size="10.00" fill="#ffffff">(5.71%)</text>
+<text text-anchor="middle" x="2430" y="-110" font-family="Arial" font-size="10.00" fill="#ffffff">134×</text>
+</g>
+<!-- malloc&#45;&gt;_int_malloc -->
+<g id="edge40" class="edge"><title>malloc&#45;&gt;_int_malloc</title>
+<path fill="none" stroke="#0d257a" stroke-width="0.5" d="M2726.73,-265.147C2667.86,-239.426 2532.18,-180.144 2466.69,-151.529"/>
+<polygon fill="#0d257a" stroke="#0d257a" stroke-width="0.5" points="2466.94,-150.302 2463.24,-150.023 2465.96,-152.547 2466.94,-150.302"/>
+<text text-anchor="middle" x="2673" y="-209.5" font-family="Arial" font-size="10.00" fill="#0d257a">5.63%</text>
+<text text-anchor="middle" x="2673" y="-198.5" font-family="Arial" font-size="10.00" fill="#0d257a">133×</text>
+</g>
+<!-- malloc_hook_ini -->
+<g id="node46" class="node"><title>malloc_hook_ini</title>
+<polygon fill="#0d0f73" stroke="#0d0f73" points="2798,-166 2712,-166 2712,-103 2798,-103 2798,-166"/>
+<text text-anchor="middle" x="2755" y="-154" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2755" y="-143" font-family="Arial" font-size="10.00" fill="#ffffff">malloc_hook_ini</text>
+<text text-anchor="middle" x="2755" y="-132" font-family="Arial" font-size="10.00" fill="#ffffff">0.52%</text>
+<text text-anchor="middle" x="2755" y="-121" font-family="Arial" font-size="10.00" fill="#ffffff">(0.00%)</text>
+<text text-anchor="middle" x="2755" y="-110" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- malloc&#45;&gt;malloc_hook_ini -->
+<g id="edge41" class="edge"><title>malloc&#45;&gt;malloc_hook_ini</title>
+<path fill="none" stroke="#0d0f73" stroke-width="0.5" d="M2755,-246.688C2755,-224.079 2755,-193.364 2755,-169.945"/>
+<polygon fill="#0d0f73" stroke="#0d0f73" stroke-width="0.5" points="2756.23,-169.752 2755,-166.252 2753.78,-169.752 2756.23,-169.752"/>
+<text text-anchor="middle" x="2769" y="-209.5" font-family="Arial" font-size="10.00" fill="#0d0f73">0.52%</text>
+<text text-anchor="middle" x="2769" y="-198.5" font-family="Arial" font-size="10.00" fill="#0d0f73">1×</text>
+</g>
+<!-- _dl_init_paths&#45;&gt;malloc -->
+<g id="edge20" class="edge"><title>_dl_init_paths&#45;&gt;malloc</title>
+<path fill="none" stroke="#0d0d73" stroke-width="0.5" d="M3647.37,-390.864C3617.51,-366.493 3572.04,-334.068 3526,-319 3454.98,-295.759 2922.55,-283.033 2786.55,-280.141"/>
+<polygon fill="#0d0d73" stroke="#0d0d73" stroke-width="0.5" points="2786.55,-278.915 2783.03,-280.066 2786.5,-281.365 2786.55,-278.915"/>
+<text text-anchor="middle" x="3648" y="-353.5" font-family="Arial" font-size="10.00" fill="#0d0d73">0.17%</text>
+<text text-anchor="middle" x="3648" y="-342.5" font-family="Arial" font-size="10.00" fill="#0d0d73">3×</text>
 </g>
 <!-- _int_free -->
-<g id="node9" class="node"><title>_int_free</title>
-<polygon fill="#0d367e" stroke="#0d367e" points="3407,-269 3342,-269 3342,-206 3407,-206 3407,-269"/>
-<text text-anchor="middle" x="3374.5" y="-257" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="3374.5" y="-246" font-family="Arial" font-size="10.00" fill="#ffffff">_int_free</text>
-<text text-anchor="middle" x="3374.5" y="-235" font-family="Arial" font-size="10.00" fill="#ffffff">9.00%</text>
-<text text-anchor="middle" x="3374.5" y="-224" font-family="Arial" font-size="10.00" fill="#ffffff">(6.91%)</text>
-<text text-anchor="middle" x="3374.5" y="-213" font-family="Arial" font-size="10.00" fill="#ffffff">12900042×</text>
+<g id="node31" class="node"><title>_int_free</title>
+<polygon fill="#0d1e78" stroke="#0d1e78" points="948,-238 892,-238 892,-175 948,-175 948,-238"/>
+<text text-anchor="middle" x="920" y="-226" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="920" y="-215" font-family="Arial" font-size="10.00" fill="#ffffff">_int_free</text>
+<text text-anchor="middle" x="920" y="-204" font-family="Arial" font-size="10.00" fill="#ffffff">3.97%</text>
+<text text-anchor="middle" x="920" y="-193" font-family="Arial" font-size="10.00" fill="#ffffff">(3.27%)</text>
+<text text-anchor="middle" x="920" y="-182" font-family="Arial" font-size="10.00" fill="#ffffff">128×</text>
 </g>
 <!-- malloc_consolidate -->
-<g id="node10" class="node"><title>malloc_consolidate</title>
-<polygon fill="#0d1675" stroke="#0d1675" points="3424.5,-166 3324.5,-166 3324.5,-103 3424.5,-103 3424.5,-166"/>
-<text text-anchor="middle" x="3374.5" y="-154" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="3374.5" y="-143" font-family="Arial" font-size="10.00" fill="#ffffff">malloc_consolidate</text>
-<text text-anchor="middle" x="3374.5" y="-132" font-family="Arial" font-size="10.00" fill="#ffffff">2.09%</text>
-<text text-anchor="middle" x="3374.5" y="-121" font-family="Arial" font-size="10.00" fill="#ffffff">(2.09%)</text>
-<text text-anchor="middle" x="3374.5" y="-110" font-family="Arial" font-size="10.00" fill="#ffffff">300001×</text>
+<g id="node32" class="node"><title>malloc_consolidate</title>
+<polygon fill="#0d1174" stroke="#0d1174" points="2072,-63 1972,-63 1972,-0 2072,-0 2072,-63"/>
+<text text-anchor="middle" x="2022" y="-51" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2022" y="-40" font-family="Arial" font-size="10.00" fill="#ffffff">malloc_consolidate</text>
+<text text-anchor="middle" x="2022" y="-29" font-family="Arial" font-size="10.00" fill="#ffffff">0.94%</text>
+<text text-anchor="middle" x="2022" y="-18" font-family="Arial" font-size="10.00" fill="#ffffff">(0.94%)</text>
+<text text-anchor="middle" x="2022" y="-7" font-family="Arial" font-size="10.00" fill="#ffffff">3×</text>
 </g>
 <!-- _int_free&#45;&gt;malloc_consolidate -->
-<g id="edge4" class="edge"><title>_int_free&#45;&gt;malloc_consolidate</title>
-<path fill="none" stroke="#0d1675" stroke-width="0.5" d="M3374.5,-205.923C3374.5,-194.557 3374.5,-181.589 3374.5,-169.904"/>
-<polygon fill="#0d1675" stroke="#0d1675" stroke-width="0.5" points="3375.73,-169.822 3374.5,-166.322 3373.28,-169.822 3375.73,-169.822"/>
-<text text-anchor="middle" x="3393.5" y="-189" font-family="Arial" font-size="10.00" fill="#0d1675">2.09%</text>
-<text text-anchor="middle" x="3393.5" y="-178" font-family="Arial" font-size="10.00" fill="#0d1675">300000×</text>
+<g id="edge24" class="edge"><title>_int_free&#45;&gt;malloc_consolidate</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M948.069,-201.093C1094.43,-178.116 1770.93,-71.9145 1968,-40.9779"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="1968.45,-42.1473 1971.71,-40.3942 1968.07,-39.7269 1968.45,-42.1473"/>
+<text text-anchor="middle" x="1580" y="-137.5" font-family="Arial" font-size="10.00" fill="#0d1074">0.70%</text>
+<text text-anchor="middle" x="1580" y="-126.5" font-family="Arial" font-size="10.00" fill="#0d1074">2×</text>
+</g>
+<!-- _int_malloc&#45;&gt;malloc_consolidate -->
+<g id="edge25" class="edge"><title>_int_malloc&#45;&gt;malloc_consolidate</title>
+<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M2396.96,-125.32C2326.6,-107.904 2161.44,-67.019 2075.73,-45.8013"/>
+<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="2075.91,-44.5824 2072.21,-44.9304 2075.32,-46.9607 2075.91,-44.5824"/>
+<text text-anchor="middle" x="2277" y="-86" font-family="Arial" font-size="10.00" fill="#0d0e73">0.24%</text>
+<text text-anchor="middle" x="2277" y="-75" font-family="Arial" font-size="10.00" fill="#0d0e73">1×</text>
+</g>
+<!-- btowc -->
+<g id="node34" class="node"><title>btowc</title>
+<polygon fill="#0d1876" stroke="#0d1876" points="56,-845 0,-845 0,-782 56,-782 56,-845"/>
+<text text-anchor="middle" x="28" y="-833" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="28" y="-822" font-family="Arial" font-size="10.00" fill="#ffffff">btowc</text>
+<text text-anchor="middle" x="28" y="-811" font-family="Arial" font-size="10.00" fill="#ffffff">2.75%</text>
+<text text-anchor="middle" x="28" y="-800" font-family="Arial" font-size="10.00" fill="#ffffff">(2.43%)</text>
+<text text-anchor="middle" x="28" y="-789" font-family="Arial" font-size="10.00" fill="#ffffff">256×</text>
+</g>
+<!-- char* std::string::_S_construct&lt;char const*&gt;(char const*, char const*, std::allocator&lt;char&gt; const&amp;, std::forward_iterator_tag) -->
+<g id="node35" class="node"><title>char* std::string::_S_construct&lt;char const*&gt;(char const*, char const*, std::allocator&lt;char&gt; const&amp;, std::forward_iterator_tag)</title>
+<polygon fill="#0d1675" stroke="#0d1675" points="3423.5,-701 2864.5,-701 2864.5,-638 3423.5,-638 3423.5,-701"/>
+<text text-anchor="middle" x="3144" y="-689" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3144" y="-678" font-family="Arial" font-size="10.00" fill="#ffffff">char* std::string::_S_construct&lt;char const*&gt;(char const*, char const*, std::allocator&lt;char&gt; const&amp;, std::forward_iterator_tag)</text>
+<text text-anchor="middle" x="3144" y="-667" font-family="Arial" font-size="10.00" fill="#ffffff">2.10%</text>
+<text text-anchor="middle" x="3144" y="-656" font-family="Arial" font-size="10.00" fill="#ffffff">(0.25%)</text>
+<text text-anchor="middle" x="3144" y="-645" font-family="Arial" font-size="10.00" fill="#ffffff">25×</text>
+</g>
+<!-- char* std::string::_S_construct&lt;char const*&gt;(char const*, char const*, std::allocator&lt;char&gt; const&amp;, std::forward_iterator_tag)&#45;&gt;memcpy -->
+<g id="edge26" class="edge"><title>char* std::string::_S_construct&lt;char const*&gt;(char const*, char const*, std::allocator&lt;char&gt; const&amp;, std::forward_iterator_tag)&#45;&gt;memcpy</title>
+<path fill="none" stroke="#0d0d73" stroke-width="0.5" d="M3382.71,-637.991C3389.34,-635.244 3394.86,-632.254 3399,-629 3422.81,-610.272 3401.04,-584.536 3425,-566 3448.07,-548.154 3463.64,-569.47 3490,-557 3490.63,-556.7 3491.27,-556.383 3491.89,-556.051"/>
+<polygon fill="#0d0d73" stroke="#0d0d73" stroke-width="0.5" points="3492.56,-557.079 3494.99,-554.274 3491.34,-554.955 3492.56,-557.079"/>
+<text text-anchor="middle" x="3439" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d0d73">0.16%</text>
+<text text-anchor="middle" x="3439" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d0d73">23×</text>
+</g>
+<!-- std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator&lt;char&gt; const&amp;) -->
+<g id="node36" class="node"><title>std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator&lt;char&gt; const&amp;)</title>
+<polygon fill="#0d1475" stroke="#0d1475" points="3270,-557 2872,-557 2872,-494 3270,-494 3270,-557"/>
+<text text-anchor="middle" x="3071" y="-545" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3071" y="-534" font-family="Arial" font-size="10.00" fill="#ffffff">std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator&lt;char&gt; const&amp;)</text>
+<text text-anchor="middle" x="3071" y="-523" font-family="Arial" font-size="10.00" fill="#ffffff">1.82%</text>
+<text text-anchor="middle" x="3071" y="-512" font-family="Arial" font-size="10.00" fill="#ffffff">(0.17%)</text>
+<text text-anchor="middle" x="3071" y="-501" font-family="Arial" font-size="10.00" fill="#ffffff">27×</text>
+</g>
+<!-- char* std::string::_S_construct&lt;char const*&gt;(char const*, char const*, std::allocator&lt;char&gt; const&amp;, std::forward_iterator_tag)&#45;&gt;std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator&lt;char&gt; const&amp;) -->
+<g id="edge27" class="edge"><title>char* std::string::_S_construct&lt;char const*&gt;(char const*, char const*, std::allocator&lt;char&gt; const&amp;, std::forward_iterator_tag)&#45;&gt;std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator&lt;char&gt; const&amp;)</title>
+<path fill="none" stroke="#0d1475" stroke-width="0.5" d="M3128.16,-637.688C3116.44,-614.893 3100.49,-583.858 3088.41,-560.369"/>
+<polygon fill="#0d1475" stroke="#0d1475" stroke-width="0.5" points="3089.5,-559.804 3086.81,-557.252 3087.32,-560.925 3089.5,-559.804"/>
+<text text-anchor="middle" x="3137" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d1475">1.69%</text>
+<text text-anchor="middle" x="3137" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d1475">25×</text>
 </g>
-<!-- _int_malloc -->
-<g id="node11" class="node"><title>_int_malloc</title>
-<polygon fill="#0d4281" stroke="#0d4281" points="1089.5,-166 1023.5,-166 1023.5,-103 1089.5,-103 1089.5,-166"/>
-<text text-anchor="middle" x="1056.5" y="-154" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="1056.5" y="-143" font-family="Arial" font-size="10.00" fill="#ffffff">_int_malloc</text>
-<text text-anchor="middle" x="1056.5" y="-132" font-family="Arial" font-size="10.00" fill="#ffffff">11.34%</text>
-<text text-anchor="middle" x="1056.5" y="-121" font-family="Arial" font-size="10.00" fill="#ffffff">(11.34%)</text>
-<text text-anchor="middle" x="1056.5" y="-110" font-family="Arial" font-size="10.00" fill="#ffffff">12900048×</text>
+<!-- operator new(unsigned long) -->
+<g id="node52" class="node"><title>operator new(unsigned long)</title>
+<polygon fill="#0d2d7c" stroke="#0d2d7c" points="2672,-454 2534,-454 2534,-391 2672,-391 2672,-454"/>
+<text text-anchor="middle" x="2603" y="-442" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2603" y="-431" font-family="Arial" font-size="10.00" fill="#ffffff">operator new(unsigned long)</text>
+<text text-anchor="middle" x="2603" y="-420" font-family="Arial" font-size="10.00" fill="#ffffff">7.34%</text>
+<text text-anchor="middle" x="2603" y="-409" font-family="Arial" font-size="10.00" fill="#ffffff">(0.43%)</text>
+<text text-anchor="middle" x="2603" y="-398" font-family="Arial" font-size="10.00" fill="#ffffff">127×</text>
+</g>
+<!-- std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator&lt;char&gt; const&amp;)&#45;&gt;operator new(unsigned long) -->
+<g id="edge80" class="edge"><title>std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator&lt;char&gt; const&amp;)&#45;&gt;operator new(unsigned long)</title>
+<path fill="none" stroke="#0d1475" stroke-width="0.5" d="M2929.63,-493.991C2845.96,-475.934 2743.45,-453.811 2675.84,-439.221"/>
+<polygon fill="#0d1475" stroke="#0d1475" stroke-width="0.5" points="2675.93,-437.986 2672.25,-438.445 2675.41,-440.381 2675.93,-437.986"/>
+<text text-anchor="middle" x="2893" y="-477" font-family="Arial" font-size="10.00" fill="#0d1475">1.65%</text>
+<text text-anchor="middle" x="2893" y="-466" font-family="Arial" font-size="10.00" fill="#0d1475">27×</text>
+</g>
+<!-- strtod -->
+<g id="node38" class="node"><title>strtod</title>
+<polygon fill="#0d1a77" stroke="#0d1a77" points="3584,-845 3528,-845 3528,-782 3584,-782 3584,-845"/>
+<text text-anchor="middle" x="3556" y="-833" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="3556" y="-822" font-family="Arial" font-size="10.00" fill="#ffffff">strtod</text>
+<text text-anchor="middle" x="3556" y="-811" font-family="Arial" font-size="10.00" fill="#ffffff">3.15%</text>
+<text text-anchor="middle" x="3556" y="-800" font-family="Arial" font-size="10.00" fill="#ffffff">(0.02%)</text>
+<text text-anchor="middle" x="3556" y="-789" font-family="Arial" font-size="10.00" fill="#ffffff">17×</text>
+</g>
+<!-- double __gnu_cxx::__stoa&lt;double, double, char&gt;(double (*)(char const*, char**), char const*, char const*, unsigned long*)&#45;&gt;strtod -->
+<g id="edge28" class="edge"><title>double __gnu_cxx::__stoa&lt;double, double, char&gt;(double (*)(char const*, char**), char const*, char const*, unsigned long*)&#45;&gt;strtod</title>
+<path fill="none" stroke="#0d1a77" stroke-width="0.5" d="M3556,-925.688C3556,-903.079 3556,-872.364 3556,-848.945"/>
+<polygon fill="#0d1a77" stroke="#0d1a77" stroke-width="0.5" points="3557.23,-848.752 3556,-845.252 3554.78,-848.752 3557.23,-848.752"/>
+<text text-anchor="middle" x="3570" y="-888.5" font-family="Arial" font-size="10.00" fill="#0d1a77">3.15%</text>
+<text text-anchor="middle" x="3570" y="-877.5" font-family="Arial" font-size="10.00" fill="#0d1a77">17×</text>
+</g>
+<!-- strtod&#45;&gt;____strtod_l_internal -->
+<g id="edge86" class="edge"><title>strtod&#45;&gt;____strtod_l_internal</title>
+<path fill="none" stroke="#0d1a77" stroke-width="0.5" d="M3556,-781.688C3556,-759.079 3556,-728.364 3556,-704.945"/>
+<polygon fill="#0d1a77" stroke="#0d1a77" stroke-width="0.5" points="3557.23,-704.752 3556,-701.252 3554.78,-704.752 3557.23,-704.752"/>
+<text text-anchor="middle" x="3570" y="-744.5" font-family="Arial" font-size="10.00" fill="#0d1a77">3.13%</text>
+<text text-anchor="middle" x="3570" y="-733.5" font-family="Arial" font-size="10.00" fill="#0d1a77">17×</text>
 </g>
 <!-- free -->
-<g id="node12" class="node"><title>free</title>
-<polygon fill="#0d3b80" stroke="#0d3b80" points="3407,-372 3342,-372 3342,-309 3407,-309 3407,-372"/>
-<text text-anchor="middle" x="3374.5" y="-360" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="3374.5" y="-349" font-family="Arial" font-size="10.00" fill="#ffffff">free</text>
-<text text-anchor="middle" x="3374.5" y="-338" font-family="Arial" font-size="10.00" fill="#ffffff">10.11%</text>
-<text text-anchor="middle" x="3374.5" y="-327" font-family="Arial" font-size="10.00" fill="#ffffff">(1.11%)</text>
-<text text-anchor="middle" x="3374.5" y="-316" font-family="Arial" font-size="10.00" fill="#ffffff">12900042×</text>
+<g id="node39" class="node"><title>free</title>
+<polygon fill="#0d2079" stroke="#0d2079" points="459,-382 403,-382 403,-319 459,-319 459,-382"/>
+<text text-anchor="middle" x="431" y="-370" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="431" y="-359" font-family="Arial" font-size="10.00" fill="#ffffff">free</text>
+<text text-anchor="middle" x="431" y="-348" font-family="Arial" font-size="10.00" fill="#ffffff">4.52%</text>
+<text text-anchor="middle" x="431" y="-337" font-family="Arial" font-size="10.00" fill="#ffffff">(0.55%)</text>
+<text text-anchor="middle" x="431" y="-326" font-family="Arial" font-size="10.00" fill="#ffffff">128×</text>
 </g>
 <!-- free&#45;&gt;_int_free -->
-<g id="edge6" class="edge"><title>free&#45;&gt;_int_free</title>
-<path fill="none" stroke="#0d367e" stroke-width="0.5" d="M3374.5,-308.923C3374.5,-297.557 3374.5,-284.589 3374.5,-272.904"/>
-<polygon fill="#0d367e" stroke="#0d367e" stroke-width="0.5" points="3375.73,-272.822 3374.5,-269.322 3373.28,-272.822 3375.73,-272.822"/>
-<text text-anchor="middle" x="3399" y="-292" font-family="Arial" font-size="10.00" fill="#0d367e">9.00%</text>
-<text text-anchor="middle" x="3399" y="-281" font-family="Arial" font-size="10.00" fill="#0d367e">12900042×</text>
-</g>
-<!-- operator new(unsigned long) -->
-<g id="node17" class="node"><title>operator new(unsigned long)</title>
-<polygon fill="#0c5887" stroke="#0c5887" points="1125.5,-372 987.5,-372 987.5,-309 1125.5,-309 1125.5,-372"/>
-<text text-anchor="middle" x="1056.5" y="-360" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="1056.5" y="-349" font-family="Arial" font-size="10.00" fill="#ffffff">operator new(unsigned long)</text>
-<text text-anchor="middle" x="1056.5" y="-338" font-family="Arial" font-size="10.00" fill="#ffffff">15.39%</text>
-<text text-anchor="middle" x="1056.5" y="-327" font-family="Arial" font-size="10.00" fill="#ffffff">(0.87%)</text>
-<text text-anchor="middle" x="1056.5" y="-316" font-family="Arial" font-size="10.00" fill="#ffffff">12900041×</text>
+<g id="edge29" class="edge"><title>free&#45;&gt;_int_free</title>
+<path fill="none" stroke="#0d1e78" stroke-width="0.5" d="M459.047,-341.355C544.102,-316.656 798.778,-242.701 888.387,-216.68"/>
+<polygon fill="#0d1e78" stroke="#0d1e78" stroke-width="0.5" points="888.742,-217.853 891.762,-215.7 888.059,-215.5 888.742,-217.853"/>
+<text text-anchor="middle" x="790" y="-281.5" font-family="Arial" font-size="10.00" fill="#0d1e78">3.97%</text>
+<text text-anchor="middle" x="790" y="-270.5" font-family="Arial" font-size="10.00" fill="#0d1e78">128×</text>
 </g>
-<!-- nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator new(unsigned long) -->
-<g id="edge31" class="edge"><title>nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator new(unsigned long)</title>
-<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M2268.66,-761.931C2196.96,-741.131 2125.6,-706.713 2076.5,-650 2028.21,-594.223 2031.31,-542.321 2076.5,-484 2084.25,-474.001 2096.1,-485.261 2103.5,-475 2119.87,-452.285 2122.62,-432.453 2103.5,-412 2086.83,-394.172 1364.1,-356.775 1129.32,-345.077"/>
-<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="1129.12,-343.84 1125.56,-344.889 1129,-346.287 1129.12,-343.84"/>
-<text text-anchor="middle" x="2074.5" y="-590.5" font-family="Arial" font-size="10.00" fill="#0d0e73">0.38%</text>
-<text text-anchor="middle" x="2074.5" y="-579.5" font-family="Arial" font-size="10.00" fill="#0d0e73">300000×</text>
+<!-- nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator delete(void*) -->
+<g id="edge56" class="edge"><title>nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator delete(void*)</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M776.482,-925.966C747.222,-923.17 725.52,-920.182 714,-917 584.04,-881.108 523.455,-884.051 447,-773 420.694,-734.79 452.832,-598.772 420,-566 408.9,-554.92 364.987,-561.621 350,-557 349.072,-556.714 348.141,-556.414 347.208,-556.102"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="347.311,-554.84 343.602,-554.839 346.501,-557.152 347.311,-554.84"/>
+<text text-anchor="middle" x="461" y="-744.5" font-family="Arial" font-size="10.00" fill="#0d1074">0.85%</text>
+<text text-anchor="middle" x="461" y="-733.5" font-family="Arial" font-size="10.00" fill="#0d1074">8×</text>
 </g>
 <!-- nmie::MultiLayerMie::RunMieCalculations() -->
-<g id="node18" class="node"><title>nmie::MultiLayerMie::RunMieCalculations()</title>
-<polygon fill="#f83101" stroke="#f83101" points="1592,-722 1389,-722 1389,-659 1592,-659 1592,-722"/>
-<text text-anchor="middle" x="1490.5" y="-710" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="1490.5" y="-699" font-family="Arial" font-size="10.00" fill="#ffffff">nmie::MultiLayerMie::RunMieCalculations()</text>
-<text text-anchor="middle" x="1490.5" y="-688" font-family="Arial" font-size="10.00" fill="#ffffff">95.20%</text>
-<text text-anchor="middle" x="1490.5" y="-677" font-family="Arial" font-size="10.00" fill="#ffffff">(6.68%)</text>
-<text text-anchor="middle" x="1490.5" y="-666" font-family="Arial" font-size="10.00" fill="#ffffff">150000×</text>
+<g id="node47" class="node"><title>nmie::MultiLayerMie::RunMieCalculations()</title>
+<polygon fill="#0b9c77" stroke="#0b9c77" points="1685.5,-845 1482.5,-845 1482.5,-782 1685.5,-782 1685.5,-845"/>
+<text text-anchor="middle" x="1584" y="-833" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1584" y="-822" font-family="Arial" font-size="10.00" fill="#ffffff">nmie::MultiLayerMie::RunMieCalculations()</text>
+<text text-anchor="middle" x="1584" y="-811" font-family="Arial" font-size="10.00" fill="#ffffff">31.46%</text>
+<text text-anchor="middle" x="1584" y="-800" font-family="Arial" font-size="10.00" fill="#ffffff">(2.22%)</text>
+<text text-anchor="middle" x="1584" y="-789" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
 </g>
 <!-- nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;nmie::MultiLayerMie::RunMieCalculations() -->
-<g id="edge28" class="edge"><title>nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;nmie::MultiLayerMie::RunMieCalculations()</title>
-<path fill="none" stroke="#f83101" stroke-width="3.81" d="M2120.92,-761.979C2087.61,-759.094 2054.48,-756.088 2022.5,-753 1877.11,-738.96 1709.83,-718.993 1602.26,-705.659"/>
-<polygon fill="#f83101" stroke="#f83101" stroke-width="3.81" points="1602.52,-702.234 1592.37,-704.43 1601.67,-709.042 1602.52,-702.234"/>
-<text text-anchor="middle" x="2041.5" y="-745" font-family="Arial" font-size="10.00" fill="#f83101">95.20%</text>
-<text text-anchor="middle" x="2041.5" y="-734" font-family="Arial" font-size="10.00" fill="#f83101">150000×</text>
-</g>
-<!-- operator delete(void*) -->
-<g id="node21" class="node"><title>operator delete(void*)</title>
-<polygon fill="#0d3c80" stroke="#0d3c80" points="3428,-475 3321,-475 3321,-412 3428,-412 3428,-475"/>
-<text text-anchor="middle" x="3374.5" y="-463" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="3374.5" y="-452" font-family="Arial" font-size="10.00" fill="#ffffff">operator delete(void*)</text>
-<text text-anchor="middle" x="3374.5" y="-441" font-family="Arial" font-size="10.00" fill="#ffffff">10.19%</text>
-<text text-anchor="middle" x="3374.5" y="-430" font-family="Arial" font-size="10.00" fill="#ffffff">(0.08%)</text>
-<text text-anchor="middle" x="3374.5" y="-419" font-family="Arial" font-size="10.00" fill="#ffffff">12900041×</text>
-</g>
-<!-- nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator delete(void*) -->
-<g id="edge30" class="edge"><title>nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator delete(void*)</title>
-<path fill="none" stroke="#0d1776" stroke-width="0.5" d="M2970.13,-761.997C3169.17,-737.861 3373.34,-694.953 3432.5,-619 3465.13,-577.11 3430.88,-515.993 3402.88,-478.315"/>
-<polygon fill="#0d1776" stroke="#0d1776" stroke-width="0.5" points="3403.61,-477.256 3400.53,-475.194 3401.65,-478.728 3403.61,-477.256"/>
-<text text-anchor="middle" x="3445" y="-642" font-family="Arial" font-size="10.00" fill="#0d1776">2.54%</text>
-<text text-anchor="middle" x="3445" y="-631" font-family="Arial" font-size="10.00" fill="#0d1776">1200000×</text>
-</g>
-<!-- nmie::MultiLayerMie::SetWidthSP(std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;) -->
-<g id="node27" class="node"><title>nmie::MultiLayerMie::SetWidthSP(std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;)</title>
-<polygon fill="#0d1274" stroke="#0d1274" points="3428,-619 3033,-619 3033,-556 3428,-556 3428,-619"/>
-<text text-anchor="middle" x="3230.5" y="-607" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="3230.5" y="-596" font-family="Arial" font-size="10.00" fill="#ffffff">nmie::MultiLayerMie::SetWidthSP(std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;)</text>
-<text text-anchor="middle" x="3230.5" y="-585" font-family="Arial" font-size="10.00" fill="#ffffff">1.18%</text>
-<text text-anchor="middle" x="3230.5" y="-574" font-family="Arial" font-size="10.00" fill="#ffffff">(0.31%)</text>
-<text text-anchor="middle" x="3230.5" y="-563" font-family="Arial" font-size="10.00" fill="#ffffff">150000×</text>
-</g>
-<!-- nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;nmie::MultiLayerMie::SetWidthSP(std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;) -->
-<g id="edge29" class="edge"><title>nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;nmie::MultiLayerMie::SetWidthSP(std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;)</title>
-<path fill="none" stroke="#0d1274" stroke-width="0.5" d="M2636.15,-761.959C2766.95,-723.784 2989.72,-658.771 3122.21,-620.105"/>
-<polygon fill="#0d1274" stroke="#0d1274" stroke-width="0.5" points="3122.69,-621.239 3125.71,-619.083 3122.01,-618.887 3122.69,-621.239"/>
-<text text-anchor="middle" x="3003.5" y="-693.5" font-family="Arial" font-size="10.00" fill="#0d1274">1.18%</text>
-<text text-anchor="middle" x="3003.5" y="-682.5" font-family="Arial" font-size="10.00" fill="#0d1274">150000×</text>
+<g id="edge55" class="edge"><title>nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;nmie::MultiLayerMie::RunMieCalculations()</title>
+<path fill="none" stroke="#0b9c77" stroke-width="1.26" d="M1600.44,-925.688C1597.2,-903.731 1592.82,-874.127 1589.4,-850.987"/>
+<polygon fill="#0b9c77" stroke="#0b9c77" stroke-width="1.26" points="1591.31,-850.505 1588.55,-845.252 1587.43,-851.078 1591.31,-850.505"/>
+<text text-anchor="middle" x="1616" y="-888.5" font-family="Arial" font-size="10.00" fill="#0b9c77">31.46%</text>
+<text text-anchor="middle" x="1616" y="-877.5" font-family="Arial" font-size="10.00" fill="#0b9c77">1×</text>
 </g>
-<!-- malloc -->
-<g id="node14" class="node"><title>malloc</title>
-<polygon fill="#0c5386" stroke="#0c5386" points="1089,-269 1024,-269 1024,-206 1089,-206 1089,-269"/>
-<text text-anchor="middle" x="1056.5" y="-257" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="1056.5" y="-246" font-family="Arial" font-size="10.00" fill="#ffffff">malloc</text>
-<text text-anchor="middle" x="1056.5" y="-235" font-family="Arial" font-size="10.00" fill="#ffffff">14.52%</text>
-<text text-anchor="middle" x="1056.5" y="-224" font-family="Arial" font-size="10.00" fill="#ffffff">(3.18%)</text>
-<text text-anchor="middle" x="1056.5" y="-213" font-family="Arial" font-size="10.00" fill="#ffffff">12900048×</text>
+<!-- nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator new(unsigned long) -->
+<g id="edge57" class="edge"><title>nmie::nMie_wrapper(int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt; const&amp;, int, std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;, double*, double*, double*, double*, double*, double*, double*, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator new(unsigned long)</title>
+<path fill="none" stroke="#0d0d73" stroke-width="0.5" d="M1891.09,-925.986C2013.96,-908.692 2158.15,-882.747 2285,-845 2360.91,-822.411 2377.43,-808.938 2448,-773 2504.79,-744.081 2532.85,-751.285 2572,-701 2589.89,-678.022 2567.69,-656.711 2590,-638 2604.89,-625.512 2663.98,-643.433 2677,-629 2695.75,-608.207 2683.64,-593.201 2677,-566 2667.24,-526.023 2644.13,-484.767 2626.31,-457"/>
+<polygon fill="#0d0d73" stroke="#0d0d73" stroke-width="0.5" points="2627.31,-456.295 2624.38,-454.019 2625.26,-457.624 2627.31,-456.295"/>
+<text text-anchor="middle" x="2604" y="-672.5" font-family="Arial" font-size="10.00" fill="#0d0d73">0.10%</text>
+<text text-anchor="middle" x="2604" y="-661.5" font-family="Arial" font-size="10.00" fill="#0d0d73">2×</text>
 </g>
-<!-- malloc&#45;&gt;_int_malloc -->
-<g id="edge8" class="edge"><title>malloc&#45;&gt;_int_malloc</title>
-<path fill="none" stroke="#0d4281" stroke-width="0.5" d="M1056.5,-205.923C1056.5,-194.557 1056.5,-181.589 1056.5,-169.904"/>
-<polygon fill="#0d4281" stroke="#0d4281" stroke-width="0.5" points="1057.73,-169.822 1056.5,-166.322 1055.28,-169.822 1057.73,-169.822"/>
-<text text-anchor="middle" x="1081" y="-189" font-family="Arial" font-size="10.00" fill="#0d4281">11.34%</text>
-<text text-anchor="middle" x="1081" y="-178" font-family="Arial" font-size="10.00" fill="#0d4281">12900047×</text>
-</g>
-<!-- memset -->
-<g id="node15" class="node"><title>memset</title>
-<polygon fill="#0d0f74" stroke="#0d0f74" points="248,-475 189,-475 189,-412 248,-412 248,-475"/>
-<text text-anchor="middle" x="218.5" y="-463" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="218.5" y="-452" font-family="Arial" font-size="10.00" fill="#ffffff">memset</text>
-<text text-anchor="middle" x="218.5" y="-441" font-family="Arial" font-size="10.00" fill="#ffffff">0.64%</text>
-<text text-anchor="middle" x="218.5" y="-430" font-family="Arial" font-size="10.00" fill="#ffffff">(0.64%)</text>
-<text text-anchor="middle" x="218.5" y="-419" font-family="Arial" font-size="10.00" fill="#ffffff">6450004×</text>
-</g>
-<!-- nmie::MultiLayerMie::InitMieCalculations() -->
-<g id="node16" class="node"><title>nmie::MultiLayerMie::InitMieCalculations()</title>
-<polygon fill="#0d0f73" stroke="#0d0f73" points="1349.5,-547 1151.5,-547 1151.5,-484 1349.5,-484 1349.5,-547"/>
-<text text-anchor="middle" x="1250.5" y="-535" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="1250.5" y="-524" font-family="Arial" font-size="10.00" fill="#ffffff">nmie::MultiLayerMie::InitMieCalculations()</text>
-<text text-anchor="middle" x="1250.5" y="-513" font-family="Arial" font-size="10.00" fill="#ffffff">0.52%</text>
-<text text-anchor="middle" x="1250.5" y="-502" font-family="Arial" font-size="10.00" fill="#ffffff">(0.07%)</text>
-<text text-anchor="middle" x="1250.5" y="-491" font-family="Arial" font-size="10.00" fill="#ffffff">150000×</text>
-</g>
-<!-- nmie::MultiLayerMie::InitMieCalculations()&#45;&gt;operator new(unsigned long) -->
-<g id="edge9" class="edge"><title>nmie::MultiLayerMie::InitMieCalculations()&#45;&gt;operator new(unsigned long)</title>
-<path fill="none" stroke="#0d0d73" stroke-width="0.5" d="M1151.42,-490.041C1138.4,-487.581 1125.18,-485.458 1112.5,-484 1101.67,-482.754 335.166,-482.754 327.5,-475 307.815,-455.088 308.678,-432.73 327.5,-412 371.086,-363.996 808.007,-347.732 983.805,-343.104"/>
-<polygon fill="#0d0d73" stroke="#0d0d73" stroke-width="0.5" points="983.931,-344.326 987.398,-343.01 983.867,-341.877 983.931,-344.326"/>
-<text text-anchor="middle" x="346.5" y="-446.5" font-family="Arial" font-size="10.00" fill="#0d0d73">0.17%</text>
-<text text-anchor="middle" x="346.5" y="-435.5" font-family="Arial" font-size="10.00" fill="#0d0d73">150000×</text>
+<!-- operator delete(void*)&#45;&gt;free -->
+<g id="edge58" class="edge"><title>operator delete(void*)&#45;&gt;free</title>
+<path fill="none" stroke="#0d2079" stroke-width="0.5" d="M306.668,-493.966C312.648,-483.817 319.723,-472.65 327,-463 349.36,-433.348 378.448,-402.708 400.173,-381.069"/>
+<polygon fill="#0d2079" stroke="#0d2079" stroke-width="0.5" points="401.165,-381.811 402.785,-378.476 399.438,-380.073 401.165,-381.811"/>
+<text text-anchor="middle" x="341" y="-477" font-family="Arial" font-size="10.00" fill="#0d2079">4.49%</text>
+<text text-anchor="middle" x="341" y="-466" font-family="Arial" font-size="10.00" fill="#0d2079">127×</text>
+</g>
+<!-- std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;::basic_string(char const*, std::allocator&lt;char&gt; const&amp;)&#45;&gt;strlen -->
+<g id="edge65" class="edge"><title>std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;::basic_string(char const*, std::allocator&lt;char&gt; const&amp;)&#45;&gt;strlen</title>
+<path fill="none" stroke="#0d0d73" stroke-width="0.5" d="M2902.01,-781.828C2876.01,-762.225 2846.33,-734.261 2832,-701 2812.43,-655.578 2819.04,-597.133 2826.39,-560.741"/>
+<polygon fill="#0d0d73" stroke="#0d0d73" stroke-width="0.5" points="2827.6,-560.965 2827.11,-557.289 2825.2,-560.469 2827.6,-560.965"/>
+<text text-anchor="middle" x="2846" y="-672.5" font-family="Arial" font-size="10.00" fill="#0d0d73">0.13%</text>
+<text text-anchor="middle" x="2846" y="-661.5" font-family="Arial" font-size="10.00" fill="#0d0d73">25×</text>
+</g>
+<!-- std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;::basic_string(char const*, std::allocator&lt;char&gt; const&amp;)&#45;&gt;char* std::string::_S_construct&lt;char const*&gt;(char const*, char const*, std::allocator&lt;char&gt; const&amp;, std::forward_iterator_tag) -->
+<g id="edge64" class="edge"><title>std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;::basic_string(char const*, std::allocator&lt;char&gt; const&amp;)&#45;&gt;char* std::string::_S_construct&lt;char const*&gt;(char const*, char const*, std::allocator&lt;char&gt; const&amp;, std::forward_iterator_tag)</title>
+<path fill="none" stroke="#0d1675" stroke-width="0.5" d="M2992.1,-781.688C3023.73,-758.535 3066.97,-726.881 3099.23,-703.267"/>
+<polygon fill="#0d1675" stroke="#0d1675" stroke-width="0.5" points="3100.22,-704.063 3102.32,-701.008 3098.77,-702.086 3100.22,-704.063"/>
+<text text-anchor="middle" x="3101" y="-744.5" font-family="Arial" font-size="10.00" fill="#0d1675">2.10%</text>
+<text text-anchor="middle" x="3101" y="-733.5" font-family="Arial" font-size="10.00" fill="#0d1675">25×</text>
+</g>
+<!-- std::string::compare(char const*) const&#45;&gt;__memcmp_sse4_1 -->
+<g id="edge81" class="edge"><title>std::string::compare(char const*) const&#45;&gt;__memcmp_sse4_1</title>
+<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M2731.09,-637.793C2732.19,-634.864 2733.19,-631.904 2734,-629 2740.18,-606.835 2743.18,-581.11 2744.64,-560.977"/>
+<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="2745.89,-560.603 2744.91,-557.027 2743.45,-560.435 2745.89,-560.603"/>
+<text text-anchor="middle" x="2759" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d0e73">0.38%</text>
+<text text-anchor="middle" x="2759" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d0e73">69×</text>
+</g>
+<!-- std::string::compare(char const*) const&#45;&gt;strlen -->
+<g id="edge82" class="edge"><title>std::string::compare(char const*) const&#45;&gt;strlen</title>
+<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M2767.45,-637.793C2770.22,-635.037 2772.77,-632.105 2775,-629 2791.9,-605.433 2776.82,-590.713 2792,-566 2795.13,-560.905 2797.58,-561.029 2802,-557 2802.71,-556.356 2803.42,-555.704 2804.14,-555.046"/>
+<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="2805.18,-555.75 2806.94,-552.482 2803.53,-553.943 2805.18,-555.75"/>
+<text text-anchor="middle" x="2806" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d0e73">0.34%</text>
+<text text-anchor="middle" x="2806" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d0e73">69×</text>
+</g>
+<!-- std::string::_Rep::_M_destroy(std::allocator&lt;char&gt; const&amp;) -->
+<g id="node69" class="node"><title>std::string::_Rep::_M_destroy(std::allocator&lt;char&gt; const&amp;)</title>
+<polygon fill="#0d1074" stroke="#0d1074" points="403,-773 131,-773 131,-710 403,-710 403,-773"/>
+<text text-anchor="middle" x="267" y="-761" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="267" y="-750" font-family="Arial" font-size="10.00" fill="#ffffff">std::string::_Rep::_M_destroy(std::allocator&lt;char&gt; const&amp;)</text>
+<text text-anchor="middle" x="267" y="-739" font-family="Arial" font-size="10.00" fill="#ffffff">0.70%</text>
+<text text-anchor="middle" x="267" y="-728" font-family="Arial" font-size="10.00" fill="#ffffff">(0.01%)</text>
+<text text-anchor="middle" x="267" y="-717" font-family="Arial" font-size="10.00" fill="#ffffff">25×</text>
+</g>
+<!-- std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::~vector()&#45;&gt;std::string::_Rep::_M_destroy(std::allocator&lt;char&gt; const&amp;) -->
+<g id="edge85" class="edge"><title>std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::~vector()&#45;&gt;std::string::_Rep::_M_destroy(std::allocator&lt;char&gt; const&amp;)</title>
+<path fill="none" stroke="#0d0f74" stroke-width="0.5" d="M267,-853.688C267,-831.079 267,-800.364 267,-776.945"/>
+<polygon fill="#0d0f74" stroke="#0d0f74" stroke-width="0.5" points="268.225,-776.752 267,-773.252 265.775,-776.752 268.225,-776.752"/>
+<text text-anchor="middle" x="281" y="-816.5" font-family="Arial" font-size="10.00" fill="#0d0f74">0.66%</text>
+<text text-anchor="middle" x="281" y="-805.5" font-family="Arial" font-size="10.00" fill="#0d0f74">24×</text>
+</g>
+<!-- void std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::_M_assign_aux&lt;char**&gt;(char**, char**, std::forward_iterator_tag)&#45;&gt;std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;::basic_string(char const*, std::allocator&lt;char&gt; const&amp;) -->
+<g id="edge89" class="edge"><title>void std::vector&lt;std::string, std::allocator&lt;std::string&gt; &gt;::_M_assign_aux&lt;char**&gt;(char**, char**, std::forward_iterator_tag)&#45;&gt;std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;::basic_string(char const*, std::allocator&lt;char&gt; const&amp;)</title>
+<path fill="none" stroke="#0d1676" stroke-width="0.5" d="M2892.06,-925.688C2903.94,-902.893 2920.11,-871.858 2932.35,-848.369"/>
+<polygon fill="#0d1676" stroke="#0d1676" stroke-width="0.5" points="2933.44,-848.922 2933.97,-845.252 2931.27,-847.789 2933.44,-848.922"/>
+<text text-anchor="middle" x="2943" y="-888.5" font-family="Arial" font-size="10.00" fill="#0d1676">2.31%</text>
+<text text-anchor="middle" x="2943" y="-877.5" font-family="Arial" font-size="10.00" fill="#0d1676">24×</text>
 </g>
-<!-- operator new(unsigned long)&#45;&gt;malloc -->
-<g id="edge33" class="edge"><title>operator new(unsigned long)&#45;&gt;malloc</title>
-<path fill="none" stroke="#0c5386" stroke-width="0.58" d="M1056.5,-308.923C1056.5,-297.655 1056.5,-284.812 1056.5,-273.206"/>
-<polygon fill="#0c5386" stroke="#0c5386" stroke-width="0.58" points="1057.83,-273.122 1056.5,-269.322 1055.17,-273.122 1057.83,-273.122"/>
-<text text-anchor="middle" x="1081" y="-292" font-family="Arial" font-size="10.00" fill="#0c5386">14.52%</text>
-<text text-anchor="middle" x="1081" y="-281" font-family="Arial" font-size="10.00" fill="#0c5386">12900041×</text>
-</g>
-<!-- nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;nmie::MultiLayerMie::InitMieCalculations() -->
-<g id="edge10" class="edge"><title>nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;nmie::MultiLayerMie::InitMieCalculations()</title>
-<path fill="none" stroke="#0d0f73" stroke-width="0.5" d="M1448.15,-658.969C1405.35,-628.121 1339.47,-580.63 1295.69,-549.071"/>
-<polygon fill="#0d0f73" stroke="#0d0f73" stroke-width="0.5" points="1296.39,-548.069 1292.83,-547.016 1294.96,-550.056 1296.39,-548.069"/>
-<text text-anchor="middle" x="1453.5" y="-642" font-family="Arial" font-size="10.00" fill="#0d0f73">0.52%</text>
-<text text-anchor="middle" x="1453.5" y="-631" font-family="Arial" font-size="10.00" fill="#0d0f73">150000×</text>
+<!-- nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;operator delete(void*) -->
+<g id="edge44" class="edge"><title>nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;operator delete(void*)</title>
+<path fill="none" stroke="#0d1274" stroke-width="0.5" d="M1482.27,-809.491C1219.22,-800.736 531.969,-771.3 459,-701 415.319,-658.917 482.871,-607.885 439,-566 424.622,-552.273 369.074,-562.599 350,-557 349.068,-556.726 348.133,-556.438 347.197,-556.137"/>
+<polygon fill="#0d1274" stroke="#0d1274" stroke-width="0.5" points="347.288,-554.875 343.58,-554.913 346.503,-557.196 347.288,-554.875"/>
+<text text-anchor="middle" x="473" y="-672.5" font-family="Arial" font-size="10.00" fill="#0d1274">1.30%</text>
+<text text-anchor="middle" x="473" y="-661.5" font-family="Arial" font-size="10.00" fill="#0d1274">46×</text>
 </g>
 <!-- nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;) -->
-<g id="node19" class="node"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</title>
-<polygon fill="#95cf07" stroke="#95cf07" points="2962.5,-619 2114.5,-619 2114.5,-556 2962.5,-556 2962.5,-619"/>
-<text text-anchor="middle" x="2538.5" y="-607" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="2538.5" y="-596" font-family="Arial" font-size="10.00" fill="#ffffff">nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</text>
-<text text-anchor="middle" x="2538.5" y="-585" font-family="Arial" font-size="10.00" fill="#ffffff">67.79%</text>
-<text text-anchor="middle" x="2538.5" y="-574" font-family="Arial" font-size="10.00" fill="#ffffff">(32.37%)</text>
-<text text-anchor="middle" x="2538.5" y="-563" font-family="Arial" font-size="10.00" fill="#ffffff">150000×</text>
+<g id="node48" class="node"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</title>
+<polygon fill="#0c8290" stroke="#0c8290" points="1340,-701 492,-701 492,-638 1340,-638 1340,-701"/>
+<text text-anchor="middle" x="916" y="-689" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="916" y="-678" font-family="Arial" font-size="10.00" fill="#ffffff">nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</text>
+<text text-anchor="middle" x="916" y="-667" font-family="Arial" font-size="10.00" fill="#ffffff">22.42%</text>
+<text text-anchor="middle" x="916" y="-656" font-family="Arial" font-size="10.00" fill="#ffffff">(10.74%)</text>
+<text text-anchor="middle" x="916" y="-645" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
 </g>
 <!-- nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;) -->
-<g id="edge11" class="edge"><title>nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</title>
-<path fill="none" stroke="#95cf07" stroke-width="2.71" d="M1592.42,-679.678C1734.93,-665.943 2000.24,-640.374 2213.73,-619.8"/>
-<polygon fill="#95cf07" stroke="#95cf07" stroke-width="2.71" points="2214.05,-622.652 2221.93,-619.009 2213.5,-616.939 2214.05,-622.652"/>
-<text text-anchor="middle" x="2127.5" y="-642" font-family="Arial" font-size="10.00" fill="#95cf07">67.79%</text>
-<text text-anchor="middle" x="2127.5" y="-631" font-family="Arial" font-size="10.00" fill="#95cf07">150000×</text>
+<g id="edge42" class="edge"><title>nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</title>
+<path fill="none" stroke="#0c8290" stroke-width="0.9" d="M1482.18,-790.856C1370.85,-767.189 1191.39,-729.041 1064.39,-702.044"/>
+<polygon fill="#0c8290" stroke="#0c8290" stroke-width="0.9" points="1064.46,-700.377 1059.52,-701.009 1063.77,-703.595 1064.46,-700.377"/>
+<text text-anchor="middle" x="1404" y="-744.5" font-family="Arial" font-size="10.00" fill="#0c8290">22.42%</text>
+<text text-anchor="middle" x="1404" y="-733.5" font-family="Arial" font-size="10.00" fill="#0c8290">1×</text>
 </g>
 <!-- nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;) -->
-<g id="node20" class="node"><title>nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;)</title>
-<polygon fill="#0d2279" stroke="#0d2279" points="2099.5,-475 881.5,-475 881.5,-412 2099.5,-412 2099.5,-475"/>
-<text text-anchor="middle" x="1490.5" y="-463" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="1490.5" y="-452" font-family="Arial" font-size="10.00" fill="#ffffff">nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;)</text>
-<text text-anchor="middle" x="1490.5" y="-441" font-family="Arial" font-size="10.00" fill="#ffffff">4.89%</text>
-<text text-anchor="middle" x="1490.5" y="-430" font-family="Arial" font-size="10.00" fill="#ffffff">(3.12%)</text>
-<text text-anchor="middle" x="1490.5" y="-419" font-family="Arial" font-size="10.00" fill="#ffffff">150000×</text>
+<g id="node49" class="node"><title>nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;)</title>
+<polygon fill="#0d1375" stroke="#0d1375" points="2193,-629 975,-629 975,-566 2193,-566 2193,-629"/>
+<text text-anchor="middle" x="1584" y="-617" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1584" y="-606" font-family="Arial" font-size="10.00" fill="#ffffff">nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;)</text>
+<text text-anchor="middle" x="1584" y="-595" font-family="Arial" font-size="10.00" fill="#ffffff">1.62%</text>
+<text text-anchor="middle" x="1584" y="-584" font-family="Arial" font-size="10.00" fill="#ffffff">(1.03%)</text>
+<text text-anchor="middle" x="1584" y="-573" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
 </g>
 <!-- nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;) -->
-<g id="edge12" class="edge"><title>nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;)</title>
-<path fill="none" stroke="#0d2279" stroke-width="0.5" d="M1490.5,-658.966C1490.5,-613.085 1490.5,-526.641 1490.5,-478.7"/>
-<polygon fill="#0d2279" stroke="#0d2279" stroke-width="0.5" points="1491.73,-478.533 1490.5,-475.033 1489.28,-478.533 1491.73,-478.533"/>
-<text text-anchor="middle" x="1509.5" y="-590.5" font-family="Arial" font-size="10.00" fill="#0d2279">4.89%</text>
-<text text-anchor="middle" x="1509.5" y="-579.5" font-family="Arial" font-size="10.00" fill="#0d2279">150000×</text>
-</g>
-<!-- nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;operator delete(void*) -->
-<g id="edge13" class="edge"><title>nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;operator delete(void*)</title>
-<path fill="none" stroke="#0d1e78" stroke-width="0.5" d="M1592.28,-687.84C1917.33,-682.121 2912.41,-661.227 2966.5,-619 2989.55,-601.004 2964.35,-576.196 2985.5,-556 3080.31,-465.484 3143.92,-514.055 3271.5,-484 3289.66,-479.722 3294.89,-481.162 3312.5,-475 3314.11,-474.435 3315.74,-473.839 3317.37,-473.216"/>
-<polygon fill="#0d1e78" stroke="#0d1e78" stroke-width="0.5" points="3317.91,-474.319 3320.73,-471.903 3317.02,-472.038 3317.91,-474.319"/>
-<text text-anchor="middle" x="3007" y="-590.5" font-family="Arial" font-size="10.00" fill="#0d1e78">3.93%</text>
-<text text-anchor="middle" x="3007" y="-579.5" font-family="Arial" font-size="10.00" fill="#0d1e78">6900000×</text>
+<g id="edge43" class="edge"><title>nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;)</title>
+<path fill="none" stroke="#0d1375" stroke-width="0.5" d="M1584,-781.839C1584,-742.429 1584,-674.189 1584,-633.004"/>
+<polygon fill="#0d1375" stroke="#0d1375" stroke-width="0.5" points="1585.23,-632.604 1584,-629.104 1582.78,-632.604 1585.23,-632.604"/>
+<text text-anchor="middle" x="1598" y="-744.5" font-family="Arial" font-size="10.00" fill="#0d1375">1.62%</text>
+<text text-anchor="middle" x="1598" y="-733.5" font-family="Arial" font-size="10.00" fill="#0d1375">1×</text>
 </g>
 <!-- std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138] -->
-<g id="node22" class="node"><title>std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138]</title>
-<polygon fill="#0d3c80" stroke="#0d3c80" points="437,-619 2.84217e-14,-619 2.84217e-14,-556 437,-556 437,-619"/>
-<text text-anchor="middle" x="218.5" y="-607" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="218.5" y="-596" font-family="Arial" font-size="10.00" fill="#ffffff">std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138]</text>
-<text text-anchor="middle" x="218.5" y="-585" font-family="Arial" font-size="10.00" fill="#ffffff">10.34%</text>
-<text text-anchor="middle" x="218.5" y="-574" font-family="Arial" font-size="10.00" fill="#ffffff">(2.33%)</text>
-<text text-anchor="middle" x="218.5" y="-563" font-family="Arial" font-size="10.00" fill="#ffffff">6300000×</text>
+<g id="node50" class="node"><title>std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138]</title>
+<polygon fill="#0d1b77" stroke="#0d1b77" points="2634.5,-629 2197.5,-629 2197.5,-566 2634.5,-566 2634.5,-629"/>
+<text text-anchor="middle" x="2416" y="-617" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2416" y="-606" font-family="Arial" font-size="10.00" fill="#ffffff">std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138]</text>
+<text text-anchor="middle" x="2416" y="-595" font-family="Arial" font-size="10.00" fill="#ffffff">3.39%</text>
+<text text-anchor="middle" x="2416" y="-584" font-family="Arial" font-size="10.00" fill="#ffffff">(0.77%)</text>
+<text text-anchor="middle" x="2416" y="-573" font-family="Arial" font-size="10.00" fill="#ffffff">42×</text>
 </g>
 <!-- nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138] -->
-<g id="edge14" class="edge"><title>nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138]</title>
-<path fill="none" stroke="#0d3c80" stroke-width="0.5" d="M1388.86,-682.066C1283.09,-674.28 1112.66,-661.594 965.5,-650 789.005,-636.095 589.12,-619.599 440.558,-607.194"/>
-<polygon fill="#0d3c80" stroke="#0d3c80" stroke-width="0.5" points="440.648,-605.972 437.058,-606.902 440.444,-608.414 440.648,-605.972"/>
-<text text-anchor="middle" x="987" y="-642" font-family="Arial" font-size="10.00" fill="#0d3c80">10.34%</text>
-<text text-anchor="middle" x="987" y="-631" font-family="Arial" font-size="10.00" fill="#0d3c80">6300000×</text>
-</g>
-<!-- std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;::_M_default_append(unsigned long) [clone .part.146] -->
-<g id="node23" class="node"><title>std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;::_M_default_append(unsigned long) [clone .part.146]</title>
-<polygon fill="#0d1174" stroke="#0d1174" points="1108.5,-547 342.5,-547 342.5,-484 1108.5,-484 1108.5,-547"/>
-<text text-anchor="middle" x="725.5" y="-535" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="725.5" y="-524" font-family="Arial" font-size="10.00" fill="#ffffff">std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;::_M_default_append(unsigned long) [clone .part.146]</text>
-<text text-anchor="middle" x="725.5" y="-513" font-family="Arial" font-size="10.00" fill="#ffffff">1.04%</text>
-<text text-anchor="middle" x="725.5" y="-502" font-family="Arial" font-size="10.00" fill="#ffffff">(0.44%)</text>
-<text text-anchor="middle" x="725.5" y="-491" font-family="Arial" font-size="10.00" fill="#ffffff">300000×</text>
-</g>
-<!-- nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;::_M_default_append(unsigned long) [clone .part.146] -->
-<g id="edge15" class="edge"><title>nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;::_M_default_append(unsigned long) [clone .part.146]</title>
-<path fill="none" stroke="#0d1174" stroke-width="0.5" d="M1388.91,-666.527C1254.02,-636.022 1015.25,-582.026 863.955,-547.811"/>
-<polygon fill="#0d1174" stroke="#0d1174" stroke-width="0.5" points="864.082,-546.584 860.398,-547.006 863.541,-548.973 864.082,-546.584"/>
-<text text-anchor="middle" x="1330.5" y="-642" font-family="Arial" font-size="10.00" fill="#0d1174">1.04%</text>
-<text text-anchor="middle" x="1330.5" y="-631" font-family="Arial" font-size="10.00" fill="#0d1174">300000×</text>
+<g id="edge45" class="edge"><title>nmie::MultiLayerMie::RunMieCalculations()&#45;&gt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138]</title>
+<path fill="none" stroke="#0d1b77" stroke-width="0.5" d="M1685.6,-786.366C1838.83,-746.955 2128.6,-672.422 2293.36,-630.045"/>
+<polygon fill="#0d1b77" stroke="#0d1b77" stroke-width="0.5" points="2294.14,-631.108 2297.23,-629.05 2293.53,-628.735 2294.14,-631.108"/>
+<text text-anchor="middle" x="1997" y="-744.5" font-family="Arial" font-size="10.00" fill="#0d1b77">3.39%</text>
+<text text-anchor="middle" x="1997" y="-733.5" font-family="Arial" font-size="10.00" fill="#0d1b77">42×</text>
 </g>
 <!-- nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;__ieee754_exp_avx -->
-<g id="edge16" class="edge"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;__ieee754_exp_avx</title>
-<path fill="none" stroke="#0d1174" stroke-width="0.5" d="M2724.73,-555.979C2734.53,-553.225 2744.18,-550.238 2753.5,-547 2810.03,-527.365 2814.6,-499.108 2872.5,-484 2893.04,-478.641 3239.67,-490.186 3254.5,-475 3274.06,-454.969 3267.78,-436.651 3254.5,-412 3242.98,-390.621 3221.83,-374.655 3201.36,-363.374"/>
-<polygon fill="#0d1174" stroke="#0d1174" stroke-width="0.5" points="3201.74,-362.189 3198.08,-361.604 3200.58,-364.345 3201.74,-362.189"/>
-<text text-anchor="middle" x="3289" y="-446.5" font-family="Arial" font-size="10.00" fill="#0d1174">1.10%</text>
-<text text-anchor="middle" x="3289" y="-435.5" font-family="Arial" font-size="10.00" fill="#0d1174">1800000×</text>
-</g>
-<!-- nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator new(unsigned long) -->
-<g id="edge19" class="edge"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator new(unsigned long)</title>
-<path fill="none" stroke="#0d1776" stroke-width="0.5" d="M2240.46,-555.964C2230.49,-553.215 2222.02,-550.233 2215.5,-547 2175.52,-527.163 2168.27,-513.388 2145.5,-475 2123.2,-437.395 2151.39,-407.353 2116.5,-381 2107.57,-374.251 1724.69,-372.385 1713.5,-372 1501.05,-364.698 1250.15,-351.887 1129.07,-345.441"/>
-<polygon fill="#0d1776" stroke="#0d1776" stroke-width="0.5" points="1129.09,-344.215 1125.53,-345.252 1128.96,-346.661 1129.09,-344.215"/>
-<text text-anchor="middle" x="2167" y="-446.5" font-family="Arial" font-size="10.00" fill="#0d1776">2.41%</text>
-<text text-anchor="middle" x="2167" y="-435.5" font-family="Arial" font-size="10.00" fill="#0d1776">1950000×</text>
+<g id="edge46" class="edge"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;__ieee754_exp_avx</title>
+<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M906.168,-637.749C900.946,-614.796 898.857,-584.349 917,-566 933.722,-549.088 1328.36,-573.993 1345,-557 1364.59,-536.994 1361.07,-516.932 1345,-494 1313.64,-449.234 1250.78,-432.785 1205.09,-426.802"/>
+<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="1205.18,-425.579 1201.56,-426.355 1204.87,-428.009 1205.18,-425.579"/>
+<text text-anchor="middle" x="1373" y="-528.5" font-family="Arial" font-size="10.00" fill="#0d0e73">0.36%</text>
+<text text-anchor="middle" x="1373" y="-517.5" font-family="Arial" font-size="10.00" fill="#0d0e73">12×</text>
 </g>
 <!-- nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator delete(void*) -->
-<g id="edge18" class="edge"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator delete(void*)</title>
-<path fill="none" stroke="#0d1b77" stroke-width="0.5" d="M2844.52,-555.986C2854.48,-553.234 2862.95,-550.245 2869.5,-547 2904.42,-529.692 2894.79,-499.625 2930.5,-484 2969.5,-466.934 3272.19,-485.266 3313.5,-475 3314.71,-474.7 3315.92,-474.374 3317.13,-474.023"/>
-<polygon fill="#0d1b77" stroke="#0d1b77" stroke-width="0.5" points="3317.78,-475.104 3320.76,-472.902 3317.06,-472.763 3317.78,-475.104"/>
-<text text-anchor="middle" x="2952" y="-518.5" font-family="Arial" font-size="10.00" fill="#0d1b77">3.40%</text>
-<text text-anchor="middle" x="2952" y="-507.5" font-family="Arial" font-size="10.00" fill="#0d1b77">4200000×</text>
+<g id="edge48" class="edge"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator delete(void*)</title>
+<path fill="none" stroke="#0d1174" stroke-width="0.5" d="M494.728,-637.94C484.289,-635.197 476.784,-632.223 473,-629 451.007,-610.268 479.032,-584.686 457,-566 438.971,-550.709 373.757,-563.401 351,-557 349.803,-556.663 348.602,-556.303 347.399,-555.922"/>
+<polygon fill="#0d1174" stroke="#0d1174" stroke-width="0.5" points="347.493,-554.662 343.785,-554.716 346.717,-556.986 347.493,-554.662"/>
+<text text-anchor="middle" x="487" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d1174">1.12%</text>
+<text text-anchor="middle" x="487" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d1174">28×</text>
 </g>
 <!-- nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;) -->
-<g id="node24" class="node"><title>nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</title>
-<polygon fill="#0c6e8c" stroke="#0c6e8c" points="3250.5,-475 2308.5,-475 2308.5,-412 3250.5,-412 3250.5,-475"/>
-<text text-anchor="middle" x="2779.5" y="-463" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="2779.5" y="-452" font-family="Arial" font-size="10.00" fill="#ffffff">nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</text>
-<text text-anchor="middle" x="2779.5" y="-441" font-family="Arial" font-size="10.00" fill="#ffffff">19.21%</text>
-<text text-anchor="middle" x="2779.5" y="-430" font-family="Arial" font-size="10.00" fill="#ffffff">(15.97%)</text>
-<text text-anchor="middle" x="2779.5" y="-419" font-family="Arial" font-size="10.00" fill="#ffffff">1500000×</text>
+<g id="node51" class="node"><title>nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</title>
+<polygon fill="#0d297b" stroke="#0d297b" points="1341,-557 399,-557 399,-494 1341,-494 1341,-557"/>
+<text text-anchor="middle" x="870" y="-545" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="870" y="-534" font-family="Arial" font-size="10.00" fill="#ffffff">nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</text>
+<text text-anchor="middle" x="870" y="-523" font-family="Arial" font-size="10.00" fill="#ffffff">6.37%</text>
+<text text-anchor="middle" x="870" y="-512" font-family="Arial" font-size="10.00" fill="#ffffff">(5.30%)</text>
+<text text-anchor="middle" x="870" y="-501" font-family="Arial" font-size="10.00" fill="#ffffff">10×</text>
 </g>
 <!-- nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;) -->
-<g id="edge17" class="edge"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</title>
-<path fill="none" stroke="#0c6e8c" stroke-width="0.77" d="M2590.5,-555.863C2629.77,-532.721 2683.59,-501.012 2723.75,-477.347"/>
-<polygon fill="#0c6e8c" stroke="#0c6e8c" stroke-width="0.77" points="2724.59,-478.643 2727.6,-475.082 2723.02,-475.989 2724.59,-478.643"/>
-<text text-anchor="middle" x="2730" y="-518.5" font-family="Arial" font-size="10.00" fill="#0c6e8c">19.21%</text>
-<text text-anchor="middle" x="2730" y="-507.5" font-family="Arial" font-size="10.00" fill="#0c6e8c">1500000×</text>
+<g id="edge47" class="edge"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)</title>
+<path fill="none" stroke="#0d297b" stroke-width="0.5" d="M878.305,-637.978C876.242,-635.134 874.432,-632.135 873,-629 863.28,-607.723 862.747,-581.284 864.532,-560.588"/>
+<polygon fill="#0d297b" stroke="#0d297b" stroke-width="0.5" points="865.756,-560.655 864.864,-557.055 863.317,-560.426 865.756,-560.655"/>
+<text text-anchor="middle" x="887" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d297b">6.37%</text>
+<text text-anchor="middle" x="887" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d297b">10×</text>
+</g>
+<!-- nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator new(unsigned long) -->
+<g id="edge49" class="edge"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;operator new(unsigned long)</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M916.585,-637.771C917.815,-611.05 921.452,-575.211 932,-566 951.128,-549.297 1368.55,-572.05 1389,-557 1412.77,-539.508 1386.72,-512.138 1410,-494 1555.91,-380.336 1640.4,-474.579 1825,-463 2084.22,-446.74 2392.36,-432.646 2530.13,-426.619"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="2530.31,-427.838 2533.76,-426.461 2530.21,-425.39 2530.31,-427.838"/>
+<text text-anchor="middle" x="1424" y="-528.5" font-family="Arial" font-size="10.00" fill="#0d1074">0.77%</text>
+<text text-anchor="middle" x="1424" y="-517.5" font-family="Arial" font-size="10.00" fill="#0d1074">13×</text>
 </g>
 <!-- sincos -->
-<g id="node25" class="node"><title>sincos</title>
-<polygon fill="#0d2179" stroke="#0d2179" points="2231,-372 2172,-372 2172,-309 2231,-309 2231,-372"/>
-<text text-anchor="middle" x="2201.5" y="-360" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="2201.5" y="-349" font-family="Arial" font-size="10.00" fill="#ffffff">sincos</text>
-<text text-anchor="middle" x="2201.5" y="-338" font-family="Arial" font-size="10.00" fill="#ffffff">4.63%</text>
-<text text-anchor="middle" x="2201.5" y="-327" font-family="Arial" font-size="10.00" fill="#ffffff">(0.44%)</text>
-<text text-anchor="middle" x="2201.5" y="-316" font-family="Arial" font-size="10.00" fill="#ffffff">2850000×</text>
+<g id="node53" class="node"><title>sincos</title>
+<polygon fill="#0d1375" stroke="#0d1375" points="898,-454 842,-454 842,-391 898,-391 898,-454"/>
+<text text-anchor="middle" x="870" y="-442" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="870" y="-431" font-family="Arial" font-size="10.00" fill="#ffffff">sincos</text>
+<text text-anchor="middle" x="870" y="-420" font-family="Arial" font-size="10.00" fill="#ffffff">1.54%</text>
+<text text-anchor="middle" x="870" y="-409" font-family="Arial" font-size="10.00" fill="#ffffff">(0.15%)</text>
+<text text-anchor="middle" x="870" y="-398" font-family="Arial" font-size="10.00" fill="#ffffff">19×</text>
 </g>
 <!-- nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;sincos -->
-<g id="edge20" class="edge"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;sincos</title>
-<path fill="none" stroke="#0d1676" stroke-width="0.5" d="M2326.07,-555.967C2280.22,-539.333 2236.77,-513.874 2207.5,-475 2186.24,-446.771 2188.16,-404.877 2193.19,-375.57"/>
-<polygon fill="#0d1676" stroke="#0d1676" stroke-width="0.5" points="2194.41,-375.721 2193.82,-372.06 2192,-375.289 2194.41,-375.721"/>
-<text text-anchor="middle" x="2229" y="-446.5" font-family="Arial" font-size="10.00" fill="#0d1676">2.24%</text>
-<text text-anchor="middle" x="2229" y="-435.5" font-family="Arial" font-size="10.00" fill="#0d1676">1350000×</text>
+<g id="edge50" class="edge"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;sincos</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M813.331,-637.978C729.536,-614.352 607.656,-582.899 499,-566 484.364,-563.724 376.114,-567.821 366,-557 346.881,-536.544 347.624,-515.126 366,-494 427.901,-422.838 737.113,-421.337 838.064,-422.8"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="838.336,-424.029 841.854,-422.858 838.373,-421.58 838.336,-424.029"/>
+<text text-anchor="middle" x="380" y="-528.5" font-family="Arial" font-size="10.00" fill="#0d1074">0.74%</text>
+<text text-anchor="middle" x="380" y="-517.5" font-family="Arial" font-size="10.00" fill="#0d1074">9×</text>
 </g>
 <!-- std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;::_M_default_append(unsigned long) -->
-<g id="node26" class="node"><title>std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;::_M_default_append(unsigned long)</title>
-<polygon fill="#0d2b7b" stroke="#0d2b7b" points="873,-475 370,-475 370,-412 873,-412 873,-475"/>
-<text text-anchor="middle" x="621.5" y="-463" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
-<text text-anchor="middle" x="621.5" y="-452" font-family="Arial" font-size="10.00" fill="#ffffff">std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;::_M_default_append(unsigned long)</text>
-<text text-anchor="middle" x="621.5" y="-441" font-family="Arial" font-size="10.00" fill="#ffffff">6.81%</text>
-<text text-anchor="middle" x="621.5" y="-430" font-family="Arial" font-size="10.00" fill="#ffffff">(3.56%)</text>
-<text text-anchor="middle" x="621.5" y="-419" font-family="Arial" font-size="10.00" fill="#ffffff">2700000×</text>
+<g id="node54" class="node"><title>std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;::_M_default_append(unsigned long)</title>
+<polygon fill="#0d1676" stroke="#0d1676" points="1945.5,-557 1442.5,-557 1442.5,-494 1945.5,-494 1945.5,-557"/>
+<text text-anchor="middle" x="1694" y="-545" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1694" y="-534" font-family="Arial" font-size="10.00" fill="#ffffff">std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;::_M_default_append(unsigned long)</text>
+<text text-anchor="middle" x="1694" y="-523" font-family="Arial" font-size="10.00" fill="#ffffff">2.24%</text>
+<text text-anchor="middle" x="1694" y="-512" font-family="Arial" font-size="10.00" fill="#ffffff">(1.18%)</text>
+<text text-anchor="middle" x="1694" y="-501" font-family="Arial" font-size="10.00" fill="#ffffff">18×</text>
 </g>
 <!-- nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;::_M_default_append(unsigned long) -->
-<g id="edge21" class="edge"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;::_M_default_append(unsigned long)</title>
-<path fill="none" stroke="#0d2b7b" stroke-width="0.5" d="M2188.92,-555.978C1846.99,-526.168 1374.46,-485.103 1353.5,-484 1143,-472.923 1088.67,-489.414 876.917,-475.023"/>
-<polygon fill="#0d2b7b" stroke="#0d2b7b" stroke-width="0.5" points="876.732,-473.783 873.156,-474.765 876.564,-476.227 876.732,-473.783"/>
-<text text-anchor="middle" x="2085" y="-518.5" font-family="Arial" font-size="10.00" fill="#0d2b7b">6.81%</text>
-<text text-anchor="middle" x="2085" y="-507.5" font-family="Arial" font-size="10.00" fill="#0d2b7b">2700000×</text>
+<g id="edge51" class="edge"><title>nmie::MultiLayerMie::ScattCoeffs(std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;::_M_default_append(unsigned long)</title>
+<path fill="none" stroke="#0d1676" stroke-width="0.5" d="M926.426,-637.983C927.343,-634.961 928.218,-631.93 929,-629 936.37,-601.376 920.001,-584.26 942,-566 952.539,-557.252 1421.33,-557.927 1435,-557 1436.24,-556.916 1437.49,-556.83 1438.74,-556.742"/>
+<polygon fill="#0d1676" stroke="#0d1676" stroke-width="0.5" points="1439.09,-557.945 1442.49,-556.474 1438.91,-555.502 1439.09,-557.945"/>
+<text text-anchor="middle" x="956" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d1676">2.24%</text>
+<text text-anchor="middle" x="956" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d1676">18×</text>
 </g>
 <!-- nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;)&#45;&gt;__cos_avx -->
-<g id="edge26" class="edge"><title>nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;)&#45;&gt;__cos_avx</title>
-<path fill="none" stroke="#0d1375" stroke-width="0.5" d="M1586.02,-411.959C1730.68,-365.704 1998.56,-280.048 2093.79,-249.598"/>
-<polygon fill="#0d1375" stroke="#0d1375" stroke-width="0.5" points="2094.42,-250.684 2097.38,-248.451 2093.67,-248.35 2094.42,-250.684"/>
-<text text-anchor="middle" x="1923.5" y="-343.5" font-family="Arial" font-size="10.00" fill="#0d1375">1.51%</text>
-<text text-anchor="middle" x="1923.5" y="-332.5" font-family="Arial" font-size="10.00" fill="#0d1375">750000×</text>
-</g>
-<!-- nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;)&#45;&gt;operator new(unsigned long) -->
-<g id="edge27" class="edge"><title>nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;)&#45;&gt;operator new(unsigned long)</title>
-<path fill="none" stroke="#0d0d73" stroke-width="0.5" d="M1359.4,-411.991C1283.92,-394.426 1191.91,-373.013 1129.24,-358.428"/>
-<polygon fill="#0d0d73" stroke="#0d0d73" stroke-width="0.5" points="1129.22,-357.165 1125.53,-357.565 1128.66,-359.551 1129.22,-357.165"/>
-<text text-anchor="middle" x="1331.5" y="-395" font-family="Arial" font-size="10.00" fill="#0d0d73">0.17%</text>
-<text text-anchor="middle" x="1331.5" y="-384" font-family="Arial" font-size="10.00" fill="#0d0d73">150000×</text>
-</g>
-<!-- operator delete(void*)&#45;&gt;free -->
-<g id="edge32" class="edge"><title>operator delete(void*)&#45;&gt;free</title>
-<path fill="none" stroke="#0d3b80" stroke-width="0.5" d="M3374.5,-411.923C3374.5,-400.557 3374.5,-387.589 3374.5,-375.904"/>
-<polygon fill="#0d3b80" stroke="#0d3b80" stroke-width="0.5" points="3375.73,-375.822 3374.5,-372.322 3373.28,-375.822 3375.73,-375.822"/>
-<text text-anchor="middle" x="3399" y="-395" font-family="Arial" font-size="10.00" fill="#0d3b80">10.11%</text>
-<text text-anchor="middle" x="3399" y="-384" font-family="Arial" font-size="10.00" fill="#0d3b80">12900041×</text>
-</g>
-<!-- std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138]&#45;&gt;memset -->
-<g id="edge36" class="edge"><title>std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138]&#45;&gt;memset</title>
-<path fill="none" stroke="#0d0f74" stroke-width="0.5" d="M218.5,-555.688C218.5,-533.079 218.5,-502.364 218.5,-478.945"/>
-<polygon fill="#0d0f74" stroke="#0d0f74" stroke-width="0.5" points="219.725,-478.752 218.5,-475.252 217.275,-478.752 219.725,-478.752"/>
-<text text-anchor="middle" x="240" y="-518.5" font-family="Arial" font-size="10.00" fill="#0d0f74">0.62%</text>
-<text text-anchor="middle" x="240" y="-507.5" font-family="Arial" font-size="10.00" fill="#0d0f74">6300000×</text>
+<g id="edge54" class="edge"><title>nmie::MultiLayerMie::calcPiTau(std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;, std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;&amp;)&#45;&gt;__cos_avx</title>
+<path fill="none" stroke="#0d0f73" stroke-width="0.5" d="M1931.73,-565.931C1940.77,-563.182 1947.12,-560.21 1950,-557 2041.61,-454.967 1813.63,-336.185 1723.64,-294.711"/>
+<polygon fill="#0d0f73" stroke="#0d0f73" stroke-width="0.5" points="1723.93,-293.496 1720.24,-293.149 1722.91,-295.723 1723.93,-293.496"/>
+<text text-anchor="middle" x="1982" y="-477" font-family="Arial" font-size="10.00" fill="#0d0f73">0.50%</text>
+<text text-anchor="middle" x="1982" y="-466" font-family="Arial" font-size="10.00" fill="#0d0f73">5×</text>
 </g>
 <!-- std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138]&#45;&gt;operator new(unsigned long) -->
-<g id="edge37" class="edge"><title>std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138]&#45;&gt;operator new(unsigned long)</title>
-<path fill="none" stroke="#0d2e7c" stroke-width="0.5" d="M186.677,-555.868C152.115,-518.867 106.258,-456.108 141.5,-412 193.716,-346.648 776.047,-341.075 983.581,-341.181"/>
-<polygon fill="#0d2e7c" stroke="#0d2e7c" stroke-width="0.5" points="983.711,-342.406 987.212,-341.183 983.713,-339.956 983.711,-342.406"/>
-<text text-anchor="middle" x="163" y="-446.5" font-family="Arial" font-size="10.00" fill="#0d2e7c">7.39%</text>
-<text text-anchor="middle" x="163" y="-435.5" font-family="Arial" font-size="10.00" fill="#0d2e7c">6300000×</text>
-</g>
-<!-- std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;::_M_default_append(unsigned long) [clone .part.146]&#45;&gt;operator new(unsigned long) -->
-<g id="edge39" class="edge"><title>std::vector&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt;, std::allocator&lt;std::vector&lt;double, std::allocator&lt;double&gt; &gt; &gt; &gt;::_M_default_append(unsigned long) [clone .part.146]&#45;&gt;operator new(unsigned long)</title>
-<path fill="none" stroke="#0d0f74" stroke-width="0.5" d="M342.088,-494.662C306.541,-489.536 280.918,-483.094 273.5,-475 254.582,-454.357 258.354,-435.55 273.5,-412 291.466,-384.064 309.249,-388.942 341.5,-381 461.571,-351.431 826.791,-343.965 983.652,-342.105"/>
-<polygon fill="#0d0f74" stroke="#0d0f74" stroke-width="0.5" points="983.833,-343.328 987.318,-342.062 983.804,-340.879 983.833,-343.328"/>
-<text text-anchor="middle" x="292.5" y="-446.5" font-family="Arial" font-size="10.00" fill="#0d0f74">0.61%</text>
-<text text-anchor="middle" x="292.5" y="-435.5" font-family="Arial" font-size="10.00" fill="#0d0f74">300000×</text>
+<g id="edge83" class="edge"><title>std::vector&lt;double, std::allocator&lt;double&gt; &gt;::_M_default_append(unsigned long) [clone .part.138]&#45;&gt;operator new(unsigned long)</title>
+<path fill="none" stroke="#0d1776" stroke-width="0.5" d="M2449,-565.969C2482.15,-535.306 2533.07,-488.198 2567.18,-456.64"/>
+<polygon fill="#0d1776" stroke="#0d1776" stroke-width="0.5" points="2568.28,-457.292 2570.01,-454.016 2566.61,-455.494 2568.28,-457.292"/>
+<text text-anchor="middle" x="2540" y="-528.5" font-family="Arial" font-size="10.00" fill="#0d1776">2.41%</text>
+<text text-anchor="middle" x="2540" y="-517.5" font-family="Arial" font-size="10.00" fill="#0d1776">42×</text>
 </g>
 <!-- nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;__ieee754_exp_avx -->
-<g id="edge24" class="edge"><title>nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;__ieee754_exp_avx</title>
-<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M2890.91,-411.923C2957.98,-393.515 3040.37,-370.902 3093.39,-356.35"/>
-<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="3093.79,-357.511 3096.84,-355.403 3093.14,-355.148 3093.79,-357.511"/>
-<text text-anchor="middle" x="3018" y="-395" font-family="Arial" font-size="10.00" fill="#0d1074">0.85%</text>
-<text text-anchor="middle" x="3018" y="-384" font-family="Arial" font-size="10.00" fill="#0d1074">1500000×</text>
+<g id="edge52" class="edge"><title>nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;__ieee754_exp_avx</title>
+<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M955.072,-493.923C1001.11,-477.376 1056.6,-457.431 1096.75,-442.998"/>
+<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="1097.22,-444.13 1100.1,-441.794 1096.4,-441.825 1097.22,-444.13"/>
+<text text-anchor="middle" x="1050" y="-477" font-family="Arial" font-size="10.00" fill="#0d0e73">0.28%</text>
+<text text-anchor="middle" x="1050" y="-466" font-family="Arial" font-size="10.00" fill="#0d0e73">10×</text>
 </g>
 <!-- nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;sincos -->
-<g id="edge25" class="edge"><title>nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;sincos</title>
-<path fill="none" stroke="#0d1776" stroke-width="0.5" d="M2604.9,-411.991C2473.82,-389.085 2305.28,-359.635 2234.8,-347.319"/>
-<polygon fill="#0d1776" stroke="#0d1776" stroke-width="0.5" points="2234.77,-346.071 2231.11,-346.675 2234.35,-348.484 2234.77,-346.071"/>
-<text text-anchor="middle" x="2564" y="-395" font-family="Arial" font-size="10.00" fill="#0d1776">2.40%</text>
-<text text-anchor="middle" x="2564" y="-384" font-family="Arial" font-size="10.00" fill="#0d1776">1500000×</text>
+<g id="edge53" class="edge"><title>nmie::MultiLayerMie::calcD1D3(std::complex&lt;double&gt;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;, std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;&amp;)&#45;&gt;sincos</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M870,-493.923C870,-482.557 870,-469.589 870,-457.904"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="871.225,-457.822 870,-454.322 868.775,-457.822 871.225,-457.822"/>
+<text text-anchor="middle" x="884" y="-477" font-family="Arial" font-size="10.00" fill="#0d1074">0.79%</text>
+<text text-anchor="middle" x="884" y="-466" font-family="Arial" font-size="10.00" fill="#0d1074">10×</text>
+</g>
+<!-- operator new(unsigned long)&#45;&gt;malloc -->
+<g id="edge59" class="edge"><title>operator new(unsigned long)&#45;&gt;malloc</title>
+<path fill="none" stroke="#0d2b7c" stroke-width="0.5" d="M2635.98,-390.688C2662.1,-366.291 2698.32,-332.453 2723.92,-308.531"/>
+<polygon fill="#0d2b7c" stroke="#0d2b7c" stroke-width="0.5" points="2724.96,-309.241 2726.68,-305.957 2723.29,-307.451 2724.96,-309.241"/>
+<text text-anchor="middle" x="2725" y="-353.5" font-family="Arial" font-size="10.00" fill="#0d2b7c">6.92%</text>
+<text text-anchor="middle" x="2725" y="-342.5" font-family="Arial" font-size="10.00" fill="#0d2b7c">127×</text>
 </g>
 <!-- sincos&#45;&gt;__cos_avx -->
-<g id="edge34" class="edge"><title>sincos&#45;&gt;__cos_avx</title>
-<path fill="none" stroke="#0d1575" stroke-width="0.5" d="M2171.85,-315.126C2165.12,-309.224 2159.17,-303.589 2156.5,-300 2150.33,-291.696 2145.09,-281.816 2140.87,-272.432"/>
-<polygon fill="#0d1575" stroke="#0d1575" stroke-width="0.5" points="2141.89,-271.712 2139.36,-269.001 2139.65,-272.698 2141.89,-271.712"/>
-<text text-anchor="middle" x="2178" y="-292" font-family="Arial" font-size="10.00" fill="#0d1575">2.07%</text>
-<text text-anchor="middle" x="2178" y="-281" font-family="Arial" font-size="10.00" fill="#0d1575">2850000×</text>
+<g id="edge60" class="edge"><title>sincos&#45;&gt;__cos_avx</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M898.192,-416.612C1022.12,-395.125 1518.37,-309.085 1654.38,-285.503"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="1654.67,-286.696 1657.91,-284.891 1654.25,-284.282 1654.67,-286.696"/>
+<text text-anchor="middle" x="1461" y="-353.5" font-family="Arial" font-size="10.00" fill="#0d1074">0.69%</text>
+<text text-anchor="middle" x="1461" y="-342.5" font-family="Arial" font-size="10.00" fill="#0d1074">19×</text>
 </g>
 <!-- sincos&#45;&gt;__sin_avx -->
-<g id="edge35" class="edge"><title>sincos&#45;&gt;__sin_avx</title>
-<path fill="none" stroke="#0d1675" stroke-width="0.5" d="M2201.5,-308.923C2201.5,-297.557 2201.5,-284.589 2201.5,-272.904"/>
-<polygon fill="#0d1675" stroke="#0d1675" stroke-width="0.5" points="2202.73,-272.822 2201.5,-269.322 2200.28,-272.822 2202.73,-272.822"/>
-<text text-anchor="middle" x="2223" y="-292" font-family="Arial" font-size="10.00" fill="#0d1675">2.12%</text>
-<text text-anchor="middle" x="2223" y="-281" font-family="Arial" font-size="10.00" fill="#0d1675">2850000×</text>
+<g id="edge61" class="edge"><title>sincos&#45;&gt;__sin_avx</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M870,-390.688C870,-368.079 870,-337.364 870,-313.945"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="871.225,-313.752 870,-310.252 868.775,-313.752 871.225,-313.752"/>
+<text text-anchor="middle" x="884" y="-353.5" font-family="Arial" font-size="10.00" fill="#0d1074">0.70%</text>
+<text text-anchor="middle" x="884" y="-342.5" font-family="Arial" font-size="10.00" fill="#0d1074">19×</text>
 </g>
 <!-- std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;::_M_default_append(unsigned long)&#45;&gt;operator new(unsigned long) -->
-<g id="edge38" class="edge"><title>std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;::_M_default_append(unsigned long)&#45;&gt;operator new(unsigned long)</title>
-<path fill="none" stroke="#0d1b77" stroke-width="0.5" d="M752.899,-411.991C828.552,-394.426 920.778,-373.013 983.591,-358.428"/>
-<polygon fill="#0d1b77" stroke="#0d1b77" stroke-width="0.5" points="984.177,-359.55 987.309,-357.565 983.623,-357.163 984.177,-359.55"/>
-<text text-anchor="middle" x="900" y="-395" font-family="Arial" font-size="10.00" fill="#0d1b77">3.25%</text>
-<text text-anchor="middle" x="900" y="-384" font-family="Arial" font-size="10.00" fill="#0d1b77">2700000×</text>
-</g>
-<!-- nmie::MultiLayerMie::SetWidthSP(std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;)&#45;&gt;operator new(unsigned long) -->
-<g id="edge23" class="edge"><title>nmie::MultiLayerMie::SetWidthSP(std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;)&#45;&gt;operator new(unsigned long)</title>
-<path fill="none" stroke="#0d0f74" stroke-width="0.5" d="M3160.56,-555.948C3099.97,-531.183 3009.26,-498.156 2926.5,-484 2908.4,-480.904 2280,-486.265 2265.5,-475 2242.6,-457.209 2269.03,-432.482 2248.5,-412 2210.72,-374.311 2185.33,-388.516 2132.5,-381 2040.3,-367.883 1806.58,-375.16 1713.5,-372 1501.05,-364.788 1250.15,-351.936 1129.07,-345.461"/>
-<polygon fill="#0d0f74" stroke="#0d0f74" stroke-width="0.5" points="1129.09,-344.235 1125.53,-345.271 1128.96,-346.682 1129.09,-344.235"/>
-<text text-anchor="middle" x="2284.5" y="-446.5" font-family="Arial" font-size="10.00" fill="#0d0f74">0.63%</text>
-<text text-anchor="middle" x="2284.5" y="-435.5" font-family="Arial" font-size="10.00" fill="#0d0f74">600000×</text>
-</g>
-<!-- nmie::MultiLayerMie::SetWidthSP(std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;)&#45;&gt;operator delete(void*) -->
-<g id="edge22" class="edge"><title>nmie::MultiLayerMie::SetWidthSP(std::vector&lt;double, std::allocator&lt;double&gt; &gt; const&amp;)&#45;&gt;operator delete(void*)</title>
-<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M3261.75,-555.688C3285.05,-532.707 3316.85,-501.351 3340.74,-477.795"/>
-<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="3341.68,-478.582 3343.32,-475.252 3339.96,-476.837 3341.68,-478.582"/>
-<text text-anchor="middle" x="3351.5" y="-518.5" font-family="Arial" font-size="10.00" fill="#0d0e73">0.24%</text>
-<text text-anchor="middle" x="3351.5" y="-507.5" font-family="Arial" font-size="10.00" fill="#0d0e73">450000×</text>
+<g id="edge84" class="edge"><title>std::vector&lt;std::complex&lt;double&gt;, std::allocator&lt;std::complex&lt;double&gt; &gt; &gt;::_M_default_append(unsigned long)&#45;&gt;operator new(unsigned long)</title>
+<path fill="none" stroke="#0d1174" stroke-width="0.5" d="M1789.41,-493.94C1829.62,-482.298 1877.17,-470.127 1921,-463 2140.67,-427.276 2404.74,-422.701 2530.09,-422.804"/>
+<polygon fill="#0d1174" stroke="#0d1174" stroke-width="0.5" points="2530.25,-424.029 2533.76,-422.808 2530.26,-421.579 2530.25,-424.029"/>
+<text text-anchor="middle" x="1935" y="-477" font-family="Arial" font-size="10.00" fill="#0d1174">1.05%</text>
+<text text-anchor="middle" x="1935" y="-466" font-family="Arial" font-size="10.00" fill="#0d1174">18×</text>
+</g>
+<!-- std::basic_ios&lt;char, std::char_traits&lt;char&gt; &gt;::_M_cache_locale(std::locale const&amp;) -->
+<g id="node55" class="node"><title>std::basic_ios&lt;char, std::char_traits&lt;char&gt; &gt;::_M_cache_locale(std::locale const&amp;)</title>
+<polygon fill="#0d1174" stroke="#0d1174" points="1855,-1401 1475,-1401 1475,-1338 1855,-1338 1855,-1401"/>
+<text text-anchor="middle" x="1665" y="-1389" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1665" y="-1378" font-family="Arial" font-size="10.00" fill="#ffffff">std::basic_ios&lt;char, std::char_traits&lt;char&gt; &gt;::_M_cache_locale(std::locale const&amp;)</text>
+<text text-anchor="middle" x="1665" y="-1367" font-family="Arial" font-size="10.00" fill="#ffffff">1.04%</text>
+<text text-anchor="middle" x="1665" y="-1356" font-family="Arial" font-size="10.00" fill="#ffffff">(0.04%)</text>
+<text text-anchor="middle" x="1665" y="-1345" font-family="Arial" font-size="10.00" fill="#ffffff">4×</text>
+</g>
+<!-- std::basic_ios&lt;char, std::char_traits&lt;char&gt; &gt;::init(std::basic_streambuf&lt;char, std::char_traits&lt;char&gt; &gt;*)&#45;&gt;std::basic_ios&lt;char, std::char_traits&lt;char&gt; &gt;::_M_cache_locale(std::locale const&amp;) -->
+<g id="edge62" class="edge"><title>std::basic_ios&lt;char, std::char_traits&lt;char&gt; &gt;::init(std::basic_streambuf&lt;char, std::char_traits&lt;char&gt; &gt;*)&#45;&gt;std::basic_ios&lt;char, std::char_traits&lt;char&gt; &gt;::_M_cache_locale(std::locale const&amp;)</title>
+<path fill="none" stroke="#0d1174" stroke-width="0.5" d="M1665,-1440.92C1665,-1429.56 1665,-1416.59 1665,-1404.9"/>
+<polygon fill="#0d1174" stroke="#0d1174" stroke-width="0.5" points="1666.23,-1404.82 1665,-1401.32 1663.78,-1404.82 1666.23,-1404.82"/>
+<text text-anchor="middle" x="1679" y="-1424" font-family="Arial" font-size="10.00" fill="#0d1174">1.04%</text>
+<text text-anchor="middle" x="1679" y="-1413" font-family="Arial" font-size="10.00" fill="#0d1174">4×</text>
+</g>
+<!-- std::basic_ios&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;::_M_cache_locale(std::locale const&amp;) -->
+<g id="node57" class="node"><title>std::basic_ios&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;::_M_cache_locale(std::locale const&amp;)</title>
+<polygon fill="#0d1074" stroke="#0d1074" points="1254,-1401 844,-1401 844,-1338 1254,-1338 1254,-1401"/>
+<text text-anchor="middle" x="1049" y="-1389" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1049" y="-1378" font-family="Arial" font-size="10.00" fill="#ffffff">std::basic_ios&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;::_M_cache_locale(std::locale const&amp;)</text>
+<text text-anchor="middle" x="1049" y="-1367" font-family="Arial" font-size="10.00" fill="#ffffff">0.84%</text>
+<text text-anchor="middle" x="1049" y="-1356" font-family="Arial" font-size="10.00" fill="#ffffff">(0.04%)</text>
+<text text-anchor="middle" x="1049" y="-1345" font-family="Arial" font-size="10.00" fill="#ffffff">4×</text>
+</g>
+<!-- std::basic_ios&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;::init(std::basic_streambuf&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;*)&#45;&gt;std::basic_ios&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;::_M_cache_locale(std::locale const&amp;) -->
+<g id="edge63" class="edge"><title>std::basic_ios&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;::init(std::basic_streambuf&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;*)&#45;&gt;std::basic_ios&lt;wchar_t, std::char_traits&lt;wchar_t&gt; &gt;::_M_cache_locale(std::locale const&amp;)</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M1049,-1440.92C1049,-1429.56 1049,-1416.59 1049,-1404.9"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="1050.23,-1404.82 1049,-1401.32 1047.78,-1404.82 1050.23,-1404.82"/>
+<text text-anchor="middle" x="1063" y="-1424" font-family="Arial" font-size="10.00" fill="#0d1074">0.84%</text>
+<text text-anchor="middle" x="1063" y="-1413" font-family="Arial" font-size="10.00" fill="#0d1074">4×</text>
+</g>
+<!-- std::ctype&lt;wchar_t&gt;::_M_convert_to_wmask(unsigned short) const -->
+<g id="node59" class="node"><title>std::ctype&lt;wchar_t&gt;::_M_convert_to_wmask(unsigned short) const</title>
+<polygon fill="#0d1074" stroke="#0d1074" points="2281,-845 1973,-845 1973,-782 2281,-782 2281,-845"/>
+<text text-anchor="middle" x="2127" y="-833" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2127" y="-822" font-family="Arial" font-size="10.00" fill="#ffffff">std::ctype&lt;wchar_t&gt;::_M_convert_to_wmask(unsigned short) const</text>
+<text text-anchor="middle" x="2127" y="-811" font-family="Arial" font-size="10.00" fill="#ffffff">0.88%</text>
+<text text-anchor="middle" x="2127" y="-800" font-family="Arial" font-size="10.00" fill="#ffffff">(0.04%)</text>
+<text text-anchor="middle" x="2127" y="-789" font-family="Arial" font-size="10.00" fill="#ffffff">12×</text>
+</g>
+<!-- wctype_l -->
+<g id="node60" class="node"><title>wctype_l</title>
+<polygon fill="#0d1074" stroke="#0d1074" points="2568,-701 2512,-701 2512,-638 2568,-638 2568,-701"/>
+<text text-anchor="middle" x="2540" y="-689" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="2540" y="-678" font-family="Arial" font-size="10.00" fill="#ffffff">wctype_l</text>
+<text text-anchor="middle" x="2540" y="-667" font-family="Arial" font-size="10.00" fill="#ffffff">0.84%</text>
+<text text-anchor="middle" x="2540" y="-656" font-family="Arial" font-size="10.00" fill="#ffffff">(0.28%)</text>
+<text text-anchor="middle" x="2540" y="-645" font-family="Arial" font-size="10.00" fill="#ffffff">9×</text>
+</g>
+<!-- std::ctype&lt;wchar_t&gt;::_M_convert_to_wmask(unsigned short) const&#45;&gt;wctype_l -->
+<g id="edge66" class="edge"><title>std::ctype&lt;wchar_t&gt;::_M_convert_to_wmask(unsigned short) const&#45;&gt;wctype_l</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M2215.85,-781.95C2307.67,-750.382 2446.05,-702.803 2508.01,-681.497"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="2508.71,-682.552 2511.63,-680.256 2507.92,-680.235 2508.71,-682.552"/>
+<text text-anchor="middle" x="2432" y="-744.5" font-family="Arial" font-size="10.00" fill="#0d1074">0.84%</text>
+<text text-anchor="middle" x="2432" y="-733.5" font-family="Arial" font-size="10.00" fill="#0d1074">9×</text>
+</g>
+<!-- wctype_l&#45;&gt;__memcmp_sse4_1 -->
+<g id="edge90" class="edge"><title>wctype_l&#45;&gt;__memcmp_sse4_1</title>
+<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M2568.12,-641.795C2570.36,-640.37 2572.66,-639.082 2575,-638 2599.48,-626.689 2613.23,-644.913 2635,-629 2660.19,-610.585 2643.95,-588.081 2666,-566 2673.02,-558.972 2681.54,-552.986 2690.37,-547.962"/>
+<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="2691.17,-548.921 2693.64,-546.154 2689.98,-546.777 2691.17,-548.921"/>
+<text text-anchor="middle" x="2680" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d0e73">0.28%</text>
+<text text-anchor="middle" x="2680" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d0e73">41×</text>
+</g>
+<!-- wctype_l&#45;&gt;strlen -->
+<g id="edge91" class="edge"><title>wctype_l&#45;&gt;strlen</title>
+<path fill="none" stroke="#0d0e73" stroke-width="0.5" d="M2568.03,-641.6C2570.29,-640.221 2572.62,-638.997 2575,-638 2599.05,-627.922 2672.56,-646.383 2692,-629 2713.25,-609.999 2682.9,-585.158 2704,-566 2720.19,-551.301 2782.02,-565.894 2802,-557 2802.49,-556.782 2802.98,-556.553 2803.46,-556.316"/>
+<polygon fill="#0d0e73" stroke="#0d0e73" stroke-width="0.5" points="2804.12,-557.353 2806.62,-554.613 2802.96,-555.196 2804.12,-557.353"/>
+<text text-anchor="middle" x="2718" y="-600.5" font-family="Arial" font-size="10.00" fill="#0d0e73">0.28%</text>
+<text text-anchor="middle" x="2718" y="-589.5" font-family="Arial" font-size="10.00" fill="#0d0e73">58×</text>
+</g>
+<!-- std::ctype&lt;wchar_t&gt;::_M_initialize_ctype() -->
+<g id="node61" class="node"><title>std::ctype&lt;wchar_t&gt;::_M_initialize_ctype()</title>
+<polygon fill="#0d2379" stroke="#0d2379" points="239.5,-989 38.5,-989 38.5,-926 239.5,-926 239.5,-989"/>
+<text text-anchor="middle" x="139" y="-977" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="139" y="-966" font-family="Arial" font-size="10.00" fill="#ffffff">std::ctype&lt;wchar_t&gt;::_M_initialize_ctype()</text>
+<text text-anchor="middle" x="139" y="-955" font-family="Arial" font-size="10.00" fill="#ffffff">5.20%</text>
+<text text-anchor="middle" x="139" y="-944" font-family="Arial" font-size="10.00" fill="#ffffff">(0.84%)</text>
+<text text-anchor="middle" x="139" y="-933" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- std::ctype&lt;wchar_t&gt;::_M_initialize_ctype()&#45;&gt;btowc -->
+<g id="edge67" class="edge"><title>std::ctype&lt;wchar_t&gt;::_M_initialize_ctype()&#45;&gt;btowc</title>
+<path fill="none" stroke="#0d1876" stroke-width="0.5" d="M64.8414,-925.846C61.6399,-923.126 58.6623,-920.182 56,-917 40.1114,-898.007 33.1868,-870.75 30.1941,-849.118"/>
+<polygon fill="#0d1876" stroke="#0d1876" stroke-width="0.5" points="31.3797,-848.735 29.7132,-845.423 28.9502,-849.051 31.3797,-848.735"/>
+<text text-anchor="middle" x="70" y="-888.5" font-family="Arial" font-size="10.00" fill="#0d1876">2.75%</text>
+<text text-anchor="middle" x="70" y="-877.5" font-family="Arial" font-size="10.00" fill="#0d1876">256×</text>
+</g>
+<!-- std::ctype&lt;wchar_t&gt;::_M_initialize_ctype()&#45;&gt;std::ctype&lt;wchar_t&gt;::_M_convert_to_wmask(unsigned short) const -->
+<g id="edge68" class="edge"><title>std::ctype&lt;wchar_t&gt;::_M_initialize_ctype()&#45;&gt;std::ctype&lt;wchar_t&gt;::_M_convert_to_wmask(unsigned short) const</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M239.855,-949.15C472.619,-932.205 1065.36,-889.153 1561,-854 1618.33,-849.934 1632.67,-849.001 1690,-845 1782.42,-838.551 1885.83,-831.333 1968.85,-825.539"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="1969.38,-826.73 1972.79,-825.264 1969.21,-824.286 1969.38,-826.73"/>
+<text text-anchor="middle" x="1575" y="-888.5" font-family="Arial" font-size="10.00" fill="#0d1074">0.88%</text>
+<text text-anchor="middle" x="1575" y="-877.5" font-family="Arial" font-size="10.00" fill="#0d1074">12×</text>
+</g>
+<!-- wctob -->
+<g id="node62" class="node"><title>wctob</title>
+<polygon fill="#0d0f74" stroke="#0d0f74" points="121,-845 65,-845 65,-782 121,-782 121,-845"/>
+<text text-anchor="middle" x="93" y="-833" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="93" y="-822" font-family="Arial" font-size="10.00" fill="#ffffff">wctob</text>
+<text text-anchor="middle" x="93" y="-811" font-family="Arial" font-size="10.00" fill="#ffffff">0.67%</text>
+<text text-anchor="middle" x="93" y="-800" font-family="Arial" font-size="10.00" fill="#ffffff">(0.67%)</text>
+<text text-anchor="middle" x="93" y="-789" font-family="Arial" font-size="10.00" fill="#ffffff">128×</text>
+</g>
+<!-- std::ctype&lt;wchar_t&gt;::_M_initialize_ctype()&#45;&gt;wctob -->
+<g id="edge69" class="edge"><title>std::ctype&lt;wchar_t&gt;::_M_initialize_ctype()&#45;&gt;wctob</title>
+<path fill="none" stroke="#0d0f74" stroke-width="0.5" d="M99.3064,-925.898C97.2396,-923.089 95.4303,-920.118 94,-917 84.2504,-895.746 84.2458,-869.306 86.551,-848.604"/>
+<polygon fill="#0d0f74" stroke="#0d0f74" stroke-width="0.5" points="87.7742,-848.691 86.9729,-845.071 85.3415,-848.401 87.7742,-848.691"/>
+<text text-anchor="middle" x="108" y="-888.5" font-family="Arial" font-size="10.00" fill="#0d0f74">0.67%</text>
+<text text-anchor="middle" x="108" y="-877.5" font-family="Arial" font-size="10.00" fill="#0d0f74">128×</text>
+</g>
+<!-- std::ctype&lt;wchar_t&gt;::ctype(unsigned long) -->
+<g id="node63" class="node"><title>std::ctype&lt;wchar_t&gt;::ctype(unsigned long)</title>
+<polygon fill="#0d2379" stroke="#0d2379" points="272,-1092 70,-1092 70,-1029 272,-1029 272,-1092"/>
+<text text-anchor="middle" x="171" y="-1080" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="171" y="-1069" font-family="Arial" font-size="10.00" fill="#ffffff">std::ctype&lt;wchar_t&gt;::ctype(unsigned long)</text>
+<text text-anchor="middle" x="171" y="-1058" font-family="Arial" font-size="10.00" fill="#ffffff">5.21%</text>
+<text text-anchor="middle" x="171" y="-1047" font-family="Arial" font-size="10.00" fill="#ffffff">(0.01%)</text>
+<text text-anchor="middle" x="171" y="-1036" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- std::ctype&lt;wchar_t&gt;::ctype(unsigned long)&#45;&gt;std::ctype&lt;wchar_t&gt;::_M_initialize_ctype() -->
+<g id="edge70" class="edge"><title>std::ctype&lt;wchar_t&gt;::ctype(unsigned long)&#45;&gt;std::ctype&lt;wchar_t&gt;::_M_initialize_ctype()</title>
+<path fill="none" stroke="#0d2379" stroke-width="0.5" d="M161.312,-1028.92C157.711,-1017.56 153.602,-1004.59 149.9,-992.904"/>
+<polygon fill="#0d2379" stroke="#0d2379" stroke-width="0.5" points="150.99,-992.289 148.765,-989.322 148.655,-993.029 150.99,-992.289"/>
+<text text-anchor="middle" x="172" y="-1012" font-family="Arial" font-size="10.00" fill="#0d2379">5.20%</text>
+<text text-anchor="middle" x="172" y="-1001" font-family="Arial" font-size="10.00" fill="#0d2379">1×</text>
+</g>
+<!-- std::locale::_S_initialize() -->
+<g id="node67" class="node"><title>std::locale::_S_initialize()</title>
+<polygon fill="#0d337e" stroke="#0d337e" points="1401,-1401 1275,-1401 1275,-1338 1401,-1338 1401,-1401"/>
+<text text-anchor="middle" x="1338" y="-1389" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="1338" y="-1378" font-family="Arial" font-size="10.00" fill="#ffffff">std::locale::_S_initialize()</text>
+<text text-anchor="middle" x="1338" y="-1367" font-family="Arial" font-size="10.00" fill="#ffffff">8.46%</text>
+<text text-anchor="middle" x="1338" y="-1356" font-family="Arial" font-size="10.00" fill="#ffffff">(0.05%)</text>
+<text text-anchor="middle" x="1338" y="-1345" font-family="Arial" font-size="10.00" fill="#ffffff">22×</text>
+</g>
+<!-- std::locale::locale()&#45;&gt;std::locale::_S_initialize() -->
+<g id="edge78" class="edge"><title>std::locale::locale()&#45;&gt;std::locale::_S_initialize()</title>
+<path fill="none" stroke="#0d337e" stroke-width="0.5" d="M1361.71,-1440.92C1357.88,-1429.56 1353.51,-1416.59 1349.58,-1404.9"/>
+<polygon fill="#0d337e" stroke="#0d337e" stroke-width="0.5" points="1350.65,-1404.25 1348.38,-1401.32 1348.33,-1405.03 1350.65,-1404.25"/>
+<text text-anchor="middle" x="1373" y="-1424" font-family="Arial" font-size="10.00" fill="#0d337e">8.46%</text>
+<text text-anchor="middle" x="1373" y="-1413" font-family="Arial" font-size="10.00" fill="#0d337e">22×</text>
+</g>
+<!-- std::locale::_Impl::_Impl(unsigned long) -->
+<g id="node65" class="node"><title>std::locale::_Impl::_Impl(unsigned long)</title>
+<polygon fill="#0d337e" stroke="#0d337e" points="584,-1195 398,-1195 398,-1132 584,-1132 584,-1195"/>
+<text text-anchor="middle" x="491" y="-1183" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="491" y="-1172" font-family="Arial" font-size="10.00" fill="#ffffff">std::locale::_Impl::_Impl(unsigned long)</text>
+<text text-anchor="middle" x="491" y="-1161" font-family="Arial" font-size="10.00" fill="#ffffff">8.40%</text>
+<text text-anchor="middle" x="491" y="-1150" font-family="Arial" font-size="10.00" fill="#ffffff">(0.25%)</text>
+<text text-anchor="middle" x="491" y="-1139" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- std::locale::_Impl::_Impl(unsigned long)&#45;&gt;std::ctype&lt;wchar_t&gt;::ctype(unsigned long) -->
+<g id="edge74" class="edge"><title>std::locale::_Impl::_Impl(unsigned long)&#45;&gt;std::ctype&lt;wchar_t&gt;::ctype(unsigned long)</title>
+<path fill="none" stroke="#0d2379" stroke-width="0.5" d="M397.583,-1133.02C357.928,-1120.5 311.632,-1105.89 271.261,-1093.14"/>
+<polygon fill="#0d2379" stroke="#0d2379" stroke-width="0.5" points="271.577,-1091.96 267.87,-1092.07 270.839,-1094.3 271.577,-1091.96"/>
+<text text-anchor="middle" x="374" y="-1115" font-family="Arial" font-size="10.00" fill="#0d2379">5.21%</text>
+<text text-anchor="middle" x="374" y="-1104" font-family="Arial" font-size="10.00" fill="#0d2379">1×</text>
+</g>
+<!-- std::locale::_Impl::_M_install_facet(std::locale::id const*, std::locale::facet const*) -->
+<g id="node66" class="node"><title>std::locale::_Impl::_M_install_facet(std::locale::id const*, std::locale::facet const*)</title>
+<polygon fill="#0d1776" stroke="#0d1776" points="676.5,-1092 305.5,-1092 305.5,-1029 676.5,-1029 676.5,-1092"/>
+<text text-anchor="middle" x="491" y="-1080" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="491" y="-1069" font-family="Arial" font-size="10.00" fill="#ffffff">std::locale::_Impl::_M_install_facet(std::locale::id const*, std::locale::facet const*)</text>
+<text text-anchor="middle" x="491" y="-1058" font-family="Arial" font-size="10.00" fill="#ffffff">2.39%</text>
+<text text-anchor="middle" x="491" y="-1047" font-family="Arial" font-size="10.00" fill="#ffffff">(2.27%)</text>
+<text text-anchor="middle" x="491" y="-1036" font-family="Arial" font-size="10.00" fill="#ffffff">28×</text>
+</g>
+<!-- std::locale::_Impl::_Impl(unsigned long)&#45;&gt;std::locale::_Impl::_M_install_facet(std::locale::id const*, std::locale::facet const*) -->
+<g id="edge75" class="edge"><title>std::locale::_Impl::_Impl(unsigned long)&#45;&gt;std::locale::_Impl::_M_install_facet(std::locale::id const*, std::locale::facet const*)</title>
+<path fill="none" stroke="#0d1776" stroke-width="0.5" d="M491,-1131.92C491,-1120.56 491,-1107.59 491,-1095.9"/>
+<polygon fill="#0d1776" stroke="#0d1776" stroke-width="0.5" points="492.225,-1095.82 491,-1092.32 489.775,-1095.82 492.225,-1095.82"/>
+<text text-anchor="middle" x="505" y="-1115" font-family="Arial" font-size="10.00" fill="#0d1776">2.39%</text>
+<text text-anchor="middle" x="505" y="-1104" font-family="Arial" font-size="10.00" fill="#0d1776">28×</text>
+</g>
+<!-- std::locale::_S_initialize_once() -->
+<g id="node68" class="node"><title>std::locale::_S_initialize_once()</title>
+<polygon fill="#0d337e" stroke="#0d337e" points="736,-1298 584,-1298 584,-1235 736,-1235 736,-1298"/>
+<text text-anchor="middle" x="660" y="-1286" font-family="Arial" font-size="10.00" fill="#ffffff">scattnlay</text>
+<text text-anchor="middle" x="660" y="-1275" font-family="Arial" font-size="10.00" fill="#ffffff">std::locale::_S_initialize_once()</text>
+<text text-anchor="middle" x="660" y="-1264" font-family="Arial" font-size="10.00" fill="#ffffff">8.41%</text>
+<text text-anchor="middle" x="660" y="-1253" font-family="Arial" font-size="10.00" fill="#ffffff">(0.00%)</text>
+<text text-anchor="middle" x="660" y="-1242" font-family="Arial" font-size="10.00" fill="#ffffff">1×</text>
+</g>
+<!-- std::locale::_S_initialize()&#45;&gt;std::locale::_S_initialize_once() -->
+<g id="edge76" class="edge"><title>std::locale::_S_initialize()&#45;&gt;std::locale::_S_initialize_once()</title>
+<path fill="none" stroke="#0d337e" stroke-width="0.5" d="M1274.7,-1342.75C1269.1,-1340.97 1263.49,-1339.35 1258,-1338 1075.97,-1293.3 855.57,-1276.63 739.848,-1270.66"/>
+<polygon fill="#0d337e" stroke="#0d337e" stroke-width="0.5" points="739.673,-1269.42 736.115,-1270.46 739.548,-1271.87 739.673,-1269.42"/>
+<text text-anchor="middle" x="1225" y="-1321" font-family="Arial" font-size="10.00" fill="#0d337e">8.41%</text>
+<text text-anchor="middle" x="1225" y="-1310" font-family="Arial" font-size="10.00" fill="#0d337e">1×</text>
+</g>
+<!-- std::locale::_S_initialize_once()&#45;&gt;std::locale::_Impl::_Impl(unsigned long) -->
+<g id="edge77" class="edge"><title>std::locale::_S_initialize_once()&#45;&gt;std::locale::_Impl::_Impl(unsigned long)</title>
+<path fill="none" stroke="#0d337e" stroke-width="0.5" d="M608.836,-1234.92C588.825,-1222.96 565.843,-1209.23 545.52,-1197.08"/>
+<polygon fill="#0d337e" stroke="#0d337e" stroke-width="0.5" points="545.915,-1195.89 542.282,-1195.15 544.658,-1197.99 545.915,-1195.89"/>
+<text text-anchor="middle" x="605" y="-1218" font-family="Arial" font-size="10.00" fill="#0d337e">8.40%</text>
+<text text-anchor="middle" x="605" y="-1207" font-family="Arial" font-size="10.00" fill="#0d337e">1×</text>
+</g>
+<!-- std::string::_Rep::_M_destroy(std::allocator&lt;char&gt; const&amp;)&#45;&gt;operator delete(void*) -->
+<g id="edge79" class="edge"><title>std::string::_Rep::_M_destroy(std::allocator&lt;char&gt; const&amp;)&#45;&gt;operator delete(void*)</title>
+<path fill="none" stroke="#0d1074" stroke-width="0.5" d="M270.295,-709.839C274.531,-670.429 281.865,-602.189 286.292,-561.004"/>
+<polygon fill="#0d1074" stroke="#0d1074" stroke-width="0.5" points="287.555,-560.715 286.711,-557.104 285.119,-560.453 287.555,-560.715"/>
+<text text-anchor="middle" x="293" y="-672.5" font-family="Arial" font-size="10.00" fill="#0d1074">0.70%</text>
+<text text-anchor="middle" x="293" y="-661.5" font-family="Arial" font-size="10.00" fill="#0d1074">25×</text>
 </g>
 </g>
 </svg>