1#ifndef SPIKE_STATISTICS_H
2#define SPIKE_STATISTICS_H
10#include "Spike/Signal/WhiteNoiseSignal.h"
11#include "Spike/SpikeTrain/SpikeTrain.h"
12#include "Spike/TimeFrame/TimeFrame.h"
16double mean(
const std::vector<double> &array);
18double standard_deviation(
const std::vector<double> &array);
20std::vector<double> get_spike_times(
const SpikeTrain &spike_train,
21 const TimeFrame &time);
23double calculate_cv(
const std::vector<double> &spike_times);
25void cross_spectrum(
const std::vector<double> &input_signal,
26 const std::vector<double> &output_signal,
27 const TimeFrame &time_frame,
28 std::complex<double> *spectrum);
30void power_spectrum(
const std::vector<double> &signal,
31 const TimeFrame &time_frame, std::vector<double> &spectrum);
33void susceptibility(
const std::vector<double> &input_signal,
34 const std::vector<double> &output_signal,
35 const TimeFrame &time_frame,
36 std::vector<std::complex<double>> &suscept);
38void susceptibility(
const WhiteNoiseSignal &signal,
39 const std::vector<double> &output_signal,
40 const TimeFrame &time_frame,
41 std::vector<std::complex<double>> &suscept,
size_t norm);
43void susceptibility_lin_nonlin(
const WhiteNoiseSignal &signal,
44 const std::vector<double> &output_signal,
45 const TimeFrame &time_frame,
46 std::vector<std::complex<double>> &suscept_lin,
47 std::vector<std::complex<double>> &suscept_nonlin_diag,
48 std::vector<std::complex<double>> &suscept_nonlin_antidiag,
51void susceptibility_nonlin(
52 const WhiteNoiseSignal &signal,
const std::vector<double> &output_signal,
53 const TimeFrame &time_frame,
54 std::vector<std::vector<std::complex<double>>> &suscept_nonlin,