This is an automated email from the git hooks/post-receive script.

hmmr-guest pushed a commit to branch master
in repository aghermann.

commit 3544b57e7de0a634b8c0ceb607e99e68b8c5eac9
Author: Andrei Zavada <[email protected]>
Date:   Thu Aug 15 14:32:39 2013 +0300

    ICM
---
 src/aghermann/expdesign/Makefile.am                |    9 +-
 .../expdesign/{primaries.cc => expdesign.cc}       |   70 +----------
 src/aghermann/expdesign/loadsave.cc                |   10 +-
 src/aghermann/expdesign/primaries.hh               |   95 ++++----------
 src/aghermann/expdesign/subject.cc                 |  132 ++++++++++++++++++++
 src/common/containers.hh                           |    8 ++
 6 files changed, 172 insertions(+), 152 deletions(-)

diff --git a/src/aghermann/expdesign/Makefile.am 
b/src/aghermann/expdesign/Makefile.am
index 3d7a57a..355905d 100644
--- a/src/aghermann/expdesign/Makefile.am
+++ b/src/aghermann/expdesign/Makefile.am
@@ -7,13 +7,14 @@ noinst_LIBRARIES := liba.a
 
 liba_a_SOURCES := \
        forward-decls.hh \
-       loadsave.cc \
-       tree-scanner.cc \
-       primaries.cc \
        primaries.hh \
+       profile.hh \
+       expdesign.cc \
+       loadsave.cc \
        recording.cc \
        recording.hh \
-       profile.hh
+       subject.cc \
+       tree-scanner.cc
 
 if DO_PCH
 BUILT_SOURCES := \
diff --git a/src/aghermann/expdesign/primaries.cc 
b/src/aghermann/expdesign/expdesign.cc
similarity index 91%
rename from src/aghermann/expdesign/primaries.cc
rename to src/aghermann/expdesign/expdesign.cc
index d864d13..d807de3 100644
--- a/src/aghermann/expdesign/primaries.cc
+++ b/src/aghermann/expdesign/expdesign.cc
@@ -1,5 +1,5 @@
 /*
- *       File name:  aghermann/expdesign/primaries.cc
+ *       File name:  aghermann/expdesign/expdesign.cc
  *         Project:  Aghermann
  *          Author:  Andrei Zavada <[email protected]>
  * Initial version:  2010-04-28
@@ -11,10 +11,7 @@
 
 
 #include <stdarg.h>
-#include <errno.h>
-#include <cassert>
 #include <string>
-#include <fstream>
 
 #ifdef _OPENMP
 #include <omp.h>
@@ -35,7 +32,7 @@ const char
 };
 
 double
-agh::CExpDesign::freq_bands[metrics::TBand::TBand_total][2] = {
+       agh::CExpDesign::freq_bands[metrics::TBand::TBand_total][2] = {
        {  1.5,  4.0 },
        {  4.0,  8.0 },
        {  8.0, 12.0 },
@@ -44,6 +41,7 @@ agh::CExpDesign::freq_bands[metrics::TBand::TBand_total][2] = 
{
 };
 
 
+
 agh::CExpDesign::
 CExpDesign (const string& session_dir_,
            TMsmtCollectProgressIndicatorFun progress_fun)
@@ -429,68 +427,6 @@ used_samplerates( sigfile::SChannel::TType type) const
 
 
 
-float
-agh::CSubject::
-age() const
-{
-       time_t now = time(NULL);
-       if ( unlikely (now == -1) ) {
-               perror( "What's wrong with localtime? ");
-               return 21.;
-       }
-       return age_rel(now);
-}
-
-float
-agh::CSubject::
-age_rel( time_t rel) const
-{
-       return (difftime(rel, dob))/365.25/24/60/60;
-}
-
-
-
-
-agh::CSubject::SEpisode::
-SEpisode (sigfile::CTypedSource&& F_,
-         const metrics::psd::SPPack& fft_params,
-         const metrics::swu::SPPack& swu_params,
-         const metrics::mc::SPPack& mc_params)
-{
-      // move it in place
-       sources.emplace_back( move(F_));
-       auto& F = sources.back();
-       auto HH = F().channel_list();
-       printf( "CSubject::SEpisode::SEpisode( \"%s\"): %s\n",
-               F().filename(), sigfile::join_channel_names(HH, ", ").c_str());
-       int h = 0;
-       for ( auto& H : HH )
-               recordings.insert( {H, {F, h++, fft_params, swu_params, 
mc_params}});
-}
-
-
-list<agh::CSubject::SEpisode::SAnnotation>
-agh::CSubject::SEpisode::
-get_annotations() const
-{
-       list<agh::CSubject::SEpisode::SAnnotation>
-               ret;
-       for ( auto &F : sources ) {
-               auto HH = F().channel_list();
-               for ( size_t h = 0; h < HH.size(); ++h ) {
-                       auto &AA = F().annotations(h);
-                       for ( auto &A : AA )
-                               ret.emplace_back( F(), h, A);
-               }
-               for ( auto& A : F().annotations() )
-                       ret.emplace_back( F(), -1, A);
-       }
-       ret.sort();
-       return ret;
-}
-
-
-
 
 void
 agh::CExpDesign::
diff --git a/src/aghermann/expdesign/loadsave.cc 
b/src/aghermann/expdesign/loadsave.cc
index 3b6b999..5a35b40 100644
--- a/src/aghermann/expdesign/loadsave.cc
+++ b/src/aghermann/expdesign/loadsave.cc
@@ -9,12 +9,6 @@
  *         License:  GPL
  */
 
-#include <sys/stat.h>
-#include <errno.h>
-#include <fcntl.h>
-
-#include <memory>
-
 #include "common/config-validate.hh"
 #include "aghermann/model/achermann.hh"
 #include "primaries.hh"
@@ -28,7 +22,7 @@ using namespace agh;
 
 
 int
-agh::CExpDesign::
+CExpDesign::
 load_settings()
 {
        libconfig::Config conf;
@@ -111,7 +105,7 @@ load_settings()
 
 
 int
-agh::CExpDesign::
+CExpDesign::
 save_settings()
 {
        libconfig::Config conf;
diff --git a/src/aghermann/expdesign/primaries.hh 
b/src/aghermann/expdesign/primaries.hh
index 6c4d085..186082b 100644
--- a/src/aghermann/expdesign/primaries.hh
+++ b/src/aghermann/expdesign/primaries.hh
@@ -14,21 +14,18 @@
 #define AGH_AGHERMANN_EXPDESIGN_PRIMARIES_H_
 
 
-#include <cstring>
 #include <string>
 #include <list>
-#include <functional>
 #include <forward_list>
 #include <map>
-#include <stdexcept>
 
 #include "common/config-validate.hh"
+#include "common/containers.hh"
 #include "common/subject_id.hh"
 #include "libsigproc/winfun.hh"
 #include "libmetrics/bands.hh"
 #include "aghermann/model/achermann.hh"
 
-#include "recording.hh"
 #include "forward-decls.hh"
 
 #if HAVE_CONFIG_H && !defined(VERSION)
@@ -70,34 +67,18 @@ class CSubject : public SSubjectId {
                { return _dir.c_str(); }
 
        int try_update_subject_details( const agh::SSubjectId& j)
-               {
-                       return SSubjectId::update_from( j);
-               }
+               { return SSubjectId::update_from( j); }
 
-       float age( const string& d) const // age when recordings in this 
session were made
-               {
-                       if ( measurements.find(d) != measurements.end() &&
-                            measurements.at(d).episodes.size() > 0 )
-                               return age_rel(
-                                       
measurements.at(d).episodes.front().start_time());
-                       else
-                               return -1.;
-               }
+       float age( const string& d) const; // age when recordings in this 
session were made
        float age() const; // now
        float age_rel( time_t) const;
 
        bool operator==( const CSubject &o) const
-               {
-                       return id == o.id;
-               }
+               { return id == o.id; }
        bool operator==( const string& n) const
-               {
-                       return SSubjectId::id == n;
-               }
+               { return SSubjectId::id == n; }
        bool operator==( sid_t id) const
-               {
-                       return _id == id;
-               }
+               { return _id == id; }
 
       // contents
        struct SEpisodeSequence;
@@ -121,14 +102,10 @@ class CSubject : public SSubjectId {
 
                const char*
                name() const
-                       {
-                               return sources.front()().episode();
-                       }
+                       { return sources.front()().episode(); }
                bool
                operator==( const string& e) const
-                       {
-                               return e == name();
-                       }
+                       { return e == name(); }
                bool
                operator<( const SEpisode& rv) const
                        {
@@ -150,20 +127,14 @@ class CSubject : public SSubjectId {
 
                        bool
                        operator<( const SAnnotation& rv) const
-                               {
-                                       return span < rv.span;
-                               }
+                               { return span < rv.span; }
 
                        const char*
                        channel() const
-                               {
-                                       return (_h == -1) ? "(embedded)" : 
_source.channel_by_id(_h).name();
-                               }
+                               { return (_h == -1) ? "(embedded)" : 
_source.channel_by_id(_h).name(); }
                        agh::alg::SSpan<float>
                        page_span( size_t pagesize) const
-                               {
-                                       return span / (float)pagesize;
-                               }
+                               { return span / (float)pagesize; }
                };
                list<SAnnotation>
                get_annotations() const;
@@ -182,42 +153,21 @@ class CSubject : public SSubjectId {
            public:
                list<SEpisode> episodes;
                size_t
-               __attribute__ ((pure))
                size() const
-                       {
-                               return episodes.size();
-                       }
+                       { return episodes.size(); }
+
                list<SEpisode>::const_iterator
                episode_iter_by_name( const string& e) const
-                       {
-                               return find( episodes.begin(), episodes.end(), 
e);
-                       }
+                       { return find( episodes.begin(), episodes.end(), e); }
                bool
                have_episode( const string& e) const
-                       {
-                               return episode_iter_by_name(e) != 
episodes.cend();
-                       }
+                       { return episode_iter_by_name(e) != episodes.cend(); }
+
                const SEpisode&
-               operator[]( const string& e) const
-                       {
-                               auto E = find( episodes.begin(), 
episodes.end(), e);
-                               if ( E != episodes.end() )
-                                       return *E;
-                               else
-                                       throw invalid_argument( string("no such 
episode: ") + e);
-                       }
+               operator[]( const string& e) const;
                SEpisode&
-               operator[]( const string& e)
-                       {
-                               auto E = find( episodes.begin(), 
episodes.end(), e);
-                               if ( E != episodes.end() )
-                                       return *E;
-                               else // or don't throw, go and make one?
-                                       throw invalid_argument( string("no such 
episode: ") + e);
-                               // no, let it be created in
-                               // CExpDesign::add_measurement, when
-                               // episode start/end times are known
-                       }
+               operator[]( const string& e);
+
              // either construct a new episode from F, or update an
              // existing one (add F to its sources)
                int
@@ -296,10 +246,9 @@ class CExpDesign {
        session_dir() const
                { return _session_dir.c_str(); }
 
-       string name() const // dirname
-               {
-                       return _session_dir.substr( _session_dir.rfind( '/'));
-               }
+       string
+       name() const // dirname
+               { return _session_dir.substr( _session_dir.rfind( '/')); }
 
       // error log
        enum class TLogEntryStyle { plain, bold, italic };
diff --git a/src/aghermann/expdesign/subject.cc 
b/src/aghermann/expdesign/subject.cc
new file mode 100644
index 0000000..8577753
--- /dev/null
+++ b/src/aghermann/expdesign/subject.cc
@@ -0,0 +1,132 @@
+/*
+ *       File name:  aghermann/expdesign/subject.cc
+ *         Project:  Aghermann
+ *          Author:  Andrei Zavada <[email protected]>
+ * Initial version:  2013-08-14
+ *
+ *         Purpose:  experimental design primary classes: CSubject
+ *
+ *         License:  GPL
+ */
+
+
+#include "primaries.hh"
+
+
+using namespace std;
+
+using namespace agh;
+
+
+float
+CSubject::
+age( const string& d) const // age when recordings in this session were made
+{
+       if ( alg::member(d, measurements) &&
+            measurements.at(d).episodes.size() > 0 )
+               return age_rel(
+                       measurements.at(d).episodes.front().start_time());
+       else
+               return -1.;
+}
+
+
+
+float
+CSubject::
+age() const
+{
+       time_t now = time(NULL);
+       if ( unlikely (now == -1) ) {
+               perror( "What's wrong with localtime? ");
+               return 21.;
+       }
+       return age_rel(now);
+}
+
+float
+CSubject::
+age_rel( time_t rel) const
+{
+       return (difftime(rel, dob))/365.25/24/60/60;
+}
+
+
+
+
+
+
+CSubject::SEpisode::
+SEpisode (sigfile::CTypedSource&& F_,
+         const metrics::psd::SPPack& fft_params,
+         const metrics::swu::SPPack& swu_params,
+         const metrics::mc::SPPack& mc_params)
+{
+      // move it in place
+       sources.emplace_back( move(F_));
+       auto& F = sources.back();
+       auto HH = F().channel_list();
+       printf( "CSubject::SEpisode::SEpisode( \"%s\"): %s\n",
+               F().filename(), sigfile::join_channel_names(HH, ", ").c_str());
+       int h = 0;
+       for ( auto& H : HH )
+               recordings.insert( {H, {F, h++, fft_params, swu_params, 
mc_params}});
+}
+
+
+list<CSubject::SEpisode::SAnnotation>
+CSubject::SEpisode::
+get_annotations() const
+{
+       list<agh::CSubject::SEpisode::SAnnotation>
+               ret;
+       for ( auto &F : sources ) {
+               auto HH = F().channel_list();
+               for ( size_t h = 0; h < HH.size(); ++h ) {
+                       auto &AA = F().annotations(h);
+                       for ( auto &A : AA )
+                               ret.emplace_back( F(), h, A);
+               }
+               for ( auto& A : F().annotations() )
+                       ret.emplace_back( F(), -1, A);
+       }
+       ret.sort();
+       return ret;
+}
+
+
+
+const CSubject::SEpisode&
+CSubject::SEpisodeSequence::
+operator[]( const string& e) const
+{
+       auto E = find( episodes.begin(), episodes.end(), e);
+       if ( E != episodes.end() )
+               return *E;
+       else
+               throw invalid_argument( string("no such episode: ") + e);
+}
+
+CSubject::SEpisode&
+CSubject::SEpisodeSequence::
+operator[]( const string& e)
+{
+       auto E = find( episodes.begin(), episodes.end(), e);
+       if ( E != episodes.end() )
+               return *E;
+       else // or don't throw, go and make one?
+               throw invalid_argument( string("no such episode: ") + e);
+       // no, let it be created in
+       // CExpDesign::add_measurement, when
+       // episode start/end times are known
+}
+
+
+
+
+// Local Variables:
+// Mode: c++
+// indent-tabs-mode: 8
+// tab-width: 8
+// c-basic-offset: 8
+// End:
diff --git a/src/common/containers.hh b/src/common/containers.hh
index ec84ec2..5f2abee 100644
--- a/src/common/containers.hh
+++ b/src/common/containers.hh
@@ -15,6 +15,7 @@
 #include <list>
 #include <forward_list>
 #include <vector>
+#include <map>
 
 #if HAVE_CONFIG_H && !defined(VERSION)
 #  include "config.h"
@@ -46,6 +47,13 @@ member( const T& x, const vector<T>& v)
        return any( v.begin(), v.end(), x);
 }
 
+template <typename K, typename V>
+bool
+member( const K& x, const map<K, V>& m)
+{
+       return m.find(x) != m.end();
+}
+
 } // namespace alg
 } // namespace agh
 

-- 
Alioth's /git/debian-med/git-commit-notice on 
/srv/git.debian.org/git/debian-med/aghermann.git

_______________________________________________
debian-med-commit mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit

Reply via email to