LCOV - code coverage report
Current view: top level - air_casawvr/src - partitionsum.cc (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 0 17 0.0 %
Date: 2024-10-29 13:38:20 Functions: 0 3 0.0 %

          Line data    Source code
       1             : /**
       2             :    \file partitionsum.cpp
       3             :    Bojan Nikolic <bn204@mrao.cam.ac.uk>, <bojan@bnikolic.co.uk>
       4             :    
       5             :    Initial version February 2008
       6             :    Maintained by ESO since 2013.
       7             :    Renamed partitionsum.cc 2023
       8             : 
       9             : */
      10             : 
      11             : #include "partitionsum.h"
      12             : 
      13             : namespace LibAIR2 {
      14             : 
      15           0 :   PartitionTable::PartitionTable(casacore::Matrix<double>* raw):
      16           0 :     raw(raw)
      17             :   {
      18           0 :   }
      19             : 
      20           0 :   size_t PartitionTable::findrow(double T) const
      21             :   {
      22           0 :     const size_t nrows= raw->shape()[0];
      23             :     
      24           0 :     size_t rlow = 0;
      25           0 :     size_t rhigh= nrows;
      26             :     
      27           0 :     while  ( rhigh > rlow+1 ) 
      28             :     {
      29           0 :       size_t rmid = (rlow+rhigh)/2;
      30             :       
      31           0 :       if ( (*raw)(rmid,0) > T )
      32           0 :         rhigh=rmid;
      33             :       else
      34           0 :         rlow=rmid;
      35             : 
      36             :     } ;
      37           0 :     return rlow;
      38             : 
      39             :   }
      40             : 
      41           0 :   double PartitionTable::eval(double T, size_t i) const
      42             :   {
      43           0 :     const size_t rlow  = findrow(T);
      44           0 :     const double delta = ( (*raw)(rlow+1, 0) - T) / ( (*raw)(rlow+1, 0) - (*raw)(rlow, 0) );
      45             : 
      46           0 :     return delta* (*raw)(rlow, i) + (1.0-delta)* (*raw)(rlow+1, i);
      47             : 
      48             :   }
      49             : 
      50             :   
      51             : 
      52             : }
      53             : 
      54             : 

Generated by: LCOV version 1.16