Newer
Older
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
61
62
63
64
65
66
67
68
/* MELODIC - Multivariate exploratory linear optimized decomposition into
independent components
melodic.h - main program header
Christian F. Beckmann and Matthew Webster, FMRIB Analysis Group
Copyright (C) 1999-2013 University of Oxford */
/* CCOPYRIGHT */
#ifndef __MELODIC_h
#define __MELODIC_h
#include <strstream>
#ifdef __APPLE__
#include <mach/mach.h>
#define memmsg(msg) { \
MelodicOptions&opt = MelodicOptions::getInstance(); \
struct task_basic_info t_info; \
mach_msg_type_number_t t_info_count = TASK_BASIC_INFO_COUNT; \
if (KERN_SUCCESS == task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t) &t_info, &t_info_count)) \
{ \
if(opt.debug.value()) {\
cout << " MEM: " << msg << " res: " << t_info.resident_size/1000000 << " virt: " << t_info.virtual_size/1000000 << "\n"; \
cout.flush(); \
} \
} \
}
#else
#define memmsg(msg) { \
MelodicOptions&opt = MelodicOptions::getInstance(); \
if(opt.debug.value()) {\
cout << msg; \
cout.flush(); \
} \
}
#endif
// a simple message macro that takes care of cout and log
#define message(msg) { \
MelodicOptions& opt = MelodicOptions::getInstance(); \
if(opt.verbose.value()) \
{ \
cout << msg; \
} \
Log& logger = LogSingleton::getInstance(); \
logger.str() << msg; \
cout.flush(); \
}
#define dbgmsg(msg) { \
MelodicOptions&opt = MelodicOptions::getInstance(); \
if(opt.debug.value()) {\
cout << msg; } \
}
#define outMsize(msg,Mat) { \
MelodicOptions& opt = MelodicOptions::getInstance(); \
if(opt.debug.value()) \
cerr << " " << msg << " " <<Mat.Nrows() << " x " << Mat.Ncols() << endl; \
}
namespace Melodic{
const string version = "3.15";
// The two strings below specify the title and example usage that is
// printed out as the help or usage message
const string title=string("MELODIC (Version ")+version+")"+
string("\n Multivariate Exploratory Linear Optimised Decomposition into Independent Components\n")+
string("\nAuthor: Christian F. Beckmann \n Copyright(c) 2001-2013 University of Oxford");
const string usageexmpl=string(" melodic -i <filename> <options>")+
string("\n \t \t to run melodic")+
// string("\n melodic -i <filename> --mix=melodic_mix")+
// string(" --filter=\"string of component numbers\"")+
// string("\n \t \t to remove estimated ICs from input")+
string("\n melodic -i <filename> --ICs=melodic_IC")+
string(" --mix=melodic_mix <options>")+
string("\n \t \t to run Mixture Model based inference on estimated ICs")+
string("\n melodic --help ");
}
#endif