#ifndef __SOURCE_H__
#define __SOURCE_H__

#include <math.h>
#include "RungeKutta.h"

/* Precisione dell'integrazione di Rung-Kutta */
#define RKPRECISION 1.E-6

/* Variabile globale in source.c che deve essere inizializzata 
   dall'utente per definire la frequenza della forzante.       */
extern double SourceFrequency;

/* Semplice sinusoide e cosinusoide con fase 0 ed ampiezza 1 V*/
void SimpleSinusoid(double* t0, double dummy1, double dummy2,
                    double  dt, double* sinusoid, double* cosinusoid); 

/* Circuito RC, impulsato da sinusoide di ampiezza 1 V e stima
   della tensione ai capi del condensatore 
*/
void RCSinusoid(    double* t0, double dummy1, double oldvcapaciatnce,
                    double  dt, double* pulser, double* vcapacitance);

/* Circuito RC, impulsato da onda quadra di ampiezza 1 V e stima
   della tensione ai capi del condensatore 
*/
void RCSquare(      double* t0, double dummy1, double oldvcapaciatnce,
                    double  dt, double* pulser, double* vcapacitance);

/* Circuito LC, impulsato da sinusoide 0 ampiezza 1 V e stima
   della tensione ai capi del condensatore 
*/
void LCSinusoid(    double* t0, double dummy1, double oldvcapaciatnce,
                    double  dt, double* pulser, double* vcapacitance);

/* Circuito LC, impulsato da onda quadra di ampiezza 1 V e stima
   della tensione ai capi del condensatore 
*/
void LCSquare(      double* t0, double dummy1, double oldvcapaciatnce,
                    double  dt, double* pulser, double* vcapacitance);

/* Circuito RLC, impulsato da sinusoide 0 ampiezza 1 V e stima
   della tensione ai capi del condensatore 
*/
void RLCSinusoid(   double* t0, double dummy1, double oldvcapaciatnce,
                    double  dt, double* pulser, double* vcapacitance);

/* Circuito RLC, impulsato da onda quadra di ampiezza 1 V e stima
   della tensione ai capi del condensatore 
*/
void RLCSquare(     double* t0, double dummy1, double oldvcapaciatnce,
                    double  dt, double* pulser, double* vcapacitance);

#endif
