LCOV - code coverage report
Current view: top level - air_casawvr/src - slice.cc (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 0 27 0.0 %
Date: 2024-10-28 15:53:10 Functions: 0 5 0.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           0 :   Slice::Slice( double T , double P,
      20           0 :                 double scale):
      21           0 :     T(T), P(P),
      22           0 :     scale(scale)
      23             :   {
      24             : 
      25           0 :   }
      26             : 
      27           0 :   void Slice::AddColumn (const Column & c)
      28             :   {
      29           0 :     cols.push_back(& c);
      30           0 :   }
      31             : 
      32           0 :   void Slice::ComputeTx (const std::vector<double> & f,
      33             :                          std::vector<double> & res) const 
      34             :   {
      35           0 :     res.resize(f.size());
      36             :     
      37           0 :     std::vector<double> scratch( f.size() , 0.0 );
      38           0 :     std::vector<double> total  ( f.size() , 0.0 );
      39           0 :     for ( size_t cn =0 ; cn < cols.size() ; ++cn)
      40             :     {
      41           0 :       cols[cn]->ComputeTau(f, *this, scratch );
      42           0 :       for (size_t i =0 ; i < f.size() ; ++i )
      43             :       {
      44           0 :         total[i] += (scratch[i]*scale);
      45             :       }
      46             :     }
      47             :     
      48           0 :     for (size_t i =0 ; i < f.size() ; ++i )
      49             :     {
      50           0 :       res[i] = exp( -1.0 * total[i] );
      51             :     }
      52           0 :   }
      53             : 
      54           0 :   OpaqueSlice::OpaqueSlice( double T , double P):
      55           0 :     Slice(T,P)
      56             :   {
      57           0 :   }
      58             : 
      59           0 :   void OpaqueSlice::ComputeTx (const std::vector<double> & f,
      60             :                                std::vector<double> & res) const   
      61             :   {
      62           0 :     res.resize(f.size());
      63           0 :     for (size_t i =0 ; i < f.size() ; ++i )
      64             :     {
      65           0 :       res[i] = 0;
      66             :     }
      67           0 :   }
      68             : 
      69             : 
      70             : 
      71             : }
      72             : 
      73             : 

Generated by: LCOV version 1.16