Dripline-Cpp  v2.4.2
Dripline Implementation in C++
oscillator.cc
Go to the documentation of this file.
1 /*
2  * oscillator.cc
3  *
4  * Created on: May 15, 2019
5  * Author: N.S. Oblath
6  */
7 
8 #include "oscillator.hh"
9 
10 #include <cmath>
11 
12 namespace dripline
13 {
14 
16  f_frequency( 1. ),
17  f_amplitude( 1. ),
18  f_start_time( std::chrono::steady_clock::now() )
19  {
20  }
21 
23  {
24  }
25 
26  std::pair< oscillator::time_point_t, double > oscillator::in_phase( time_point_t a_time )
27  {
28  return std::make_pair( a_time, f_amplitude * cos( f_frequency * duration_t( a_time - f_start_time ).count() ) );
29  }
30 
31  std::pair< oscillator::time_point_t, double > oscillator::quadrature( time_point_t a_time )
32  {
33  return std::make_pair( a_time, f_amplitude * sin( f_frequency * duration_t( a_time - f_start_time ).count() ) );
34  }
35 
36  std::pair< oscillator::time_point_t, oscillator::iq_t > oscillator::iq( time_point_t a_time )
37  {
38  return std::make_pair( a_time, iq_t( in_phase( a_time).second, quadrature( a_time ).second ) );
39  }
40 
41 } /* namespace dripline */
std::chrono::time_point< std::chrono::steady_clock, duration_t > time_point_t
Definition: oscillator.hh:27
STL namespace.
std::pair< time_point_t, double > quadrature(time_point_t a_time=clock_t::now())
Definition: oscillator.cc:31
std::chrono::duration< double > duration_t
Definition: oscillator.hh:26
std::pair< time_point_t, double > in_phase(time_point_t a_time=clock_t::now())
Definition: oscillator.cc:26
std::pair< time_point_t, iq_t > iq(time_point_t a_time=clock_t::now())
Definition: oscillator.cc:36
std::complex< double > iq_t
Definition: oscillator.hh:29
virtual ~oscillator()
Definition: oscillator.cc:22