/* MELODIC - Multivariate exploratory linear optimized decomposition into independent components melodic.h - main program header Christian F. Beckmann, 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.13"; // 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