LCOV - code coverage report
Current view: top level - air_casawvr/src - slice.cc (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 27 27 100.0 %
Date: 2024-11-06 17:42:47 Functions: 5 5 100.0 %

          Line data    Source code
       1             : /**
       2             :    \file slice.cpp
       3             :    Bojan Nikolic <bn204@mrao.cam.ac.uk>, <bojan@bnikolic.co.uk>
       4             :    Initial version February 2008
       5             :    Maintained by ESO since 2013.
       6             :    Renamed slice.cc 2023
       7             : 
       8             : */
       9             : 
      10             : #include "slice.h"
      11             : 
      12             : #include <cmath>
      13             : 
      14             : #include "columns.h"
      15             : 
      16             : 
      17             : namespace LibAIR2 {
      18             : 
      19         162 :   Slice::Slice( double T , double P,
      20         162 :                 double scale):
      21         162 :     T(T), P(P),
      22         162 :     scale(scale)
      23             :   {
      24             : 
      25         162 :   }
      26             : 
      27         162 :   void Slice::AddColumn (const Column & c)
      28             :   {
      29         162 :     cols.push_back(& c);
      30         162 :   }
      31             : 
      32    79505305 :   void Slice::ComputeTx (const std::vector<double> & f,
      33             :                          std::vector<double> & res) const 
      34             :   {
      35    79505305 :     res.resize(f.size());
      36             :     
      37    79505305 :     std::vector<double> scratch( f.size() , 0.0 );
      38    79505305 :     std::vector<double> total  ( f.size() , 0.0 );
      39   238515915 :     for ( size_t cn =0 ; cn < cols.size() ; ++cn)
      40             :     {
      41   159010610 :       cols[cn]->ComputeTau(f, *this, scratch );
      42  6519435010 :       for (size_t i =0 ; i < f.size() ; ++i )
      43             :       {
      44  6360424400 :         total[i] += (scratch[i]*scale);
      45             :       }
      46             :     }
      47             :     
      48  3259717505 :     for (size_t i =0 ; i < f.size() ; ++i )
      49             :     {
      50  3180212200 :       res[i] = exp( -1.0 * total[i] );
      51             :     }
      52    79505305 :   }
      53             : 
      54          81 :   OpaqueSlice::OpaqueSlice( double T , double P):
      55          81 :     Slice(T,P)
      56             :   {
      57          81 :   }
      58             : 
      59          81 :   void OpaqueSlice::ComputeTx (const std::vector<double> & f,
      60             :                                std::vector<double> & res) const   
      61             :   {
      62          81 :     res.resize(f.size());
      63        3321 :     for (size_t i =0 ; i < f.size() ; ++i )
      64             :     {
      65        3240 :       res[i] = 0;
      66             :     }
      67          81 :   }
      68             : 
      69             : 
      70             : 
      71             : }
      72             : 
      73             : 

Generated by: LCOV version 1.16