From a2264cebcabdb0efbd6f2d8f64bb90444c1f50c3 Mon Sep 17 00:00:00 2001 From: Marcel Stimberg Date: Thu, 12 Sep 2024 13:48:46 +0200 Subject: [PATCH] Fix formatting in objects.cpp Replace tabs by spaces --- .../cpp_standalone/templates/objects.cpp | 385 +++++++++--------- 1 file changed, 192 insertions(+), 193 deletions(-) diff --git a/brian2/devices/cpp_standalone/templates/objects.cpp b/brian2/devices/cpp_standalone/templates/objects.cpp index 1eb955ebc..fab6bf3a0 100644 --- a/brian2/devices/cpp_standalone/templates/objects.cpp +++ b/brian2/devices/cpp_standalone/templates/objects.cpp @@ -80,15 +80,15 @@ template void set_variable_from_file(std::string varname, T* var_pointe //////////////// set arrays by name /////// void set_variable_by_name(std::string name, std::string s_value) { - size_t var_size; - size_t data_size; - // C-style or Python-style capitalization is allowed for boolean values + size_t var_size; + size_t data_size; + // C-style or Python-style capitalization is allowed for boolean values if (s_value == "true" || s_value == "True") s_value = "1"; else if (s_value == "false" || s_value == "False") s_value = "0"; - // non-dynamic arrays - {% for var, varname in array_specs | dictsort(by='value') %} + // non-dynamic arrays + {% for var, varname in array_specs | dictsort(by='value') %} {% if not var in dynamic_array_specs and not var.read_only %} if (name == "{{var.owner.name}}.{{var.name}}") { var_size = {{var.size}}; @@ -171,8 +171,8 @@ const int _num_{{name}} = {{N}}; // {{S.name}} {% for path in S._pathways | sort(attribute='name') %} SynapticPathway {{path.name}}( - {{dynamic_array_specs[path.synapse_sources]}}, - {{path.source.start}}, {{path.source.stop}}); + {{dynamic_array_specs[path.synapse_sources]}}, + {{path.source.start}}, {{path.source.stop}}); {% endfor %} {% endfor %} @@ -191,108 +191,108 @@ double {{codeobj}}_profiling_info = 0.0; void _init_arrays() { - using namespace brian; + using namespace brian; // Arrays initialized to 0 - {% for var, varname in zero_arrays | sort(attribute='1') %} - {% if varname in dynamic_array_specs.values() %} - {{varname}}.resize({{var.size}}); - {% else %} - {{varname}} = new {{c_data_type(var.dtype)}}[{{var.size}}]; - {% endif %} + {% for var, varname in zero_arrays | sort(attribute='1') %} + {% if varname in dynamic_array_specs.values() %} + {{varname}}.resize({{var.size}}); + {% else %} + {{varname}} = new {{c_data_type(var.dtype)}}[{{var.size}}]; + {% endif %} {{ openmp_pragma('parallel-static')}} - for(int i=0; i<{{var.size}}; i++) {{varname}}[i] = 0; + for(int i=0; i<{{var.size}}; i++) {{varname}}[i] = 0; - {% endfor %} + {% endfor %} - // Arrays initialized to an "arange" - {% for var, varname, start in arange_arrays | sort(attribute='1')%} - {% if varname in dynamic_array_specs.values() %} - {{varname}}.resize({{var.size}}); - {% else %} - {{varname}} = new {{c_data_type(var.dtype)}}[{{var.size}}]; - {% endif %} + // Arrays initialized to an "arange" + {% for var, varname, start in arange_arrays | sort(attribute='1')%} + {% if varname in dynamic_array_specs.values() %} + {{varname}}.resize({{var.size}}); + {% else %} + {{varname}} = new {{c_data_type(var.dtype)}}[{{var.size}}]; + {% endif %} {{ openmp_pragma('parallel-static')}} - for(int i=0; i<{{var.size}}; i++) {{varname}}[i] = {{start}} + i; - - {% endfor %} - - // static arrays - {% for (name, dtype_spec, N, filename) in static_array_specs | sort %} - {% if name in dynamic_array_specs.values() %} - {{name}}.resize({{N}}); - {% else %} - {{name}} = new {{dtype_spec}}[{{N}}]; - {% endif %} - {% endfor %} - - // Random number generator states - std::random_device rd; - for (int i=0; i<{{openmp_pragma('get_num_threads')}}; i++) - _random_generators.push_back(RandomGenerator()); + for(int i=0; i<{{var.size}}; i++) {{varname}}[i] = {{start}} + i; + + {% endfor %} + + // static arrays + {% for (name, dtype_spec, N, filename) in static_array_specs | sort %} + {% if name in dynamic_array_specs.values() %} + {{name}}.resize({{N}}); + {% else %} + {{name}} = new {{dtype_spec}}[{{N}}]; + {% endif %} + {% endfor %} + + // Random number generator states + std::random_device rd; + for (int i=0; i<{{openmp_pragma('get_num_threads')}}; i++) + _random_generators.push_back(RandomGenerator()); } void _load_arrays() { - using namespace brian; - - {% for (name, dtype_spec, N, filename) in static_array_specs | sort %} - ifstream f{{name}}; - f{{name}}.open("static_arrays/{{name}}", ios::in | ios::binary); - if(f{{name}}.is_open()) - { - {% if name in dynamic_array_specs.values() %} - f{{name}}.read(reinterpret_cast(&{{name}}[0]), {{N}}*sizeof({{dtype_spec}})); - {% else %} - f{{name}}.read(reinterpret_cast({{name}}), {{N}}*sizeof({{dtype_spec}})); - {% endif %} - } else - { - std::cout << "Error opening static array {{name}}." << endl; - } - {% endfor %} + using namespace brian; + + {% for (name, dtype_spec, N, filename) in static_array_specs | sort %} + ifstream f{{name}}; + f{{name}}.open("static_arrays/{{name}}", ios::in | ios::binary); + if(f{{name}}.is_open()) + { + {% if name in dynamic_array_specs.values() %} + f{{name}}.read(reinterpret_cast(&{{name}}[0]), {{N}}*sizeof({{dtype_spec}})); + {% else %} + f{{name}}.read(reinterpret_cast({{name}}), {{N}}*sizeof({{dtype_spec}})); + {% endif %} + } else + { + std::cout << "Error opening static array {{name}}." << endl; + } + {% endfor %} } void _write_arrays() { - using namespace brian; - - {% for var, varname in array_specs | dictsort(by='value') %} - {% if not (var in dynamic_array_specs or var in dynamic_array_2d_specs) %} - ofstream outfile_{{varname}}; - outfile_{{varname}}.open(results_dir + "{{get_array_filename(var)}}", ios::binary | ios::out); - if(outfile_{{varname}}.is_open()) - { - outfile_{{varname}}.write(reinterpret_cast({{varname}}), {{var.size}}*sizeof({{get_array_name(var)}}[0])); - outfile_{{varname}}.close(); - } else - { - std::cout << "Error writing output file for {{varname}}." << endl; - } - {% endif %} - {% endfor %} - - {% for var, varname in dynamic_array_specs | dictsort(by='value') %} - ofstream outfile_{{varname}}; - outfile_{{varname}}.open(results_dir + "{{get_array_filename(var)}}", ios::binary | ios::out); - if(outfile_{{varname}}.is_open()) - { + using namespace brian; + + {% for var, varname in array_specs | dictsort(by='value') %} + {% if not (var in dynamic_array_specs or var in dynamic_array_2d_specs) %} + ofstream outfile_{{varname}}; + outfile_{{varname}}.open(results_dir + "{{get_array_filename(var)}}", ios::binary | ios::out); + if(outfile_{{varname}}.is_open()) + { + outfile_{{varname}}.write(reinterpret_cast({{varname}}), {{var.size}}*sizeof({{get_array_name(var)}}[0])); + outfile_{{varname}}.close(); + } else + { + std::cout << "Error writing output file for {{varname}}." << endl; + } + {% endif %} + {% endfor %} + + {% for var, varname in dynamic_array_specs | dictsort(by='value') %} + ofstream outfile_{{varname}}; + outfile_{{varname}}.open(results_dir + "{{get_array_filename(var)}}", ios::binary | ios::out); + if(outfile_{{varname}}.is_open()) + { if (! {{varname}}.empty() ) { - outfile_{{varname}}.write(reinterpret_cast(&{{varname}}[0]), {{varname}}.size()*sizeof({{varname}}[0])); - outfile_{{varname}}.close(); - } - } else - { - std::cout << "Error writing output file for {{varname}}." << endl; - } - {% endfor %} - - {% for var, varname in dynamic_array_2d_specs | dictsort(by='value') %} - ofstream outfile_{{varname}}; - outfile_{{varname}}.open(results_dir + "{{get_array_filename(var)}}", ios::binary | ios::out); - if(outfile_{{varname}}.is_open()) - { + outfile_{{varname}}.write(reinterpret_cast(&{{varname}}[0]), {{varname}}.size()*sizeof({{varname}}[0])); + outfile_{{varname}}.close(); + } + } else + { + std::cout << "Error writing output file for {{varname}}." << endl; + } + {% endfor %} + + {% for var, varname in dynamic_array_2d_specs | dictsort(by='value') %} + ofstream outfile_{{varname}}; + outfile_{{varname}}.open(results_dir + "{{get_array_filename(var)}}", ios::binary | ios::out); + if(outfile_{{varname}}.is_open()) + { for (int n=0; n<{{varname}}.n; n++) { if (! {{varname}}(n).empty()) @@ -301,63 +301,63 @@ void _write_arrays() } } outfile_{{varname}}.close(); - } else - { - std::cout << "Error writing output file for {{varname}}." << endl; - } - {% endfor %} + } else + { + std::cout << "Error writing output file for {{varname}}." << endl; + } + {% endfor %} {% if profiled_codeobjects is defined and profiled_codeobjects %} - // Write profiling info to disk - ofstream outfile_profiling_info; - outfile_profiling_info.open(results_dir + "profiling_info.txt", ios::out); - if(outfile_profiling_info.is_open()) - { - {% for codeobj in profiled_codeobjects | sort %} - outfile_profiling_info << "{{codeobj}}\t" << {{codeobj}}_profiling_info << std::endl; - {% endfor %} - outfile_profiling_info.close(); - } else - { - std::cout << "Error writing profiling info to file." << std::endl; - } + // Write profiling info to disk + ofstream outfile_profiling_info; + outfile_profiling_info.open(results_dir + "profiling_info.txt", ios::out); + if(outfile_profiling_info.is_open()) + { + {% for codeobj in profiled_codeobjects | sort %} + outfile_profiling_info << "{{codeobj}}\t" << {{codeobj}}_profiling_info << std::endl; + {% endfor %} + outfile_profiling_info.close(); + } else + { + std::cout << "Error writing profiling info to file." << std::endl; + } {% endif %} - // Write last run info to disk - ofstream outfile_last_run_info; - outfile_last_run_info.open(results_dir + "last_run_info.txt", ios::out); - if(outfile_last_run_info.is_open()) - { - outfile_last_run_info << (Network::_last_run_time) << " " << (Network::_last_run_completed_fraction) << std::endl; - outfile_last_run_info.close(); - } else - { - std::cout << "Error writing last run info to file." << std::endl; - } + // Write last run info to disk + ofstream outfile_last_run_info; + outfile_last_run_info.open(results_dir + "last_run_info.txt", ios::out); + if(outfile_last_run_info.is_open()) + { + outfile_last_run_info << (Network::_last_run_time) << " " << (Network::_last_run_completed_fraction) << std::endl; + outfile_last_run_info.close(); + } else + { + std::cout << "Error writing last run info to file." << std::endl; + } } void _dealloc_arrays() { - using namespace brian; - - {% for var, varname in array_specs | dictsort(by='value') %} - {% if varname in dynamic_array_specs.values() %} - if({{varname}}!=0) - { - delete [] {{varname}}; - {{varname}} = 0; - } - {% endif %} - {% endfor %} - - // static arrays - {% for (name, dtype_spec, N, filename) in static_array_specs | sort %} - {% if not name in dynamic_array_specs.values() %} - if({{name}}!=0) - { - delete [] {{name}}; - {{name}} = 0; - } - {% endif %} - {% endfor %} + using namespace brian; + + {% for var, varname in array_specs | dictsort(by='value') %} + {% if varname in dynamic_array_specs.values() %} + if({{varname}}!=0) + { + delete [] {{varname}}; + {{varname}} = 0; + } + {% endif %} + {% endfor %} + + // static arrays + {% for (name, dtype_spec, N, filename) in static_array_specs | sort %} + {% if not name in dynamic_array_specs.values() %} + if({{name}}!=0) + { + delete [] {{name}}; + {{name}} = 0; + } + {% endif %} + {% endfor %} } {% endmacro %} @@ -383,55 +383,54 @@ namespace brian { extern std::string results_dir; class RandomGenerator { - private: - std::mt19937 gen; - double stored_gauss; - bool has_stored_gauss = false; - public: - RandomGenerator() { - seed(); - } - void seed() { - std::random_device rd; - gen.seed(rd()); - has_stored_gauss = false; - } - void seed(unsigned long seed) { - gen.seed(seed); - has_stored_gauss = false; - } - double rand() { - /* shifts : 67108864 = 0x4000000, 9007199254740992 = 0x20000000000000 */ - const long a = gen() >> 5; - const long b = gen() >> 6; - return (a * 67108864.0 + b) / 9007199254740992.0; - } - - double randn() - { - if (has_stored_gauss) { - const double tmp = stored_gauss; - has_stored_gauss = false; - return tmp; - } - else { - double f, x1, x2, r2; - - do { - x1 = 2.0*rand() - 1.0; - x2 = 2.0*rand() - 1.0; - r2 = x1*x1 + x2*x2; - } - while (r2 >= 1.0 || r2 == 0.0); - - /* Box-Muller transform */ - f = sqrt(-2.0*log(r2)/r2); - /* Keep for next call */ - stored_gauss = f*x1; - has_stored_gauss = true; - return f*x2; - } - } + private: + std::mt19937 gen; + double stored_gauss; + bool has_stored_gauss = false; + public: + RandomGenerator() { + seed(); + } + void seed() { + std::random_device rd; + gen.seed(rd()); + has_stored_gauss = false; + } + void seed(unsigned long seed) { + gen.seed(seed); + has_stored_gauss = false; + } + double rand() { + /* shifts : 67108864 = 0x4000000, 9007199254740992 = 0x20000000000000 */ + const long a = gen() >> 5; + const long b = gen() >> 6; + return (a * 67108864.0 + b) / 9007199254740992.0; + } + + double randn() { + if (has_stored_gauss) { + const double tmp = stored_gauss; + has_stored_gauss = false; + return tmp; + } + else { + double f, x1, x2, r2; + + do { + x1 = 2.0*rand() - 1.0; + x2 = 2.0*rand() - 1.0; + r2 = x1*x1 + x2*x2; + } + while (r2 >= 1.0 || r2 == 0.0); + + /* Box-Muller transform */ + f = sqrt(-2.0*log(r2)/r2); + /* Keep for next call */ + stored_gauss = f*x1; + has_stored_gauss = true; + return f*x2; + } + } }; // In OpenMP we need one state per thread