summaryrefslogtreecommitdiff
path: root/Network_Statistics.hh
blob: f88b201de73712f0150c1c77cf8810ddba757cbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
  © Copyright 2008 Randal A. Koene <randalk@netmorph.org>
  
  With design assistance from J. van Pelt & A. van Ooyen, and support
  from the Netherlands Organization for Scientific Research (NWO)
  Program Computational Life Sciences grant CLS2003 (635.100.005) and
  from the EC Marie Curie Research and Training Network (RTN)
  NEURoVERS-it 019247.

  This file is part of NETMORPH.

  NETMORPH is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  NETMORPH is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with NETMORPH.  If not, see <http://www.gnu.org/licenses/>.
*/
// Network_Statistics.hh
// Randal A. Koene, 20041118
//
// Classes that provide statistics for network development.

#ifndef __NETWORK_STATISTICS_HH
#define __NETWORK_STATISTICS_HH

#include "templates.hh"
#include "BigString.hh"
#include "neuron.hh"

class Network_Statistics: public PLLHandle<Network_Statistics> {
  // provides statistics for network generation
protected:
  neuron_type ntype; // network statistics for this type
  double ratio; // ratio of cells in network that are of type ntype
  int populationsize; // number of cells in network that are of type ntype
public:
  Network_Statistics(neuron_type nt, double r): ntype(nt), ratio(r), populationsize(-1) {}
  Network_Statistics(neuron_type nt, int n): ntype(nt), ratio(0.0), populationsize(n) {}
  neuron_type TypeID() { return ntype; }
  double Ratio() { return ratio; }
  int PopulationSize() { return populationsize; }
  String str(); // (see nibr.cc)
  String all_str(char sep = '\n'); // (see nibr.cc)
};

class Network_Statistics_Root: public PLLRoot<Network_Statistics> {
  bool exactpopulationsizes;
public:
  Network_Statistics_Root(bool epsizes = false): exactpopulationsizes(epsizes)  {}
  bool UseExactPopulationSizes() const { return exactpopulationsizes; }
};

#endif