Переглянути джерело

changed some resferences to const

Konstantin Ladutenko 10 роки тому
батько
коміт
61feff1ccc
3 змінених файлів з 17 додано та 16 видалено
  1. 2 2
      go.sh
  2. 13 11
      nmie-wrapper.cc
  3. 2 3
      nmie-wrapper.h

+ 2 - 2
go.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 echo Compile with gcc -O2
-rm -rf *.bin
-
+rm -f *.bin
+rm -f ../scattnlay
 #g++ -O2 -std=c++11 standalone.cc nmie.cc -lm -o scattnlay.bin
 
 clang++ -g -O1 -fsanitize=address  -fno-optimize-sibling-calls -fno-omit-frame-pointer -std=c++11 standalone.cc nmie.cc nmie-wrapper.cc -lm -o scattnlay.bin

+ 13 - 11
nmie-wrapper.cc

@@ -258,10 +258,12 @@ int MultiLayerMie::Nstop(double xL) {
 }
 
 //**********************************************************************************//
-int MultiLayerMie::Nmax(int L, int fl, int pl,
-         std::vector<double> x,
-		 std::vector<std::complex<double> > m) {
+int MultiLayerMie::Nmax(int L, int fl) {
   int i, result, ri, riM1;
+  const std::vector<double>& x = size_parameter_;
+  const std::vector<std::complex<double> >& m = index_;
+  const int& pl = PEC_layer_position_;
+
   result = Nstop(x[L - 1]);
   for (i = fl; i < L; i++) {
     if (i > pl) {
@@ -687,20 +689,21 @@ void MultiLayerMie::calcPiTau(double Theta, std::vector<double>& Pi, std::vector
 // Return value:                                                                    //
 //   Number of multipolar expansion terms used for the calculations                 //
 //**********************************************************************************//
-void MultiLayerMie::ScattCoeffs(int L, int pl, 
+void MultiLayerMie::ScattCoeffs(int L,
 		        std::vector<std::complex<double> >& an, std::vector<std::complex<double> >& bn) {
   //************************************************************************//
   // Calculate the index of the first layer. It can be either 0 (default)   //
   // or the index of the outermost PEC layer. In the latter case all layers //
   // below the PEC are discarded.                                           //
   //************************************************************************//
-  std::vector<double>& x = size_parameter_;
-  std::vector<std::complex<double> >& m = index_;
+  const std::vector<double>& x = size_parameter_;
+  const std::vector<std::complex<double> >& m = index_;
+  const int& pl = PEC_layer_position_;
 
   int fl = (pl > 0) ? pl : 0;
 
   if (nmax_ <= 0) {
-    nmax_ = Nmax(L, fl, pl, x, m);
+    nmax_ = Nmax(L, fl);
   }
 
   std::complex<double> z1, z2;
@@ -923,12 +926,11 @@ void MultiLayerMie::ScattCoeffs(int L, int pl,
   int i, n, t;
   std::vector<std::complex<double> > an, bn;
   std::complex<double> Qbktmp;
-  std::vector<double>& x = size_parameter_;
-  std::vector<std::complex<double> >& m = index_;
-  int& pl = PEC_layer_position_;
+  const std::vector<double>& x = size_parameter_;
+  const std::vector<std::complex<double> >& m = index_;
   int L = index_.size();
   // Calculate scattering coefficients
-  ScattCoeffs(L, pl, an, bn);
+  ScattCoeffs(L, an, bn);
 
   std::vector<double> Pi, Tau;
   Pi.resize(nmax_);

+ 2 - 3
nmie-wrapper.h

@@ -154,8 +154,7 @@ namespace nmie {
     void GenerateIndex();
 
     int Nstop(double xL);
-    int Nmax(int L, int fl, int pl, std::vector<double> x,
-			std::vector<std::complex<double> > m);
+    int Nmax(int L, int fl);
     int sbesjh(std::complex<double> z, std::vector<std::complex<double> >& jn,
 	       std::vector<std::complex<double> >& jnp, std::vector<std::complex<double> >& h1n,
 	       std::vector<std::complex<double> >& h1np);
@@ -183,7 +182,7 @@ namespace nmie {
 		  std::vector<std::complex<double> >& D1,
 		  std::vector<std::complex<double> >& D3);
     void calcPiTau( double Theta, std::vector<double>& Pi, std::vector<double>& Tau);
-    void ScattCoeffs(int L, int pl, std::vector<std::complex<double> >& an, std::vector<std::complex<double> >& bn); 
+    void ScattCoeffs(int L, std::vector<std::complex<double> >& an, std::vector<std::complex<double> >& bn); 
     
     const double PI=3.14159265358979323846;
     bool isMieCalculated_ = false;