├── .cproject ├── .externalToolBuilders ├── .gitignore ├── make.launch └── org.python.pydev.PyDevBuilder.launch ├── .gitignore ├── .project ├── .pydevproject ├── .settings ├── org.eclipse.cdt.codan.core.prefs ├── org.eclipse.cdt.core.prefs ├── org.eclipse.cdt.ui.prefs └── org.eclipse.core.resources.prefs ├── .travis.yml ├── CHANGELOG.txt ├── CMakeLists.txt ├── Doxyfile ├── LICENSE.txt ├── README.md ├── appveyor.yml ├── appveyor_windows ├── config.h ├── debug_version.h ├── mdllex.c ├── mdlparse.c ├── mdlparse.h └── version.h ├── build_gperftools.sh ├── docs ├── code_notes.txt ├── coding_style.txt ├── doxygen │ ├── Doxyfile │ └── mcell_logo.gif ├── dynamic_geometry.md ├── grid_util.lyx ├── grid_util.pdf ├── grid_util_bary.eps ├── grid_util_bary.fig ├── lr_bar_2D.pdf ├── lr_bar_2D.tex ├── mcell_output_log_control.txt ├── mem_util.lyx ├── mem_util.pdf ├── policy_mol_wall_interaction.odt ├── policy_surf_products_placement.doc ├── rdl.0.2.0.pdf ├── reaction_overview │ ├── Table_1.pdf │ ├── Table_2.pdf │ ├── Table_3.pdf │ ├── Table_4.pdf │ ├── Table_5.pdf │ ├── fig1.png │ ├── fig2.png │ ├── fig3.png │ ├── fig4.png │ ├── fig5.png │ └── reaction_overview.pdf ├── suggested_3way_rxn.lyx └── suggested_3way_rxn.pdf ├── include ├── datamodel_defines.h ├── debug.h ├── debug_config.h └── dump_state.h ├── libmcell ├── .gitignore ├── CMakeLists.txt ├── api │ ├── api_common.h │ ├── api_config.h │ ├── api_utils.cpp │ ├── api_utils.h │ ├── base_chkpt_mol.h │ ├── base_data_class.h │ ├── base_export_class.h │ ├── base_introspection_class.h │ ├── bindings.cpp │ ├── bindings.h │ ├── bng_converter.cpp │ ├── bng_converter.h │ ├── bngl_utils.cpp │ ├── callbacks.cpp │ ├── callbacks.h │ ├── checkpoint_signals.cpp │ ├── checkpoint_signals.h │ ├── chkpt_surf_mol.cpp │ ├── chkpt_surf_mol.h │ ├── chkpt_vol_mol.cpp │ ├── chkpt_vol_mol.h │ ├── color.cpp │ ├── color.h │ ├── compartment_utils.cpp │ ├── compartment_utils.h │ ├── complex.cpp │ ├── complex.h │ ├── component.cpp │ ├── component.h │ ├── component_type.cpp │ ├── component_type.h │ ├── count.cpp │ ├── count.h │ ├── count_term.h │ ├── data_utils.cpp │ ├── elementary_molecule.cpp │ ├── elementary_molecule.h │ ├── elementary_molecule_type.cpp │ ├── elementary_molecule_type.h │ ├── exports.cpp │ ├── geometry_object.cpp │ ├── geometry_object.h │ ├── geometry_utils.cpp │ ├── globals.cpp │ ├── globals.h │ ├── initial_surface_release.h │ ├── instantiation.cpp │ ├── instantiation.h │ ├── introspection.cpp │ ├── introspection.h │ ├── libmcell_dummy.cpp │ ├── mcell.h │ ├── mcell4_converter.cpp │ ├── mcell4_converter.h │ ├── model.cpp │ ├── model.h │ ├── mol_wall_hit_info.h │ ├── molecule.cpp │ ├── molecule.h │ ├── molecule_release_info.h │ ├── notifications.h │ ├── observables.cpp │ ├── observables.h │ ├── pybind11_stl_include.h │ ├── python_export_constants.cpp │ ├── python_export_constants.h │ ├── python_export_utils.cpp │ ├── python_export_utils.h │ ├── python_exporter.cpp │ ├── python_exporter.h │ ├── reaction_info.h │ ├── reaction_rule.cpp │ ├── reaction_rule.h │ ├── region.h │ ├── release_pattern.h │ ├── release_site.h │ ├── rng_state.cpp │ ├── rng_state.h │ ├── run_utils.cpp │ ├── shared_structs.h │ ├── species.cpp │ ├── species.h │ ├── subsystem.cpp │ ├── subsystem.h │ ├── surface_class.cpp │ ├── surface_class.h │ ├── surface_property.h │ ├── surface_region.h │ ├── viz_output.h │ ├── wall.cpp │ ├── wall.h │ ├── wall_wall_hit_info.h │ └── warnings.h ├── definition │ ├── callbacks.yaml │ ├── checkpointing.yaml │ ├── constants.py │ ├── constants.yaml │ ├── doc.py │ ├── gen.py │ ├── geometry.yaml │ ├── instantiation.yaml │ ├── introspection.yaml │ ├── model.yaml │ ├── observables.yaml │ ├── simulation_setup.yaml │ ├── submodules.yaml │ └── subsystem.yaml ├── documentation │ ├── api_overview.rst │ ├── bngl.rst │ ├── build.sh │ ├── conf.py │ ├── examples │ │ └── examples.rst │ ├── features │ │ ├── dynamic_geometry.rst │ │ └── features.rst │ ├── file_formats.rst │ ├── generated │ │ ├── api.rst │ │ ├── callbacks.rst │ │ ├── checkpointing.rst │ │ ├── constants.rst │ │ ├── geometry.rst │ │ ├── instantiation.rst │ │ ├── introspection.rst │ │ ├── model.rst │ │ ├── observables.rst │ │ ├── simulation_setup.rst │ │ ├── submodules.rst │ │ └── subsystem.rst │ ├── images │ │ ├── bngl_compartments.png │ │ ├── bngl_rule.png │ │ ├── bngl_rule_application.png │ │ ├── installation_macos_security_and_privacy.png │ │ ├── installation_macos_security_and_privacy_selected.png │ │ ├── installation_macos_start_blender.png │ │ ├── installation_macos_start_terminal.png │ │ ├── installation_macos_warning1.png │ │ ├── installation_macos_warning2.png │ │ ├── installation_macos_warning3.png │ │ ├── installation_macos_warning4.png │ │ ├── installation_win_redist.png │ │ ├── plugin_cellblender_enable.png │ │ ├── troubleshooting_cannot_initialize_cellblender.png │ │ └── tutorial_result.png │ ├── index.rst │ ├── installation.rst │ ├── model_conversions.rst │ ├── prerequisites.txt │ ├── sim_env_overview.rst │ ├── templates │ │ └── layout.html │ └── tutorial │ │ └── tutorial.rst ├── generated │ ├── .gitignore │ ├── gen_base_chkpt_mol.cpp │ ├── gen_base_chkpt_mol.h │ ├── gen_bngl_utils.cpp │ ├── gen_bngl_utils.h │ ├── gen_chkpt_surf_mol.cpp │ ├── gen_chkpt_surf_mol.h │ ├── gen_chkpt_vol_mol.cpp │ ├── gen_chkpt_vol_mol.h │ ├── gen_color.cpp │ ├── gen_color.h │ ├── gen_complex.cpp │ ├── gen_complex.h │ ├── gen_component.cpp │ ├── gen_component.h │ ├── gen_component_type.cpp │ ├── gen_component_type.h │ ├── gen_config.cpp │ ├── gen_config.h │ ├── gen_constants.cpp │ ├── gen_constants.h │ ├── gen_count.cpp │ ├── gen_count.h │ ├── gen_count_term.cpp │ ├── gen_count_term.h │ ├── gen_data_utils.cpp │ ├── gen_data_utils.h │ ├── gen_elementary_molecule.cpp │ ├── gen_elementary_molecule.h │ ├── gen_elementary_molecule_type.cpp │ ├── gen_elementary_molecule_type.h │ ├── gen_geometry_object.cpp │ ├── gen_geometry_object.h │ ├── gen_geometry_utils.cpp │ ├── gen_geometry_utils.h │ ├── gen_initial_surface_release.cpp │ ├── gen_initial_surface_release.h │ ├── gen_instantiation.cpp │ ├── gen_instantiation.h │ ├── gen_introspection.cpp │ ├── gen_introspection.h │ ├── gen_model.cpp │ ├── gen_model.h │ ├── gen_mol_wall_hit_info.cpp │ ├── gen_mol_wall_hit_info.h │ ├── gen_molecule.cpp │ ├── gen_molecule.h │ ├── gen_molecule_release_info.cpp │ ├── gen_molecule_release_info.h │ ├── gen_names.h │ ├── gen_notifications.cpp │ ├── gen_notifications.h │ ├── gen_observables.cpp │ ├── gen_observables.h │ ├── gen_reaction_info.cpp │ ├── gen_reaction_info.h │ ├── gen_reaction_rule.cpp │ ├── gen_reaction_rule.h │ ├── gen_region.cpp │ ├── gen_region.h │ ├── gen_release_pattern.cpp │ ├── gen_release_pattern.h │ ├── gen_release_site.cpp │ ├── gen_release_site.h │ ├── gen_rng_state.cpp │ ├── gen_rng_state.h │ ├── gen_run_utils.cpp │ ├── gen_run_utils.h │ ├── gen_species.cpp │ ├── gen_species.h │ ├── gen_subsystem.cpp │ ├── gen_subsystem.h │ ├── gen_surface_class.cpp │ ├── gen_surface_class.h │ ├── gen_surface_property.cpp │ ├── gen_surface_property.h │ ├── gen_surface_region.cpp │ ├── gen_surface_region.h │ ├── gen_vectors_bind.cpp │ ├── gen_vectors_make_opaque.h │ ├── gen_viz_output.cpp │ ├── gen_viz_output.h │ ├── gen_wall.cpp │ ├── gen_wall.h │ ├── gen_wall_wall_hit_info.cpp │ ├── gen_wall_wall_hit_info.h │ ├── gen_warnings.cpp │ ├── gen_warnings.h │ └── mcell.pyi └── replace_in_all_files.sh ├── libs ├── cpptime │ ├── LICENSE │ ├── MCELL_INFO.txt │ ├── README.md │ ├── cpptime.h │ └── tests │ │ ├── catch.hpp │ │ ├── mem_test.cpp │ │ └── timer_test.cpp ├── glm │ ├── CMakeLists.txt │ ├── common.hpp │ ├── detail │ │ ├── _features.hpp │ │ ├── _fixes.hpp │ │ ├── _noise.hpp │ │ ├── _swizzle.hpp │ │ ├── _swizzle_func.hpp │ │ ├── _vectorize.hpp │ │ ├── compute_common.hpp │ │ ├── compute_vector_relational.hpp │ │ ├── func_common.inl │ │ ├── func_common_simd.inl │ │ ├── func_exponential.inl │ │ ├── func_exponential_simd.inl │ │ ├── func_geometric.inl │ │ ├── func_geometric_simd.inl │ │ ├── func_integer.inl │ │ ├── func_integer_simd.inl │ │ ├── func_matrix.inl │ │ ├── func_matrix_simd.inl │ │ ├── func_packing.inl │ │ ├── func_packing_simd.inl │ │ ├── func_trigonometric.inl │ │ ├── func_trigonometric_simd.inl │ │ ├── func_vector_relational.inl │ │ ├── func_vector_relational_simd.inl │ │ ├── glm.cpp │ │ ├── qualifier.hpp │ │ ├── setup.hpp │ │ ├── type_float.hpp │ │ ├── type_half.hpp │ │ ├── type_half.inl │ │ ├── type_mat2x2.hpp │ │ ├── type_mat2x2.inl │ │ ├── type_mat2x3.hpp │ │ ├── type_mat2x3.inl │ │ ├── type_mat2x4.hpp │ │ ├── type_mat2x4.inl │ │ ├── type_mat3x2.hpp │ │ ├── type_mat3x2.inl │ │ ├── type_mat3x3.hpp │ │ ├── type_mat3x3.inl │ │ ├── type_mat3x4.hpp │ │ ├── type_mat3x4.inl │ │ ├── type_mat4x2.hpp │ │ ├── type_mat4x2.inl │ │ ├── type_mat4x3.hpp │ │ ├── type_mat4x3.inl │ │ ├── type_mat4x4.hpp │ │ ├── type_mat4x4.inl │ │ ├── type_mat4x4_simd.inl │ │ ├── type_quat.hpp │ │ ├── type_quat.inl │ │ ├── type_quat_simd.inl │ │ ├── type_vec1.hpp │ │ ├── type_vec1.inl │ │ ├── type_vec2.hpp │ │ ├── type_vec2.inl │ │ ├── type_vec3.hpp │ │ ├── type_vec3.inl │ │ ├── type_vec4.hpp │ │ ├── type_vec4.inl │ │ └── type_vec4_simd.inl │ ├── exponential.hpp │ ├── ext.hpp │ ├── ext │ │ ├── matrix_clip_space.hpp │ │ ├── matrix_clip_space.inl │ │ ├── matrix_double2x2.hpp │ │ ├── matrix_double2x2_precision.hpp │ │ ├── matrix_double2x3.hpp │ │ ├── matrix_double2x3_precision.hpp │ │ ├── matrix_double2x4.hpp │ │ ├── matrix_double2x4_precision.hpp │ │ ├── matrix_double3x2.hpp │ │ ├── matrix_double3x2_precision.hpp │ │ ├── matrix_double3x3.hpp │ │ ├── matrix_double3x3_precision.hpp │ │ ├── matrix_double3x4.hpp │ │ ├── matrix_double3x4_precision.hpp │ │ ├── matrix_double4x2.hpp │ │ ├── matrix_double4x2_precision.hpp │ │ ├── matrix_double4x3.hpp │ │ ├── matrix_double4x3_precision.hpp │ │ ├── matrix_double4x4.hpp │ │ ├── matrix_double4x4_precision.hpp │ │ ├── matrix_float2x2.hpp │ │ ├── matrix_float2x2_precision.hpp │ │ ├── matrix_float2x3.hpp │ │ ├── matrix_float2x3_precision.hpp │ │ ├── matrix_float2x4.hpp │ │ ├── matrix_float2x4_precision.hpp │ │ ├── matrix_float3x2.hpp │ │ ├── matrix_float3x2_precision.hpp │ │ ├── matrix_float3x3.hpp │ │ ├── matrix_float3x3_precision.hpp │ │ ├── matrix_float3x4.hpp │ │ ├── matrix_float3x4_precision.hpp │ │ ├── matrix_float4x2.hpp │ │ ├── matrix_float4x2_precision.hpp │ │ ├── matrix_float4x3.hpp │ │ ├── matrix_float4x3_precision.hpp │ │ ├── matrix_float4x4.hpp │ │ ├── matrix_float4x4_precision.hpp │ │ ├── matrix_projection.hpp │ │ ├── matrix_projection.inl │ │ ├── matrix_relational.hpp │ │ ├── matrix_relational.inl │ │ ├── matrix_transform.hpp │ │ ├── matrix_transform.inl │ │ ├── quaternion_common.hpp │ │ ├── quaternion_common.inl │ │ ├── quaternion_common_simd.inl │ │ ├── quaternion_double.hpp │ │ ├── quaternion_double_precision.hpp │ │ ├── quaternion_exponential.hpp │ │ ├── quaternion_exponential.inl │ │ ├── quaternion_float.hpp │ │ ├── quaternion_float_precision.hpp │ │ ├── quaternion_geometric.hpp │ │ ├── quaternion_geometric.inl │ │ ├── quaternion_relational.hpp │ │ ├── quaternion_relational.inl │ │ ├── quaternion_transform.hpp │ │ ├── quaternion_transform.inl │ │ ├── quaternion_trigonometric.hpp │ │ ├── quaternion_trigonometric.inl │ │ ├── scalar_common.hpp │ │ ├── scalar_common.inl │ │ ├── scalar_constants.hpp │ │ ├── scalar_constants.inl │ │ ├── scalar_int_sized.hpp │ │ ├── scalar_relational.hpp │ │ ├── scalar_relational.inl │ │ ├── scalar_uint_sized.hpp │ │ ├── scalar_ulp.hpp │ │ ├── scalar_ulp.inl │ │ ├── vector_bool1.hpp │ │ ├── vector_bool1_precision.hpp │ │ ├── vector_bool2.hpp │ │ ├── vector_bool2_precision.hpp │ │ ├── vector_bool3.hpp │ │ ├── vector_bool3_precision.hpp │ │ ├── vector_bool4.hpp │ │ ├── vector_bool4_precision.hpp │ │ ├── vector_common.hpp │ │ ├── vector_common.inl │ │ ├── vector_double1.hpp │ │ ├── vector_double1_precision.hpp │ │ ├── vector_double2.hpp │ │ ├── vector_double2_precision.hpp │ │ ├── vector_double3.hpp │ │ ├── vector_double3_precision.hpp │ │ ├── vector_double4.hpp │ │ ├── vector_double4_precision.hpp │ │ ├── vector_float1.hpp │ │ ├── vector_float1_precision.hpp │ │ ├── vector_float2.hpp │ │ ├── vector_float2_precision.hpp │ │ ├── vector_float3.hpp │ │ ├── vector_float3_precision.hpp │ │ ├── vector_float4.hpp │ │ ├── vector_float4_precision.hpp │ │ ├── vector_int1.hpp │ │ ├── vector_int1_precision.hpp │ │ ├── vector_int2.hpp │ │ ├── vector_int2_precision.hpp │ │ ├── vector_int3.hpp │ │ ├── vector_int3_precision.hpp │ │ ├── vector_int4.hpp │ │ ├── vector_int4_precision.hpp │ │ ├── vector_relational.hpp │ │ ├── vector_relational.inl │ │ ├── vector_uint1.hpp │ │ ├── vector_uint1_precision.hpp │ │ ├── vector_uint2.hpp │ │ ├── vector_uint2_precision.hpp │ │ ├── vector_uint3.hpp │ │ ├── vector_uint3_precision.hpp │ │ ├── vector_uint4.hpp │ │ ├── vector_uint4_precision.hpp │ │ ├── vector_ulp.hpp │ │ └── vector_ulp.inl │ ├── fwd.hpp │ ├── geometric.hpp │ ├── glm.hpp │ ├── gtc │ │ ├── bitfield.hpp │ │ ├── bitfield.inl │ │ ├── color_space.hpp │ │ ├── color_space.inl │ │ ├── constants.hpp │ │ ├── constants.inl │ │ ├── epsilon.hpp │ │ ├── epsilon.inl │ │ ├── integer.hpp │ │ ├── integer.inl │ │ ├── matrix_access.hpp │ │ ├── matrix_access.inl │ │ ├── matrix_integer.hpp │ │ ├── matrix_inverse.hpp │ │ ├── matrix_inverse.inl │ │ ├── matrix_transform.hpp │ │ ├── matrix_transform.inl │ │ ├── noise.hpp │ │ ├── noise.inl │ │ ├── packing.hpp │ │ ├── packing.inl │ │ ├── quaternion.hpp │ │ ├── quaternion.inl │ │ ├── quaternion_simd.inl │ │ ├── random.hpp │ │ ├── random.inl │ │ ├── reciprocal.hpp │ │ ├── reciprocal.inl │ │ ├── round.hpp │ │ ├── round.inl │ │ ├── type_aligned.hpp │ │ ├── type_precision.hpp │ │ ├── type_precision.inl │ │ ├── type_ptr.hpp │ │ ├── type_ptr.inl │ │ ├── ulp.hpp │ │ ├── ulp.inl │ │ └── vec1.hpp │ ├── gtx │ │ ├── associated_min_max.hpp │ │ ├── associated_min_max.inl │ │ ├── bit.hpp │ │ ├── bit.inl │ │ ├── closest_point.hpp │ │ ├── closest_point.inl │ │ ├── color_encoding.hpp │ │ ├── color_encoding.inl │ │ ├── color_space.hpp │ │ ├── color_space.inl │ │ ├── color_space_YCoCg.hpp │ │ ├── color_space_YCoCg.inl │ │ ├── common.hpp │ │ ├── common.inl │ │ ├── compatibility.hpp │ │ ├── compatibility.inl │ │ ├── component_wise.hpp │ │ ├── component_wise.inl │ │ ├── dual_quaternion.hpp │ │ ├── dual_quaternion.inl │ │ ├── easing.hpp │ │ ├── easing.inl │ │ ├── euler_angles.hpp │ │ ├── euler_angles.inl │ │ ├── extend.hpp │ │ ├── extend.inl │ │ ├── extended_min_max.hpp │ │ ├── extended_min_max.inl │ │ ├── exterior_product.hpp │ │ ├── exterior_product.inl │ │ ├── fast_exponential.hpp │ │ ├── fast_exponential.inl │ │ ├── fast_square_root.hpp │ │ ├── fast_square_root.inl │ │ ├── fast_trigonometry.hpp │ │ ├── fast_trigonometry.inl │ │ ├── float_notmalize.inl │ │ ├── functions.hpp │ │ ├── functions.inl │ │ ├── gradient_paint.hpp │ │ ├── gradient_paint.inl │ │ ├── handed_coordinate_space.hpp │ │ ├── handed_coordinate_space.inl │ │ ├── hash.hpp │ │ ├── hash.inl │ │ ├── integer.hpp │ │ ├── integer.inl │ │ ├── intersect.hpp │ │ ├── intersect.inl │ │ ├── io.hpp │ │ ├── io.inl │ │ ├── log_base.hpp │ │ ├── log_base.inl │ │ ├── matrix_cross_product.hpp │ │ ├── matrix_cross_product.inl │ │ ├── matrix_decompose.hpp │ │ ├── matrix_decompose.inl │ │ ├── matrix_factorisation.hpp │ │ ├── matrix_factorisation.inl │ │ ├── matrix_interpolation.hpp │ │ ├── matrix_interpolation.inl │ │ ├── matrix_major_storage.hpp │ │ ├── matrix_major_storage.inl │ │ ├── matrix_operation.hpp │ │ ├── matrix_operation.inl │ │ ├── matrix_query.hpp │ │ ├── matrix_query.inl │ │ ├── matrix_transform_2d.hpp │ │ ├── matrix_transform_2d.inl │ │ ├── mixed_product.hpp │ │ ├── mixed_product.inl │ │ ├── norm.hpp │ │ ├── norm.inl │ │ ├── normal.hpp │ │ ├── normal.inl │ │ ├── normalize_dot.hpp │ │ ├── normalize_dot.inl │ │ ├── number_precision.hpp │ │ ├── number_precision.inl │ │ ├── optimum_pow.hpp │ │ ├── optimum_pow.inl │ │ ├── orthonormalize.hpp │ │ ├── orthonormalize.inl │ │ ├── perpendicular.hpp │ │ ├── perpendicular.inl │ │ ├── polar_coordinates.hpp │ │ ├── polar_coordinates.inl │ │ ├── projection.hpp │ │ ├── projection.inl │ │ ├── quaternion.hpp │ │ ├── quaternion.inl │ │ ├── range.hpp │ │ ├── raw_data.hpp │ │ ├── raw_data.inl │ │ ├── rotate_normalized_axis.hpp │ │ ├── rotate_normalized_axis.inl │ │ ├── rotate_vector.hpp │ │ ├── rotate_vector.inl │ │ ├── scalar_multiplication.hpp │ │ ├── scalar_relational.hpp │ │ ├── scalar_relational.inl │ │ ├── spline.hpp │ │ ├── spline.inl │ │ ├── std_based_type.hpp │ │ ├── std_based_type.inl │ │ ├── string_cast.hpp │ │ ├── string_cast.inl │ │ ├── texture.hpp │ │ ├── texture.inl │ │ ├── transform.hpp │ │ ├── transform.inl │ │ ├── transform2.hpp │ │ ├── transform2.inl │ │ ├── type_aligned.hpp │ │ ├── type_aligned.inl │ │ ├── type_trait.hpp │ │ ├── type_trait.inl │ │ ├── vec_swizzle.hpp │ │ ├── vector_angle.hpp │ │ ├── vector_angle.inl │ │ ├── vector_query.hpp │ │ ├── vector_query.inl │ │ ├── wrap.hpp │ │ └── wrap.inl │ ├── integer.hpp │ ├── mat2x2.hpp │ ├── mat2x3.hpp │ ├── mat2x4.hpp │ ├── mat3x2.hpp │ ├── mat3x3.hpp │ ├── mat3x4.hpp │ ├── mat4x2.hpp │ ├── mat4x3.hpp │ ├── mat4x4.hpp │ ├── matrix.hpp │ ├── packing.hpp │ ├── simd │ │ ├── common.h │ │ ├── exponential.h │ │ ├── geometric.h │ │ ├── integer.h │ │ ├── matrix.h │ │ ├── packing.h │ │ ├── platform.h │ │ ├── trigonometric.h │ │ └── vector_relational.h │ ├── trigonometric.hpp │ ├── vec2.hpp │ ├── vec3.hpp │ ├── vec4.hpp │ └── vector_relational.hpp ├── gperftools │ ├── .gitignore │ ├── .travis.yml │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── ChangeLog.old │ ├── INSTALL │ ├── MCELL_INFO.txt │ ├── Makefile.am │ ├── Makefile.in │ ├── NEWS │ ├── README │ ├── README_windows.txt │ ├── TODO │ ├── aclocal.m4 │ ├── autogen.sh │ ├── benchmark │ │ ├── binary_trees.cc │ │ ├── malloc_bench.cc │ │ ├── run_benchmark.c │ │ └── run_benchmark.h │ ├── config.guess │ ├── config.sub │ ├── configure │ ├── configure.ac │ ├── docs │ │ ├── cpuprofile-fileformat.html │ │ ├── cpuprofile.html │ │ ├── designstyle.css │ │ ├── heap-example1.png │ │ ├── heap_checker.html │ │ ├── heapprofile.html │ │ ├── index.html │ │ ├── overview.dot │ │ ├── overview.gif │ │ ├── pageheap.dot │ │ ├── pageheap.gif │ │ ├── pprof-test-big.gif │ │ ├── pprof-test.gif │ │ ├── pprof-vsnprintf-big.gif │ │ ├── pprof-vsnprintf.gif │ │ ├── pprof.1 │ │ ├── pprof.see_also │ │ ├── pprof_remote_servers.html │ │ ├── spanmap.dot │ │ ├── spanmap.gif │ │ ├── t-test1.times.txt │ │ ├── tcmalloc-opspercpusec.vs.threads.1024.bytes.png │ │ ├── tcmalloc-opspercpusec.vs.threads.128.bytes.png │ │ ├── tcmalloc-opspercpusec.vs.threads.131072.bytes.png │ │ ├── tcmalloc-opspercpusec.vs.threads.16384.bytes.png │ │ ├── tcmalloc-opspercpusec.vs.threads.2048.bytes.png │ │ ├── tcmalloc-opspercpusec.vs.threads.256.bytes.png │ │ ├── tcmalloc-opspercpusec.vs.threads.32768.bytes.png │ │ ├── tcmalloc-opspercpusec.vs.threads.4096.bytes.png │ │ ├── tcmalloc-opspercpusec.vs.threads.512.bytes.png │ │ ├── tcmalloc-opspercpusec.vs.threads.64.bytes.png │ │ ├── tcmalloc-opspercpusec.vs.threads.65536.bytes.png │ │ ├── tcmalloc-opspercpusec.vs.threads.8192.bytes.png │ │ ├── tcmalloc-opspersec.vs.size.1.threads.png │ │ ├── tcmalloc-opspersec.vs.size.12.threads.png │ │ ├── tcmalloc-opspersec.vs.size.16.threads.png │ │ ├── tcmalloc-opspersec.vs.size.2.threads.png │ │ ├── tcmalloc-opspersec.vs.size.20.threads.png │ │ ├── tcmalloc-opspersec.vs.size.3.threads.png │ │ ├── tcmalloc-opspersec.vs.size.4.threads.png │ │ ├── tcmalloc-opspersec.vs.size.5.threads.png │ │ ├── tcmalloc-opspersec.vs.size.8.threads.png │ │ ├── tcmalloc.html │ │ ├── threadheap.dot │ │ └── threadheap.gif │ ├── gperftools.sln │ ├── install-sh │ ├── ltmain.sh │ ├── m4 │ │ ├── ac_have_attribute.m4 │ │ ├── acx_nanosleep.m4 │ │ ├── acx_pthread.m4 │ │ ├── ax_cxx_compile_stdcxx.m4 │ │ ├── ax_generate_changelog.m4 │ │ ├── compiler_characteristics.m4 │ │ ├── install_prefix.m4 │ │ ├── libtool.m4 │ │ ├── ltoptions.m4 │ │ ├── ltsugar.m4 │ │ ├── ltversion.m4 │ │ ├── lt~obsolete.m4 │ │ ├── namespaces.m4 │ │ ├── pc_from_ucontext.m4 │ │ ├── program_invocation_name.m4 │ │ └── stl_namespace.m4 │ ├── missing │ ├── packages │ │ ├── deb.sh │ │ ├── deb │ │ │ ├── README │ │ │ ├── changelog │ │ │ ├── compat │ │ │ ├── control │ │ │ ├── copyright │ │ │ ├── docs │ │ │ ├── libgperftools-dev.dirs │ │ │ ├── libgperftools-dev.install │ │ │ ├── libgperftools0.dirs │ │ │ ├── libgperftools0.install │ │ │ ├── libgperftools0.manpages │ │ │ └── rules │ │ ├── rpm.sh │ │ └── rpm │ │ │ └── rpm.spec │ ├── src │ │ ├── addressmap-inl.h │ │ ├── base │ │ │ ├── arm_instruction_set_select.h │ │ │ ├── atomicops-internals-arm-generic.h │ │ │ ├── atomicops-internals-arm-v6plus.h │ │ │ ├── atomicops-internals-gcc.h │ │ │ ├── atomicops-internals-linuxppc.h │ │ │ ├── atomicops-internals-macosx.h │ │ │ ├── atomicops-internals-mips.h │ │ │ ├── atomicops-internals-windows.h │ │ │ ├── atomicops-internals-x86.cc │ │ │ ├── atomicops-internals-x86.h │ │ │ ├── atomicops.h │ │ │ ├── basictypes.h │ │ │ ├── commandlineflags.h │ │ │ ├── dynamic_annotations.c │ │ │ ├── dynamic_annotations.h │ │ │ ├── elf_mem_image.cc │ │ │ ├── elf_mem_image.h │ │ │ ├── elfcore.h │ │ │ ├── googleinit.h │ │ │ ├── linux_syscall_support.h │ │ │ ├── linuxthreads.cc │ │ │ ├── linuxthreads.h │ │ │ ├── logging.cc │ │ │ ├── logging.h │ │ │ ├── low_level_alloc.cc │ │ │ ├── low_level_alloc.h │ │ │ ├── simple_mutex.h │ │ │ ├── spinlock.cc │ │ │ ├── spinlock.h │ │ │ ├── spinlock_internal.cc │ │ │ ├── spinlock_internal.h │ │ │ ├── spinlock_linux-inl.h │ │ │ ├── spinlock_posix-inl.h │ │ │ ├── spinlock_win32-inl.h │ │ │ ├── stl_allocator.h │ │ │ ├── sysinfo.cc │ │ │ ├── sysinfo.h │ │ │ ├── thread_annotations.h │ │ │ ├── thread_lister.c │ │ │ ├── thread_lister.h │ │ │ ├── vdso_support.cc │ │ │ └── vdso_support.h │ │ ├── central_freelist.cc │ │ ├── central_freelist.h │ │ ├── common.cc │ │ ├── common.h │ │ ├── config.h.in │ │ ├── config_for_unittests.h │ │ ├── debugallocation.cc │ │ ├── emergency_malloc.cc │ │ ├── emergency_malloc.h │ │ ├── emergency_malloc_for_stacktrace.cc │ │ ├── fake_stacktrace_scope.cc │ │ ├── getenv_safe.h │ │ ├── getpc.h │ │ ├── google │ │ │ ├── heap-checker.h │ │ │ ├── heap-profiler.h │ │ │ ├── malloc_extension.h │ │ │ ├── malloc_extension_c.h │ │ │ ├── malloc_hook.h │ │ │ ├── malloc_hook_c.h │ │ │ ├── profiler.h │ │ │ ├── stacktrace.h │ │ │ └── tcmalloc.h │ │ ├── gperftools │ │ │ ├── heap-checker.h │ │ │ ├── heap-profiler.h │ │ │ ├── malloc_extension.h │ │ │ ├── malloc_extension_c.h │ │ │ ├── malloc_hook.h │ │ │ ├── malloc_hook_c.h │ │ │ ├── nallocx.h │ │ │ ├── profiler.h │ │ │ ├── stacktrace.h │ │ │ └── tcmalloc.h.in │ │ ├── heap-checker-bcad.cc │ │ ├── heap-checker.cc │ │ ├── heap-profile-stats.h │ │ ├── heap-profile-table.cc │ │ ├── heap-profile-table.h │ │ ├── heap-profiler.cc │ │ ├── internal_logging.cc │ │ ├── internal_logging.h │ │ ├── libc_override.h │ │ ├── libc_override_gcc_and_weak.h │ │ ├── libc_override_glibc.h │ │ ├── libc_override_osx.h │ │ ├── libc_override_redefine.h │ │ ├── linked_list.h │ │ ├── malloc_extension.cc │ │ ├── malloc_hook-inl.h │ │ ├── malloc_hook.cc │ │ ├── malloc_hook_mmap_freebsd.h │ │ ├── malloc_hook_mmap_linux.h │ │ ├── maybe_emergency_malloc.h │ │ ├── maybe_threads.cc │ │ ├── maybe_threads.h │ │ ├── memfs_malloc.cc │ │ ├── memory_region_map.cc │ │ ├── memory_region_map.h │ │ ├── packed-cache-inl.h │ │ ├── page_heap.cc │ │ ├── page_heap.h │ │ ├── page_heap_allocator.h │ │ ├── pagemap.h │ │ ├── pprof │ │ ├── profile-handler.cc │ │ ├── profile-handler.h │ │ ├── profiledata.cc │ │ ├── profiledata.h │ │ ├── profiler.cc │ │ ├── raw_printer.cc │ │ ├── raw_printer.h │ │ ├── sampler.cc │ │ ├── sampler.h │ │ ├── solaris │ │ │ └── libstdc++.la │ │ ├── span.cc │ │ ├── span.h │ │ ├── stack_trace_table.cc │ │ ├── stack_trace_table.h │ │ ├── stacktrace.cc │ │ ├── stacktrace_arm-inl.h │ │ ├── stacktrace_generic-inl.h │ │ ├── stacktrace_impl_setup-inl.h │ │ ├── stacktrace_instrument-inl.h │ │ ├── stacktrace_libgcc-inl.h │ │ ├── stacktrace_libunwind-inl.h │ │ ├── stacktrace_powerpc-darwin-inl.h │ │ ├── stacktrace_powerpc-inl.h │ │ ├── stacktrace_powerpc-linux-inl.h │ │ ├── stacktrace_win32-inl.h │ │ ├── stacktrace_x86-inl.h │ │ ├── static_vars.cc │ │ ├── static_vars.h │ │ ├── symbolize.cc │ │ ├── symbolize.h │ │ ├── system-alloc.cc │ │ ├── system-alloc.h │ │ ├── tcmalloc.cc │ │ ├── tcmalloc.h │ │ ├── tcmalloc_guard.h │ │ ├── tests │ │ │ ├── addressmap_unittest.cc │ │ │ ├── atomicops_unittest.cc │ │ │ ├── current_allocated_bytes_test.cc │ │ │ ├── debugallocation_test.cc │ │ │ ├── debugallocation_test.sh │ │ │ ├── frag_unittest.cc │ │ │ ├── getpc_test.cc │ │ │ ├── heap-checker-death_unittest.sh │ │ │ ├── heap-checker_unittest.cc │ │ │ ├── heap-checker_unittest.sh │ │ │ ├── heap-profiler_unittest.cc │ │ │ ├── heap-profiler_unittest.sh │ │ │ ├── large_heap_fragmentation_unittest.cc │ │ │ ├── low_level_alloc_unittest.cc │ │ │ ├── malloc_extension_c_test.c │ │ │ ├── malloc_extension_test.cc │ │ │ ├── malloc_hook_test.cc │ │ │ ├── markidle_unittest.cc │ │ │ ├── maybe_threads_unittest.sh │ │ │ ├── memalign_unittest.cc │ │ │ ├── packed-cache_test.cc │ │ │ ├── page_heap_test.cc │ │ │ ├── pagemap_unittest.cc │ │ │ ├── profile-handler_unittest.cc │ │ │ ├── profiledata_unittest.cc │ │ │ ├── profiler_unittest.cc │ │ │ ├── profiler_unittest.sh │ │ │ ├── raw_printer_test.cc │ │ │ ├── realloc_unittest.cc │ │ │ ├── sampler_test.cc │ │ │ ├── sampling_test.cc │ │ │ ├── sampling_test.sh │ │ │ ├── simple_compat_test.cc │ │ │ ├── stack_trace_table_test.cc │ │ │ ├── stacktrace_unittest.cc │ │ │ ├── system-alloc_unittest.cc │ │ │ ├── tcmalloc_large_unittest.cc │ │ │ ├── tcmalloc_unittest.cc │ │ │ ├── tcmalloc_unittest.sh │ │ │ ├── testutil.cc │ │ │ ├── testutil.h │ │ │ └── thread_dealloc_unittest.cc │ │ ├── third_party │ │ │ └── valgrind.h │ │ ├── thread_cache.cc │ │ ├── thread_cache.h │ │ └── windows │ │ │ ├── TODO │ │ │ ├── addr2line-pdb.c │ │ │ ├── auto_testing_hook.h │ │ │ ├── config.h │ │ │ ├── get_mangled_names.cc │ │ │ ├── google │ │ │ └── tcmalloc.h │ │ │ ├── gperftools │ │ │ ├── tcmalloc.h │ │ │ └── tcmalloc.h.in │ │ │ ├── ia32_modrm_map.cc │ │ │ ├── ia32_opcode_map.cc │ │ │ ├── mingw.h │ │ │ ├── mini_disassembler.cc │ │ │ ├── mini_disassembler.h │ │ │ ├── mini_disassembler_types.h │ │ │ ├── nm-pdb.c │ │ │ ├── override_functions.cc │ │ │ ├── patch_functions.cc │ │ │ ├── port.cc │ │ │ ├── port.h │ │ │ ├── preamble_patcher.cc │ │ │ ├── preamble_patcher.h │ │ │ ├── preamble_patcher_test.cc │ │ │ ├── preamble_patcher_with_stub.cc │ │ │ ├── shortproc.asm │ │ │ └── system-alloc.cc │ ├── test-driver │ └── vsprojects │ │ ├── addr2line-pdb │ │ ├── addr2line-pdb.vcxproj │ │ └── addr2line-pdb.vcxproj.filters │ │ ├── addressmap_unittest │ │ ├── addressmap_unittest.vcxproj │ │ └── addressmap_unittest.vcxproj.filters │ │ ├── current_allocated_bytes_test │ │ ├── current_allocated_bytes_test.vcxproj │ │ └── current_allocated_bytes_test.vcxproj.filters │ │ ├── frag_unittest │ │ ├── frag_unittest.vcxproj │ │ └── frag_unittest.vcxproj.filters │ │ ├── libtcmalloc_minimal │ │ ├── libtcmalloc_minimal.vcxproj │ │ └── libtcmalloc_minimal.vcxproj.filters │ │ ├── low_level_alloc_unittest │ │ ├── low_level_alloc_unittest.vcxproj │ │ └── low_level_alloc_unittest.vcxproj.filters │ │ ├── malloc_extension_test │ │ ├── malloc_extension_test.vcxproj │ │ └── malloc_extension_test.vcxproj.filters │ │ ├── malloc_hook_test │ │ ├── malloc_hook_test.vcxproj │ │ └── malloc_hook_test.vcxproj.filters │ │ ├── markidle_unittest │ │ ├── markidle_unittest.vcxproj │ │ └── markidle_unittest.vcxproj.filters │ │ ├── nm-pdb │ │ ├── nm-pdb.vcxproj │ │ └── nm-pdb.vcxproj.filters │ │ ├── packed-cache_test │ │ ├── packed-cache_test.vcxproj │ │ └── packed-cache_test.vcxproj.filters │ │ ├── page_heap_test │ │ ├── page_heap_test.vcxproj │ │ └── page_heap_test.vcxproj.filters │ │ ├── pagemap_unittest │ │ ├── pagemap_unittest.vcxproj │ │ └── pagemap_unittest.vcxproj.filters │ │ ├── preamble_patcher_test │ │ ├── preamble_patcher_test.vcxproj │ │ └── preamble_patcher_test.vcxproj.filters │ │ ├── realloc_unittest │ │ ├── realloc_unittest.vcxproj │ │ └── realloc_unittest.vcxproj.filters │ │ ├── sampler_test │ │ ├── sampler_test.vcxproj │ │ └── sampler_test.vcxproj.filters │ │ ├── stack_trace_table_test │ │ ├── stack_trace_table_test.vcxproj │ │ └── stack_trace_table_test.vcxproj.filters │ │ ├── system-alloc_unittest │ │ ├── system-alloc_unittest.vcxproj │ │ └── system-alloc_unittest.vcxproj.filters │ │ ├── tcmalloc_minimal_large │ │ ├── tcmalloc_minimal_large_unittest.vcxproj │ │ └── tcmalloc_minimal_large_unittest.vcxproj.filters │ │ ├── tcmalloc_minimal_unittest │ │ ├── tcmalloc_minimal_unittest.vcxproj │ │ └── tcmalloc_minimal_unittest.vcxproj.filters │ │ └── thread_dealloc_unittest │ │ ├── thread_dealloc_unittest.vcxproj │ │ └── thread_dealloc_unittest.vcxproj.filters ├── jsoncpp │ ├── .clang-format │ ├── .clang-tidy │ ├── .gitattributes │ ├── .github │ │ └── ISSUE_TEMPLATE │ │ │ ├── bug_report.md │ │ │ └── feature_request.md │ ├── .gitignore │ ├── .travis.yml │ ├── .travis_scripts │ │ ├── cmake_builder.sh │ │ ├── meson_builder.sh │ │ ├── run-clang-format.py │ │ ├── run-clang-format.sh │ │ ├── travis.before_install.linux.sh │ │ ├── travis.before_install.osx.sh │ │ ├── travis.install.linux.sh │ │ └── travis.install.osx.sh │ ├── AUTHORS │ ├── CMakeLists.txt │ ├── CONTRIBUTING.md │ ├── LICENSE │ ├── MCELL_INFO.txt │ ├── README.md │ ├── amalgamate.py │ ├── appveyor.yml │ ├── dev.makefile │ ├── devtools │ │ ├── __init__.py │ │ ├── agent_vmw7.json │ │ ├── agent_vmxp.json │ │ ├── antglob.py │ │ ├── batchbuild.py │ │ ├── fixeol.py │ │ ├── licenseupdater.py │ │ └── tarball.py │ ├── doc │ │ ├── doxyfile.in │ │ ├── footer.html │ │ ├── header.html │ │ ├── jsoncpp.dox │ │ ├── readme.txt │ │ ├── roadmap.dox │ │ └── web_doxyfile.in │ ├── doxybuild.py │ ├── example │ │ ├── CMakeLists.txt │ │ ├── README.md │ │ ├── readFromStream │ │ │ ├── errorFormat.json │ │ │ ├── readFromStream.cpp │ │ │ └── withComment.json │ │ ├── readFromString │ │ │ └── readFromString.cpp │ │ ├── streamWrite │ │ │ └── streamWrite.cpp │ │ └── stringWrite │ │ │ └── stringWrite.cpp │ ├── include │ │ ├── CMakeLists.txt │ │ └── json │ │ │ ├── allocator.h │ │ │ ├── assertions.h │ │ │ ├── config.h │ │ │ ├── forwards.h │ │ │ ├── json.h │ │ │ ├── json_features.h │ │ │ ├── reader.h │ │ │ ├── value.h │ │ │ ├── version.h │ │ │ └── writer.h │ ├── meson.build │ ├── meson_options.txt │ ├── pkg-config │ │ └── jsoncpp.pc.in │ ├── src │ │ ├── CMakeLists.txt │ │ ├── jsontestrunner │ │ │ ├── CMakeLists.txt │ │ │ └── main.cpp │ │ ├── lib_json │ │ │ ├── CMakeLists.txt │ │ │ ├── json_reader.cpp │ │ │ ├── json_tool.h │ │ │ ├── json_value.cpp │ │ │ ├── json_valueiterator.inl │ │ │ └── json_writer.cpp │ │ └── test_lib_json │ │ │ ├── CMakeLists.txt │ │ │ ├── fuzz.cpp │ │ │ ├── fuzz.dict │ │ │ ├── fuzz.h │ │ │ ├── jsontest.cpp │ │ │ ├── jsontest.h │ │ │ └── main.cpp │ ├── test │ │ ├── cleantests.py │ │ ├── data │ │ │ ├── fail_test_array_01.json │ │ │ ├── fail_test_array_02.json │ │ │ ├── fail_test_object_01.json │ │ │ ├── fail_test_stack_limit.json │ │ │ ├── legacy_test_array_01.expected │ │ │ ├── legacy_test_array_01.json │ │ │ ├── legacy_test_array_02.expected │ │ │ ├── legacy_test_array_02.json │ │ │ ├── legacy_test_array_03.expected │ │ │ ├── legacy_test_array_03.json │ │ │ ├── legacy_test_array_04.expected │ │ │ ├── legacy_test_array_04.json │ │ │ ├── legacy_test_array_05.expected │ │ │ ├── legacy_test_array_05.json │ │ │ ├── legacy_test_array_06.expected │ │ │ ├── legacy_test_array_06.json │ │ │ ├── legacy_test_array_07.expected │ │ │ ├── legacy_test_array_07.json │ │ │ ├── legacy_test_basic_01.expected │ │ │ ├── legacy_test_basic_01.json │ │ │ ├── legacy_test_basic_02.expected │ │ │ ├── legacy_test_basic_02.json │ │ │ ├── legacy_test_basic_03.expected │ │ │ ├── legacy_test_basic_03.json │ │ │ ├── legacy_test_basic_04.expected │ │ │ ├── legacy_test_basic_04.json │ │ │ ├── legacy_test_basic_05.expected │ │ │ ├── legacy_test_basic_05.json │ │ │ ├── legacy_test_basic_06.expected │ │ │ ├── legacy_test_basic_06.json │ │ │ ├── legacy_test_basic_07.expected │ │ │ ├── legacy_test_basic_07.json │ │ │ ├── legacy_test_basic_08.expected │ │ │ ├── legacy_test_basic_08.json │ │ │ ├── legacy_test_basic_09.expected │ │ │ ├── legacy_test_basic_09.json │ │ │ ├── legacy_test_comment_00.expected │ │ │ ├── legacy_test_comment_00.json │ │ │ ├── legacy_test_comment_01.expected │ │ │ ├── legacy_test_comment_01.json │ │ │ ├── legacy_test_comment_02.expected │ │ │ ├── legacy_test_comment_02.json │ │ │ ├── legacy_test_complex_01.expected │ │ │ ├── legacy_test_complex_01.json │ │ │ ├── legacy_test_integer_01.expected │ │ │ ├── legacy_test_integer_01.json │ │ │ ├── legacy_test_integer_02.expected │ │ │ ├── legacy_test_integer_02.json │ │ │ ├── legacy_test_integer_03.expected │ │ │ ├── legacy_test_integer_03.json │ │ │ ├── legacy_test_integer_04.expected │ │ │ ├── legacy_test_integer_04.json │ │ │ ├── legacy_test_integer_05.expected │ │ │ ├── legacy_test_integer_05.json │ │ │ ├── legacy_test_integer_06_64bits.expected │ │ │ ├── legacy_test_integer_06_64bits.json │ │ │ ├── legacy_test_integer_07_64bits.expected │ │ │ ├── legacy_test_integer_07_64bits.json │ │ │ ├── legacy_test_integer_08_64bits.expected │ │ │ ├── legacy_test_integer_08_64bits.json │ │ │ ├── legacy_test_large_01.expected │ │ │ ├── legacy_test_large_01.json │ │ │ ├── legacy_test_object_01.expected │ │ │ ├── legacy_test_object_01.json │ │ │ ├── legacy_test_object_02.expected │ │ │ ├── legacy_test_object_02.json │ │ │ ├── legacy_test_object_03.expected │ │ │ ├── legacy_test_object_03.json │ │ │ ├── legacy_test_object_04.expected │ │ │ ├── legacy_test_object_04.json │ │ │ ├── legacy_test_preserve_comment_01.expected │ │ │ ├── legacy_test_preserve_comment_01.json │ │ │ ├── legacy_test_real_01.expected │ │ │ ├── legacy_test_real_01.json │ │ │ ├── legacy_test_real_02.expected │ │ │ ├── legacy_test_real_02.json │ │ │ ├── legacy_test_real_03.expected │ │ │ ├── legacy_test_real_03.json │ │ │ ├── legacy_test_real_04.expected │ │ │ ├── legacy_test_real_04.json │ │ │ ├── legacy_test_real_05.expected │ │ │ ├── legacy_test_real_05.json │ │ │ ├── legacy_test_real_06.expected │ │ │ ├── legacy_test_real_06.json │ │ │ ├── legacy_test_real_07.expected │ │ │ ├── legacy_test_real_07.json │ │ │ ├── legacy_test_real_08.expected │ │ │ ├── legacy_test_real_08.json │ │ │ ├── legacy_test_real_09.expected │ │ │ ├── legacy_test_real_09.json │ │ │ ├── legacy_test_real_10.expected │ │ │ ├── legacy_test_real_10.json │ │ │ ├── legacy_test_real_11.expected │ │ │ ├── legacy_test_real_11.json │ │ │ ├── legacy_test_real_12.expected │ │ │ ├── legacy_test_real_12.json │ │ │ ├── legacy_test_string_01.expected │ │ │ ├── legacy_test_string_01.json │ │ │ ├── legacy_test_string_02.expected │ │ │ ├── legacy_test_string_02.json │ │ │ ├── legacy_test_string_03.expected │ │ │ ├── legacy_test_string_03.json │ │ │ ├── legacy_test_string_04.expected │ │ │ ├── legacy_test_string_04.json │ │ │ ├── legacy_test_string_05.expected │ │ │ ├── legacy_test_string_05.json │ │ │ ├── legacy_test_string_unicode_01.expected │ │ │ ├── legacy_test_string_unicode_01.json │ │ │ ├── legacy_test_string_unicode_02.expected │ │ │ ├── legacy_test_string_unicode_02.json │ │ │ ├── legacy_test_string_unicode_03.expected │ │ │ ├── legacy_test_string_unicode_03.json │ │ │ ├── legacy_test_string_unicode_04.expected │ │ │ ├── legacy_test_string_unicode_04.json │ │ │ ├── legacy_test_string_unicode_05.expected │ │ │ ├── legacy_test_string_unicode_05.json │ │ │ ├── test_array_08.expected │ │ │ ├── test_array_08.json │ │ │ ├── test_object_05.expected │ │ │ └── test_object_05.json │ │ ├── generate_expected.py │ │ ├── jsonchecker │ │ │ ├── fail1.json │ │ │ ├── fail10.json │ │ │ ├── fail11.json │ │ │ ├── fail12.json │ │ │ ├── fail13.json │ │ │ ├── fail14.json │ │ │ ├── fail15.json │ │ │ ├── fail16.json │ │ │ ├── fail17.json │ │ │ ├── fail18.json │ │ │ ├── fail19.json │ │ │ ├── fail2.json │ │ │ ├── fail20.json │ │ │ ├── fail21.json │ │ │ ├── fail22.json │ │ │ ├── fail23.json │ │ │ ├── fail24.json │ │ │ ├── fail25.json │ │ │ ├── fail26.json │ │ │ ├── fail27.json │ │ │ ├── fail28.json │ │ │ ├── fail29.json │ │ │ ├── fail3.json │ │ │ ├── fail30.json │ │ │ ├── fail31.json │ │ │ ├── fail32.json │ │ │ ├── fail33.json │ │ │ ├── fail4.json │ │ │ ├── fail5.json │ │ │ ├── fail6.json │ │ │ ├── fail7.json │ │ │ ├── fail8.json │ │ │ ├── fail9.json │ │ │ ├── pass1.json │ │ │ ├── pass2.json │ │ │ ├── pass3.json │ │ │ └── readme.txt │ │ ├── pyjsontestrunner.py │ │ ├── runjsontests.py │ │ └── rununittests.py │ └── version.in ├── pybind11 │ ├── .appveyor.yml │ ├── .clang-format │ ├── .clang-tidy │ ├── .cmake-format.yaml │ ├── .github │ │ ├── CODEOWNERS │ │ ├── CONTRIBUTING.md │ │ ├── ISSUE_TEMPLATE │ │ │ ├── bug-report.yml │ │ │ └── config.yml │ │ ├── dependabot.yml │ │ ├── labeler.yml │ │ ├── labeler_merged.yml │ │ ├── pull_request_template.md │ │ └── workflows │ │ │ ├── ci.yml │ │ │ ├── configure.yml │ │ │ ├── format.yml │ │ │ ├── labeler.yml │ │ │ ├── pip.yml │ │ │ └── upstream.yml │ ├── .gitignore │ ├── .pre-commit-config.yaml │ ├── .readthedocs.yml │ ├── CMakeLists.txt │ ├── LICENSE │ ├── MANIFEST.in │ ├── README.rst │ ├── docs │ │ ├── Doxyfile │ │ ├── Makefile │ │ ├── _static │ │ │ └── theme_overrides.css │ │ ├── advanced │ │ │ ├── cast │ │ │ │ ├── chrono.rst │ │ │ │ ├── custom.rst │ │ │ │ ├── eigen.rst │ │ │ │ ├── functional.rst │ │ │ │ ├── index.rst │ │ │ │ ├── overview.rst │ │ │ │ ├── stl.rst │ │ │ │ └── strings.rst │ │ │ ├── classes.rst │ │ │ ├── embedding.rst │ │ │ ├── exceptions.rst │ │ │ ├── functions.rst │ │ │ ├── misc.rst │ │ │ ├── pycpp │ │ │ │ ├── index.rst │ │ │ │ ├── numpy.rst │ │ │ │ ├── object.rst │ │ │ │ └── utilities.rst │ │ │ └── smart_ptrs.rst │ │ ├── basics.rst │ │ ├── benchmark.py │ │ ├── benchmark.rst │ │ ├── changelog.rst │ │ ├── classes.rst │ │ ├── cmake │ │ │ └── index.rst │ │ ├── compiling.rst │ │ ├── conf.py │ │ ├── faq.rst │ │ ├── index.rst │ │ ├── installing.rst │ │ ├── limitations.rst │ │ ├── pybind11-logo.png │ │ ├── pybind11_vs_boost_python1.png │ │ ├── pybind11_vs_boost_python1.svg │ │ ├── pybind11_vs_boost_python2.png │ │ ├── pybind11_vs_boost_python2.svg │ │ ├── reference.rst │ │ ├── release.rst │ │ ├── requirements.txt │ │ └── upgrade.rst │ ├── include │ │ └── pybind11 │ │ │ ├── attr.h │ │ │ ├── buffer_info.h │ │ │ ├── cast.h │ │ │ ├── chrono.h │ │ │ ├── common.h │ │ │ ├── complex.h │ │ │ ├── detail │ │ │ ├── class.h │ │ │ ├── common.h │ │ │ ├── descr.h │ │ │ ├── init.h │ │ │ ├── internals.h │ │ │ ├── type_caster_base.h │ │ │ └── typeid.h │ │ │ ├── eigen.h │ │ │ ├── embed.h │ │ │ ├── eval.h │ │ │ ├── functional.h │ │ │ ├── gil.h │ │ │ ├── iostream.h │ │ │ ├── numpy.h │ │ │ ├── operators.h │ │ │ ├── options.h │ │ │ ├── pybind11.h │ │ │ ├── pytypes.h │ │ │ ├── stl.h │ │ │ ├── stl │ │ │ └── filesystem.h │ │ │ └── stl_bind.h │ ├── noxfile.py │ ├── pybind11 │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── _version.py │ │ ├── _version.pyi │ │ ├── commands.py │ │ ├── py.typed │ │ ├── setup_helpers.py │ │ └── setup_helpers.pyi │ ├── pyproject.toml │ ├── setup.cfg │ ├── setup.py │ ├── tests │ │ ├── CMakeLists.txt │ │ ├── conftest.py │ │ ├── constructor_stats.h │ │ ├── cross_module_gil_utils.cpp │ │ ├── env.py │ │ ├── extra_python_package │ │ │ ├── pytest.ini │ │ │ └── test_files.py │ │ ├── extra_setuptools │ │ │ ├── pytest.ini │ │ │ └── test_setuphelper.py │ │ ├── local_bindings.h │ │ ├── object.h │ │ ├── pybind11_cross_module_tests.cpp │ │ ├── pybind11_tests.cpp │ │ ├── pybind11_tests.h │ │ ├── pytest.ini │ │ ├── requirements.txt │ │ ├── test_async.cpp │ │ ├── test_async.py │ │ ├── test_buffers.cpp │ │ ├── test_buffers.py │ │ ├── test_builtin_casters.cpp │ │ ├── test_builtin_casters.py │ │ ├── test_call_policies.cpp │ │ ├── test_call_policies.py │ │ ├── test_callbacks.cpp │ │ ├── test_callbacks.py │ │ ├── test_chrono.cpp │ │ ├── test_chrono.py │ │ ├── test_class.cpp │ │ ├── test_class.py │ │ ├── test_cmake_build │ │ │ ├── CMakeLists.txt │ │ │ ├── embed.cpp │ │ │ ├── installed_embed │ │ │ │ └── CMakeLists.txt │ │ │ ├── installed_function │ │ │ │ └── CMakeLists.txt │ │ │ ├── installed_target │ │ │ │ └── CMakeLists.txt │ │ │ ├── main.cpp │ │ │ ├── subdirectory_embed │ │ │ │ └── CMakeLists.txt │ │ │ ├── subdirectory_function │ │ │ │ └── CMakeLists.txt │ │ │ ├── subdirectory_target │ │ │ │ └── CMakeLists.txt │ │ │ └── test.py │ │ ├── test_const_name.cpp │ │ ├── test_const_name.py │ │ ├── test_constants_and_functions.cpp │ │ ├── test_constants_and_functions.py │ │ ├── test_copy_move.cpp │ │ ├── test_copy_move.py │ │ ├── test_custom_type_casters.cpp │ │ ├── test_custom_type_casters.py │ │ ├── test_custom_type_setup.cpp │ │ ├── test_custom_type_setup.py │ │ ├── test_docstring_options.cpp │ │ ├── test_docstring_options.py │ │ ├── test_eigen.cpp │ │ ├── test_eigen.py │ │ ├── test_embed │ │ │ ├── CMakeLists.txt │ │ │ ├── catch.cpp │ │ │ ├── external_module.cpp │ │ │ ├── test_interpreter.cpp │ │ │ ├── test_interpreter.py │ │ │ └── test_trampoline.py │ │ ├── test_enum.cpp │ │ ├── test_enum.py │ │ ├── test_eval.cpp │ │ ├── test_eval.py │ │ ├── test_eval_call.py │ │ ├── test_exceptions.cpp │ │ ├── test_exceptions.h │ │ ├── test_exceptions.py │ │ ├── test_factory_constructors.cpp │ │ ├── test_factory_constructors.py │ │ ├── test_gil_scoped.cpp │ │ ├── test_gil_scoped.py │ │ ├── test_iostream.cpp │ │ ├── test_iostream.py │ │ ├── test_kwargs_and_defaults.cpp │ │ ├── test_kwargs_and_defaults.py │ │ ├── test_local_bindings.cpp │ │ ├── test_local_bindings.py │ │ ├── test_methods_and_attributes.cpp │ │ ├── test_methods_and_attributes.py │ │ ├── test_modules.cpp │ │ ├── test_modules.py │ │ ├── test_multiple_inheritance.cpp │ │ ├── test_multiple_inheritance.py │ │ ├── test_numpy_array.cpp │ │ ├── test_numpy_array.py │ │ ├── test_numpy_dtypes.cpp │ │ ├── test_numpy_dtypes.py │ │ ├── test_numpy_vectorize.cpp │ │ ├── test_numpy_vectorize.py │ │ ├── test_opaque_types.cpp │ │ ├── test_opaque_types.py │ │ ├── test_operator_overloading.cpp │ │ ├── test_operator_overloading.py │ │ ├── test_pickling.cpp │ │ ├── test_pickling.py │ │ ├── test_pytypes.cpp │ │ ├── test_pytypes.py │ │ ├── test_sequences_and_iterators.cpp │ │ ├── test_sequences_and_iterators.py │ │ ├── test_smart_ptr.cpp │ │ ├── test_smart_ptr.py │ │ ├── test_stl.cpp │ │ ├── test_stl.py │ │ ├── test_stl_binders.cpp │ │ ├── test_stl_binders.py │ │ ├── test_tagbased_polymorphic.cpp │ │ ├── test_tagbased_polymorphic.py │ │ ├── test_thread.cpp │ │ ├── test_thread.py │ │ ├── test_union.cpp │ │ ├── test_union.py │ │ ├── test_virtual_functions.cpp │ │ ├── test_virtual_functions.py │ │ ├── valgrind-numpy-scipy.supp │ │ └── valgrind-python.supp │ └── tools │ │ ├── FindCatch.cmake │ │ ├── FindEigen3.cmake │ │ ├── FindPythonLibsNew.cmake │ │ ├── check-style.sh │ │ ├── cmake_uninstall.cmake.in │ │ ├── libsize.py │ │ ├── make_changelog.py │ │ ├── pybind11Common.cmake │ │ ├── pybind11Config.cmake.in │ │ ├── pybind11NewTools.cmake │ │ ├── pybind11Tools.cmake │ │ ├── pyproject.toml │ │ ├── setup_global.py.in │ │ └── setup_main.py.in └── win_getopt │ ├── MCELL_INFO.txt │ └── win_getopt.h ├── src ├── COPYING ├── DGMakefile ├── INSTALL ├── Makefile.am ├── README ├── argparse.c ├── argparse.h ├── bng_util.cpp ├── bng_util.h ├── c_vector.cpp ├── c_vector.h ├── chkpt.c ├── chkpt.h ├── config-nix.h ├── config-win.h ├── count_util.c ├── count_util.h ├── data_model_import.py ├── diffuse.c ├── diffuse.h ├── diffuse_trimol.c ├── diffuse_util.c ├── diffuse_util.h ├── dump_state.cpp ├── dyngeom.c ├── dyngeom.h ├── dyngeom_lex.l ├── dyngeom_parse.y ├── dyngeom_parse_extras.c ├── dyngeom_parse_extras.h ├── dyngeom_yacc.h ├── edge_util.c ├── edge_util.h ├── grid_util.c ├── grid_util.h ├── init.c ├── init.h ├── isaac64.c ├── isaac64.h ├── libmcell_test.c ├── logging.c ├── logging.h ├── map_c.cpp ├── map_c.h ├── mcell.c ├── mcell_dyngeom.c ├── mcell_dyngeom.h ├── mcell_dyngeom.i ├── mcell_init.c ├── mcell_init.h ├── mcell_init.i ├── mcell_misc.c ├── mcell_misc.h ├── mcell_misc.i ├── mcell_objects.c ├── mcell_objects.h ├── mcell_objects.i ├── mcell_react_out.c ├── mcell_react_out.h ├── mcell_react_out.i ├── mcell_reactions.c ├── mcell_reactions.h ├── mcell_reactions.i ├── mcell_release.c ├── mcell_release.h ├── mcell_release.i ├── mcell_run.c ├── mcell_run.h ├── mcell_run.i ├── mcell_species.c ├── mcell_species.h ├── mcell_species.i ├── mcell_structs.h ├── mcell_structs.i ├── mcell_structs_shared.h ├── mcell_surfclass.c ├── mcell_surfclass.h ├── mcell_surfclass.i ├── mcell_viz.c ├── mcell_viz.h ├── mcell_viz.i ├── mdllex.l ├── mdlparse.y ├── mdlparse_aux.h ├── mdlparse_util.c ├── mdlparse_util.h ├── mem_util.c ├── mem_util.h ├── minrng.c ├── minrng.h ├── nfsim_func.c ├── nfsim_func.h ├── pymcell.i ├── pymcell_helpers.py ├── pymcell_unittests.py ├── react.h ├── react_cond.c ├── react_nfsim.h ├── react_outc.c ├── react_outc_nfsim.c ├── react_outc_trimol.c ├── react_output.c ├── react_output.h ├── react_trig.c ├── react_trig_nfsim.c ├── react_util.c ├── react_util.h ├── react_util_nfsim.c ├── rng.c ├── rng.h ├── rules_py │ ├── .gitignore │ ├── fceri_files │ │ ├── fceri.mdlr │ │ ├── fceri_ji_comp.geometry.mdl │ │ └── fceri_mdl.viz_output.mdl │ ├── grammar_definition.py │ ├── mcell3r.py │ ├── mdlr2mdl.py │ ├── nfsim_python.py │ ├── postprocess_mcell3r.py │ ├── read_bngxml.py │ ├── read_mdl.py │ ├── small_structures.py │ ├── split_bngxml.py │ ├── write_bngxmle.py │ └── write_mdl.py ├── sched_util.c ├── sched_util.h ├── strfunc.c ├── strfunc.h ├── sym_table.c ├── sym_table.h ├── test_api.c ├── test_api.h ├── triangle_overlap.c ├── triangle_overlap.h ├── util.c ├── util.h ├── vector.c ├── vector.h ├── vector.i ├── version.sh ├── version.txt ├── version_info.c ├── version_info.h ├── viz_output.c ├── viz_output.h ├── vol_util.c ├── vol_util.h ├── volume_output.c ├── volume_output.h ├── wall_util.c ├── wall_util.h └── ylwrapfix ├── src4 ├── CMakeLists.txt ├── base_event.cpp ├── base_event.h ├── bng_data_to_datamodel_converter.cpp ├── bng_data_to_datamodel_converter.h ├── bngl_exporter.cpp ├── bngl_exporter.h ├── clamp_release_event.cpp ├── clamp_release_event.h ├── collision_structs.cpp ├── collision_structs.h ├── collision_utils.inl ├── collision_utils_subparts.inl ├── count_buffer.cpp ├── count_buffer.h ├── custom_function_call_event.h ├── defines.cpp ├── defines.h ├── defragmentation_event.cpp ├── defragmentation_event.h ├── diffuse_react_event.cpp ├── diffuse_react_event.h ├── diffusion_utils.inl ├── dyn_vertex_structs.h ├── dyn_vertex_utils.inl ├── exact_disk_utils.inl ├── geometry.cpp ├── geometry.h ├── geometry_utils.h ├── geometry_utils.inl ├── grid_position.cpp ├── grid_position.h ├── grid_utils.inl ├── mcell3_world_converter.cpp ├── mcell3_world_converter.h ├── mcell4_iface_for_mcell3.cpp ├── mcell4_iface_for_mcell3.h ├── memory_limit_checker.cpp ├── memory_limit_checker.h ├── mol_or_rxn_count_event.cpp ├── mol_or_rxn_count_event.h ├── mol_order_shuffle_event.cpp ├── mol_order_shuffle_event.h ├── molecule.cpp ├── molecule.h ├── partition.cpp ├── partition.h ├── region_expr.cpp ├── region_expr.h ├── region_utils.cpp ├── region_utils.h ├── release_event.cpp ├── release_event.h ├── run_n_iterations_end_event.h ├── rxn_class_cleanup_event.cpp ├── rxn_class_cleanup_event.h ├── rxn_utils.inl ├── scheduler.cpp ├── scheduler.h ├── simulation_config.cpp ├── simulation_config.h ├── simulation_stats.cpp ├── simulation_stats.h ├── sort_mols_by_subpart_event.cpp ├── sort_mols_by_subpart_event.h ├── species_cleanup_event.cpp ├── species_cleanup_event.h ├── viz_output_event.cpp ├── viz_output_event.h ├── vtk_utils.cpp ├── vtk_utils.h ├── wall.cpp ├── wall.h ├── wall_overlap.cpp ├── wall_overlap.h ├── wall_utils.h ├── wall_utils.inl ├── world.cpp └── world.h └── utils ├── CMakeLists.txt ├── blender_debug_scripts └── dyn_vertex_check.py ├── bng_analyzer ├── CMakeLists.txt ├── bng_analyzer.cpp ├── nfsim_species_unifier.cpp ├── nfsim_species_unifier.h └── test │ └── CaMKII.species ├── bng_analyzer_py ├── bng_analysis_example.py └── viz_reader.py ├── bng_species_reader_py ├── bng_species_reader_example.py └── species_reader.py ├── bngl ├── example_inputs │ └── voltage.dat └── generate_bngl_function.py ├── clang-format.conf ├── data_model_to_constants └── datamodel_to_constants.py ├── data_model_to_pymcell ├── CMakeLists.txt ├── bngl_generator.cpp ├── bngl_generator.h ├── data_model_geometry.cpp ├── data_model_geometry.h ├── data_model_to_pymcell.cpp ├── generator_structs.h ├── generator_utils.cpp ├── generator_utils.h ├── mcell4_generator.cpp ├── mcell4_generator.h ├── python_generator.cpp └── python_generator.h ├── hpc_scripts ├── mcell3r_pbs_run_range.py ├── mcell3r_slurm_run_range.py ├── mcell_pbs_run_range.py └── mcell_slurm_run_range.py ├── mcell4_runner ├── bng_runner.py ├── mcell3_runner.py ├── mcell4_runner.py └── run_remotely.sh ├── plotting ├── plot_averages_into_images.py ├── plot_dat_files.py └── plot_gdat_file.py ├── pybind11_build_example ├── CMakeLists.txt ├── import_mcell.py └── test.cpp ├── react_data_analyzer └── reac_data_analyzer.py ├── validation ├── avg_react_data.py ├── utils.py └── validate.py └── visualize ├── visualize.py └── visualize.sh /.externalToolBuilders/.gitignore: -------------------------------------------------------------------------------- 1 | /org.eclipse.cdt.core.cBuilder.launch 2 | -------------------------------------------------------------------------------- /.externalToolBuilders/make.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.externalToolBuilders/org.python.pydev.PyDevBuilder.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _build 2 | autom4te.cache 3 | compile 4 | depcomp 5 | ylwrap 6 | mcell 7 | mdlparse.c 8 | mdlparse.h 9 | mdllex.c 10 | mdllex.h 11 | opt 12 | .DS_store 13 | *.pyc 14 | build 15 | test.cfg 16 | test_results 17 | config.log 18 | config.status 19 | stamp-h1 20 | .deps 21 | *.exe 22 | *.bat 23 | *.swp 24 | .docstates.suo 25 | tags* 26 | .tags* 27 | *sublime* 28 | .idea 29 | *cscope* 30 | dyngeom_parse 31 | !windows/* 32 | _mcellSwig.so 33 | mcellSwig.py 34 | mcellSwig_wrap.c 35 | docs/doxygen 36 | pymcell.py 37 | pymcell_wrap.c 38 | _pymcell*.so 39 | MANIFEST 40 | dist 41 | .mypy_cache 42 | .ipynb_checkpoints 43 | sphinx_env 44 | mcell_venv 45 | /.buildconfig 46 | /build-ref/ 47 | -------------------------------------------------------------------------------- /.pydevproject: -------------------------------------------------------------------------------- 1 | 2 | 3 | Default 4 | python interpreter 5 | 6 | -------------------------------------------------------------------------------- /.settings/org.eclipse.cdt.ui.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | formatter_profile=_KR2 3 | formatter_settings_version=1 4 | -------------------------------------------------------------------------------- /.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/rules_py/read_bngxml.py=utf-8 3 | encoding//src/rules_py/small_structures.py=utf-8 4 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | environment: 2 | CTEST_OUTPUT_ON_FAILURE: 1 3 | matrix: 4 | - MINGW_ARCH: x86_64 5 | MINGW_ROOT: C:\msys64\mingw64 6 | BOOST_ROOT: C:\msys64\mingw64 7 | BOOST_LIBRARYDIR: C:\msys64\mingw64\lib 8 | BOOST_INCLUDEDIR: C:\msys64\mingw64\include\boost 9 | CMAKE_GENERATOR: 'MSYS Makefiles' 10 | 11 | install: 12 | - choco install -y mingw 13 | - choco install -r -y ninja 14 | - choco install -y winflexbison 15 | - choco install -y swig 16 | - set PATH=%BOOST_LIBRARYDIR%;%PATH% 17 | - set PATH=%MINGW_ROOT%\bin;C:\msys64\usr\bin\;%PATH% 18 | - bash -lc "pacman --needed --noconfirm -S mingw-w64-%MINGW_ARCH%-boost" 19 | 20 | build_script: 21 | - git submodule init 22 | - git submodule update 23 | - mkdir build 24 | - cd build 25 | - cmake -G Ninja .. 26 | - ninja 27 | -------------------------------------------------------------------------------- /build_gperftools.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir -p build/build_gperftools 4 | mkdir -p build/install_gperftools 5 | 6 | cd build/build_gperftools 7 | 8 | ../../libs/gperftools/configure --prefix=`pwd`/../install_gperftools --disable-dependency-tracking 9 | make -j 8 10 | make install 11 | -------------------------------------------------------------------------------- /docs/doxygen/mcell_logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/doxygen/mcell_logo.gif -------------------------------------------------------------------------------- /docs/grid_util.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/grid_util.pdf -------------------------------------------------------------------------------- /docs/lr_bar_2D.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/lr_bar_2D.pdf -------------------------------------------------------------------------------- /docs/mem_util.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/mem_util.pdf -------------------------------------------------------------------------------- /docs/policy_mol_wall_interaction.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/policy_mol_wall_interaction.odt -------------------------------------------------------------------------------- /docs/policy_surf_products_placement.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/policy_surf_products_placement.doc -------------------------------------------------------------------------------- /docs/rdl.0.2.0.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/rdl.0.2.0.pdf -------------------------------------------------------------------------------- /docs/reaction_overview/Table_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/reaction_overview/Table_1.pdf -------------------------------------------------------------------------------- /docs/reaction_overview/Table_2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/reaction_overview/Table_2.pdf -------------------------------------------------------------------------------- /docs/reaction_overview/Table_3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/reaction_overview/Table_3.pdf -------------------------------------------------------------------------------- /docs/reaction_overview/Table_4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/reaction_overview/Table_4.pdf -------------------------------------------------------------------------------- /docs/reaction_overview/Table_5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/reaction_overview/Table_5.pdf -------------------------------------------------------------------------------- /docs/reaction_overview/fig1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/reaction_overview/fig1.png -------------------------------------------------------------------------------- /docs/reaction_overview/fig2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/reaction_overview/fig2.png -------------------------------------------------------------------------------- /docs/reaction_overview/fig3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/reaction_overview/fig3.png -------------------------------------------------------------------------------- /docs/reaction_overview/fig4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/reaction_overview/fig4.png -------------------------------------------------------------------------------- /docs/reaction_overview/fig5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/reaction_overview/fig5.png -------------------------------------------------------------------------------- /docs/reaction_overview/reaction_overview.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/reaction_overview/reaction_overview.pdf -------------------------------------------------------------------------------- /docs/suggested_3way_rxn.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/docs/suggested_3way_rxn.pdf -------------------------------------------------------------------------------- /libmcell/.gitignore: -------------------------------------------------------------------------------- 1 | /work/ 2 | -------------------------------------------------------------------------------- /libmcell/api/bindings.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2020 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | #ifndef LIBMCELL_API_BINDINGS_H 13 | #define LIBMCELL_API_BINDINGS_H 14 | 15 | namespace MCell { 16 | namespace API { 17 | 18 | // used to detect Ctrl-C signal from the user, 19 | // throws an exception if so 20 | void check_ctrl_c(const double current_time, World* arg); 21 | 22 | } 23 | } 24 | 25 | 26 | #endif // LIBMCELL_API_BINDINGS_H 27 | -------------------------------------------------------------------------------- /libmcell/api/exports.cpp: -------------------------------------------------------------------------------- 1 | // temporary workaround, 2 | // I was unable to figure out so far how to make cmake link a static library to 3 | // a shared one and export its symbols 4 | 5 | extern "C" { 6 | void PyInit_mcell(); 7 | } 8 | 9 | // exported functions 10 | static volatile int x = 0; 11 | 12 | class UseSymbol { 13 | public: 14 | UseSymbol() { 15 | if (x != 0) { 16 | // make the symbol be used, but not called 17 | PyInit_mcell(); 18 | } 19 | } 20 | }; 21 | 22 | UseSymbol z; 23 | -------------------------------------------------------------------------------- /libmcell/api/molecule.cpp: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2020 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | #include "molecule.h" 13 | 14 | #include "world.h" 15 | #include "partition.h" 16 | 17 | namespace MCell { 18 | namespace API { 19 | 20 | void Molecule::remove() { 21 | check_initialization(); 22 | 23 | Partition& p = world->get_partition(PARTITION_ID_INITIAL); 24 | 25 | if (!p.does_molecule_exist(id)) { 26 | throw RuntimeError("Molecule with id " + std::to_string(id) + " does not exist anymore."); 27 | } 28 | 29 | // set that this molecule is defunct 30 | world->get_partition(PARTITION_ID_INITIAL).get_m(id).set_is_defunct(); 31 | } 32 | 33 | } 34 | } 35 | 36 | -------------------------------------------------------------------------------- /libmcell/api/molecule.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2020 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | #ifndef API_MOLECULE_H 13 | #define API_MOLECULE_H 14 | 15 | #include "generated/gen_molecule.h" 16 | #include "api/api_common.h" 17 | #include "api/species.h" 18 | 19 | namespace MCell { 20 | namespace API { 21 | 22 | class Molecule: public GenMolecule { 23 | public: 24 | MOLECULE_CTOR_NOARGS() 25 | 26 | void remove() override; 27 | }; 28 | 29 | } // namespace API 30 | } // namespace MCell 31 | 32 | #endif // API_MOLECULE_H 33 | -------------------------------------------------------------------------------- /libmcell/api/notifications.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2020 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | #ifndef API_NOTIFICATIONS_H 13 | #define API_NOTIFICATIONS_H 14 | 15 | #include "generated/gen_notifications.h" 16 | #include "api/api_common.h" 17 | 18 | namespace MCell { 19 | namespace API { 20 | 21 | class Notifications: public GenNotifications { 22 | public: 23 | NOTIFICATIONS_CTOR() 24 | }; 25 | 26 | } // namespace API 27 | } // namespace MCell 28 | 29 | #endif // API_NOTIFICATIONS_H 30 | -------------------------------------------------------------------------------- /libmcell/api/pybind11_stl_include.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2020 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | // Windows build needs a fix otherwise this compilation error occurs: 13 | // msys/mingw64/include/c++/10.2.0/cmath:1121:11: error: 'hypot' has not been declared in '::' 14 | 15 | #ifndef API_PYBIND_STL_INCLUDE 16 | #define API_PYBIND_STL_INCLUDE 17 | 18 | #ifdef _WIN64 19 | // fix for _hypot compilation issue 20 | #define _hypot hypot 21 | #include 22 | #endif 23 | #ifdef _MSC_VER 24 | #undef HAVE_UNISTD_H 25 | #undef HAVE_SYS_TIME_H 26 | #endif 27 | #include "libs/pybind11/include/pybind11/stl.h" 28 | 29 | #ifndef _WIN64 30 | #undef _hypot 31 | #endif 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /libmcell/api/wall.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2020 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | #ifndef API_WALL_H 13 | #define API_WALL_H 14 | 15 | #include "generated/gen_wall.h" 16 | #include "api/api_common.h" 17 | 18 | namespace MCell { 19 | namespace API { 20 | 21 | class Wall: public GenWall { 22 | public: 23 | WALL_CTOR_NOARGS() 24 | 25 | // -- overrides --- 26 | void set_is_movable(const bool new_is_movable_) override; 27 | }; 28 | 29 | } // namespace API 30 | } // namespace MCell 31 | 32 | #endif // API_WALL_H 33 | -------------------------------------------------------------------------------- /libmcell/api/wall_wall_hit_info.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2020 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | #ifndef API_WALL_WALL_HIT_INFO_H 13 | #define API_WALL_WALL_HIT_INFO_H 14 | 15 | #include "generated/gen_wall_wall_hit_info.h" 16 | #include "api/api_common.h" 17 | 18 | namespace MCell { 19 | namespace API { 20 | 21 | class WallWallHitInfo: public GenWallWallHitInfo { 22 | public: 23 | WALL_WALL_HIT_INFO_CTOR_NOARGS() 24 | }; 25 | 26 | } // namespace API 27 | } // namespace MCell 28 | 29 | #endif // API_WALL_WALL_HIT_INFO_H 30 | -------------------------------------------------------------------------------- /libmcell/documentation/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sphinx-build -M html . build/ 3 | 4 | if [ "$1" == "-u" ]; then 5 | rsync -r build/html/* huxley.snl.salk.edu:/home/ahusar/public_html/mcell4_documentation 6 | fi 7 | -------------------------------------------------------------------------------- /libmcell/documentation/examples/examples.rst: -------------------------------------------------------------------------------- 1 | ******************* 2 | Python API Examples 3 | ******************* 4 | -------------------------------------------------------------------------------- /libmcell/documentation/features/features.rst: -------------------------------------------------------------------------------- 1 | .. _installation_section: 2 | 3 | ********************* 4 | Specific API Features 5 | ********************* 6 | 7 | This sections contains description of specific API features. 8 | Currently describes just dynamic geometry, but may be extended later. 9 | 10 | .. toctree:: 11 | :caption: Contents 12 | 13 | dynamic_geometry -------------------------------------------------------------------------------- /libmcell/documentation/generated/api.rst: -------------------------------------------------------------------------------- 1 | Python API Reference 2 | ==================== 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :hidden: 7 | :caption: Contents 8 | 9 | constants 10 | model 11 | simulation_setup 12 | subsystem 13 | geometry 14 | instantiation 15 | observables 16 | callbacks 17 | introspection 18 | checkpointing 19 | submodules 20 | 21 | This section contains automatically generated documentation on Python classes, enums, and constants provided by MCell. 22 | 23 | - :ref:`api-constants` 24 | - :ref:`api-model` 25 | - :ref:`api-simulation_setup` 26 | - :ref:`api-subsystem` 27 | - :ref:`api-geometry` 28 | - :ref:`api-instantiation` 29 | - :ref:`api-observables` 30 | - :ref:`api-callbacks` 31 | - :ref:`api-introspection` 32 | - :ref:`api-checkpointing` 33 | - :ref:`api-submodules` 34 | -------------------------------------------------------------------------------- /libmcell/documentation/images/bngl_compartments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/bngl_compartments.png -------------------------------------------------------------------------------- /libmcell/documentation/images/bngl_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/bngl_rule.png -------------------------------------------------------------------------------- /libmcell/documentation/images/bngl_rule_application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/bngl_rule_application.png -------------------------------------------------------------------------------- /libmcell/documentation/images/installation_macos_security_and_privacy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/installation_macos_security_and_privacy.png -------------------------------------------------------------------------------- /libmcell/documentation/images/installation_macos_security_and_privacy_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/installation_macos_security_and_privacy_selected.png -------------------------------------------------------------------------------- /libmcell/documentation/images/installation_macos_start_blender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/installation_macos_start_blender.png -------------------------------------------------------------------------------- /libmcell/documentation/images/installation_macos_start_terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/installation_macos_start_terminal.png -------------------------------------------------------------------------------- /libmcell/documentation/images/installation_macos_warning1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/installation_macos_warning1.png -------------------------------------------------------------------------------- /libmcell/documentation/images/installation_macos_warning2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/installation_macos_warning2.png -------------------------------------------------------------------------------- /libmcell/documentation/images/installation_macos_warning3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/installation_macos_warning3.png -------------------------------------------------------------------------------- /libmcell/documentation/images/installation_macos_warning4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/installation_macos_warning4.png -------------------------------------------------------------------------------- /libmcell/documentation/images/installation_win_redist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/installation_win_redist.png -------------------------------------------------------------------------------- /libmcell/documentation/images/plugin_cellblender_enable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/plugin_cellblender_enable.png -------------------------------------------------------------------------------- /libmcell/documentation/images/troubleshooting_cannot_initialize_cellblender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/troubleshooting_cannot_initialize_cellblender.png -------------------------------------------------------------------------------- /libmcell/documentation/images/tutorial_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libmcell/documentation/images/tutorial_result.png -------------------------------------------------------------------------------- /libmcell/documentation/index.rst: -------------------------------------------------------------------------------- 1 | .. MCell 4 documentation master file, created by 2 | sphinx-quickstart on Thu Sep 3 11:37:04 2020. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | MCell4 Reference Manual 7 | ======================= 8 | 9 | This documentation contains an overview of the MCell4 API (Application Programming Interface) 10 | with a tutorial, and a complete definition of the interface. 11 | 12 | .. toctree:: 13 | :maxdepth: 1 14 | :caption: Contents 15 | 16 | sim_env_overview 17 | installation 18 | tutorial/tutorial 19 | api_overview 20 | bngl 21 | generated/api 22 | features/features 23 | model_conversions 24 | file_formats 25 | 26 | .. 27 | examples/examples 28 | 29 | -------------------------------------------------------------------------------- /libmcell/documentation/prerequisites.txt: -------------------------------------------------------------------------------- 1 | Using Sphinx, can be installed with: 2 | 3 | python -m pip install sphinx sphinx_rtd_theme 4 | 5 | Some documentation is here: 6 | https://docs.readthedocs.io/en/stable/intro/getting-started-with-sphinx.html 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /libmcell/documentation/templates/layout.html: -------------------------------------------------------------------------------- 1 | {% extends "!layout.html" %} 2 | {%- block sidebartitle %} 3 | {{ super() }} 4 | 5 |
6 |
7 | 11 |
12 | 13 | {%- endblock -%} -------------------------------------------------------------------------------- /libmcell/generated/.gitignore: -------------------------------------------------------------------------------- 1 | /classes.rst 2 | -------------------------------------------------------------------------------- /libmcell/generated/gen_data_utils.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2021 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | #ifndef API_GEN_DATA_UTILS_H 13 | #define API_GEN_DATA_UTILS_H 14 | 15 | #include "api/api_common.h" 16 | 17 | namespace MCell { 18 | namespace API { 19 | 20 | class PythonExportContext; 21 | 22 | namespace data_utils { 23 | 24 | std::vector> load_dat_file(const std::string& file_name); 25 | 26 | } // namespace data_utils 27 | 28 | void define_pybinding_data_utils(py::module& m); 29 | } // namespace API 30 | } // namespace MCell 31 | 32 | #endif // API_GEN_DATA_UTILS_H 33 | -------------------------------------------------------------------------------- /libmcell/generated/gen_run_utils.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2021 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | #ifndef API_GEN_RUN_UTILS_H 13 | #define API_GEN_RUN_UTILS_H 14 | 15 | #include "api/api_common.h" 16 | 17 | namespace MCell { 18 | namespace API { 19 | 20 | class PythonExportContext; 21 | 22 | namespace run_utils { 23 | 24 | std::string get_last_checkpoint_dir(const int seed); 25 | std::vector remove_cwd(const std::vector paths); 26 | 27 | } // namespace run_utils 28 | 29 | void define_pybinding_run_utils(py::module& m); 30 | } // namespace API 31 | } // namespace MCell 32 | 33 | #endif // API_GEN_RUN_UTILS_H 34 | -------------------------------------------------------------------------------- /libmcell/replace_in_all_files.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # this is an auxiliary script used e.g. when API changes 3 | find ./ -type f -exec sed -i "s/double/double/g" {} \; -------------------------------------------------------------------------------- /libs/cpptime/MCELL_INFO.txt: -------------------------------------------------------------------------------- 1 | Cloned on Dec 8 2020 from 2 | https://github.com/eglimi/cpptime.git 3 | 4 | Commit 5387c4a. 5 | 6 | Used for periodic check of memory consumption. 7 | Added tests/mem_test.cpp as a prototype for this feature. 8 | -------------------------------------------------------------------------------- /libs/cpptime/tests/mem_test.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | //#include "sys/types.h" 6 | //#include "sys/sysinfo.h" 7 | 8 | #include 9 | #include 10 | 11 | #include "../cpptime.h" 12 | 13 | using namespace std; 14 | using namespace std::chrono; 15 | 16 | std::vector x; 17 | 18 | void func(CppTime::timer_id) { 19 | 20 | int who = RUSAGE_SELF; 21 | struct rusage usage; 22 | int ret; 23 | 24 | ret=getrusage(who,&usage); 25 | 26 | cout< 2 | 3 | //! Workaround for compatibility with other libraries 4 | #ifdef max 5 | #undef max 6 | #endif 7 | 8 | //! Workaround for compatibility with other libraries 9 | #ifdef min 10 | #undef min 11 | #endif 12 | 13 | //! Workaround for Android 14 | #ifdef isnan 15 | #undef isnan 16 | #endif 17 | 18 | //! Workaround for Android 19 | #ifdef isinf 20 | #undef isinf 21 | #endif 22 | 23 | //! Workaround for Chrone Native Client 24 | #ifdef log2 25 | #undef log2 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /libs/glm/detail/compute_vector_relational.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | //#include "compute_common.hpp" 4 | #include "setup.hpp" 5 | #include 6 | 7 | namespace glm{ 8 | namespace detail 9 | { 10 | template 11 | struct compute_equal 12 | { 13 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b) 14 | { 15 | return a == b; 16 | } 17 | }; 18 | /* 19 | template 20 | struct compute_equal 21 | { 22 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b) 23 | { 24 | return detail::compute_abs::is_signed>::call(b - a) <= static_cast(0); 25 | //return std::memcmp(&a, &b, sizeof(T)) == 0; 26 | } 27 | }; 28 | */ 29 | }//namespace detail 30 | }//namespace glm 31 | -------------------------------------------------------------------------------- /libs/glm/detail/func_exponential_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_exponential_simd.inl 3 | 4 | #include "../simd/exponential.h" 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | namespace glm{ 9 | namespace detail 10 | { 11 | template 12 | struct compute_sqrt<4, float, Q, true> 13 | { 14 | GLM_FUNC_QUALIFIER static vec<4, float, Q> call(vec<4, float, Q> const& v) 15 | { 16 | vec<4, float, Q> Result; 17 | Result.data = _mm_sqrt_ps(v.data); 18 | return Result; 19 | } 20 | }; 21 | 22 | # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE 23 | template<> 24 | struct compute_sqrt<4, float, aligned_lowp, true> 25 | { 26 | GLM_FUNC_QUALIFIER static vec<4, float, aligned_lowp> call(vec<4, float, aligned_lowp> const& v) 27 | { 28 | vec<4, float, aligned_lowp> Result; 29 | Result.data = glm_vec4_sqrt_lowp(v.data); 30 | return Result; 31 | } 32 | }; 33 | # endif 34 | }//namespace detail 35 | }//namespace glm 36 | 37 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 38 | -------------------------------------------------------------------------------- /libs/glm/detail/func_packing_simd.inl: -------------------------------------------------------------------------------- 1 | namespace glm{ 2 | namespace detail 3 | { 4 | 5 | }//namespace detail 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /libs/glm/detail/func_trigonometric_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/glm/detail/func_trigonometric_simd.inl -------------------------------------------------------------------------------- /libs/glm/detail/func_vector_relational_simd.inl: -------------------------------------------------------------------------------- 1 | namespace glm{ 2 | namespace detail 3 | { 4 | 5 | }//namespace detail 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /libs/glm/detail/type_half.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "setup.hpp" 4 | 5 | namespace glm{ 6 | namespace detail 7 | { 8 | typedef short hdata; 9 | 10 | GLM_FUNC_DECL float toFloat32(hdata value); 11 | GLM_FUNC_DECL hdata toFloat16(float const& value); 12 | 13 | }//namespace detail 14 | }//namespace glm 15 | 16 | #include "type_half.inl" 17 | -------------------------------------------------------------------------------- /libs/glm/detail/type_mat4x4_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | 3 | namespace glm 4 | { 5 | 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_double2x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double2x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 2 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 2, double, defaultp> dmat2x2; 16 | 17 | /// 2 columns of 2 components matrix of double-precision floating-point numbers. 18 | /// 19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 20 | typedef mat<2, 2, double, defaultp> dmat2; 21 | 22 | /// @} 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_double2x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double2x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 3 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 3, double, defaultp> dmat2x3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_double2x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double2x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 4 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 4, double, defaultp> dmat2x4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_double3x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double3x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 2 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 2, double, defaultp> dmat3x2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_double3x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double3x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 3 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 3, double, defaultp> dmat3x3; 16 | 17 | /// 3 columns of 3 components matrix of double-precision floating-point numbers. 18 | /// 19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 20 | typedef mat<3, 3, double, defaultp> dmat3; 21 | 22 | /// @} 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_double3x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double3x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 4 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 4, double, defaultp> dmat3x4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_double4x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double4x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 2 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 2, double, defaultp> dmat4x2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_double4x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double4x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 3 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 3, double, defaultp> dmat4x3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_double4x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double4x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 4 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 4, double, defaultp> dmat4x4; 16 | 17 | /// 4 columns of 4 components matrix of double-precision floating-point numbers. 18 | /// 19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 20 | typedef mat<4, 4, double, defaultp> dmat4; 21 | 22 | /// @} 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_float2x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float2x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 2 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 2, float, defaultp> mat2x2; 16 | 17 | /// 2 columns of 2 components matrix of single-precision floating-point numbers. 18 | /// 19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 20 | typedef mat<2, 2, float, defaultp> mat2; 21 | 22 | /// @} 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_float2x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float2x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 3 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 3, float, defaultp> mat2x3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_float2x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float2x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 4 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 4, float, defaultp> mat2x4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_float3x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float3x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core 10 | /// @{ 11 | 12 | /// 3 columns of 2 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 2, float, defaultp> mat3x2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_float3x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float3x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 3 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 3, float, defaultp> mat3x3; 16 | 17 | /// 3 columns of 3 components matrix of single-precision floating-point numbers. 18 | /// 19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 20 | typedef mat<3, 3, float, defaultp> mat3; 21 | 22 | /// @} 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_float3x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float3x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 4 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 4, float, defaultp> mat3x4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_float4x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float4x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 2 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 2, float, defaultp> mat4x2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_float4x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float4x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 3 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 3, float, defaultp> mat4x3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/matrix_float4x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float4x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @ingroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 4 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 4, float, defaultp> mat4x4; 16 | 17 | /// 4 columns of 4 components matrix of single-precision floating-point numbers. 18 | /// 19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 20 | typedef mat<4, 4, float, defaultp> mat4; 21 | 22 | /// @} 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /libs/glm/ext/quaternion_common_simd.inl: -------------------------------------------------------------------------------- 1 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 2 | 3 | namespace glm{ 4 | namespace detail 5 | { 6 | template 7 | struct compute_dot, float, true> 8 | { 9 | static GLM_FUNC_QUALIFIER float call(qua const& x, qua const& y) 10 | { 11 | return _mm_cvtss_f32(glm_vec1_dot(x.data, y.data)); 12 | } 13 | }; 14 | }//namespace detail 15 | }//namespace glm 16 | 17 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 18 | 19 | -------------------------------------------------------------------------------- /libs/glm/ext/quaternion_transform.inl: -------------------------------------------------------------------------------- 1 | namespace glm 2 | { 3 | template 4 | GLM_FUNC_QUALIFIER qua rotate(qua const& q, T const& angle, vec<3, T, Q> const& v) 5 | { 6 | vec<3, T, Q> Tmp = v; 7 | 8 | // Axis of rotation must be normalised 9 | T len = glm::length(Tmp); 10 | if(abs(len - static_cast(1)) > static_cast(0.001)) 11 | { 12 | T oneOverLen = static_cast(1) / len; 13 | Tmp.x *= oneOverLen; 14 | Tmp.y *= oneOverLen; 15 | Tmp.z *= oneOverLen; 16 | } 17 | 18 | T const AngleRad(angle); 19 | T const Sin = sin(AngleRad * static_cast(0.5)); 20 | 21 | return q * qua(cos(AngleRad * static_cast(0.5)), Tmp.x * Sin, Tmp.y * Sin, Tmp.z * Sin); 22 | } 23 | }//namespace glm 24 | 25 | -------------------------------------------------------------------------------- /libs/glm/ext/quaternion_trigonometric.inl: -------------------------------------------------------------------------------- 1 | namespace glm 2 | { 3 | template 4 | GLM_FUNC_QUALIFIER T angle(qua const& x) 5 | { 6 | return acos(x.w) * static_cast(2); 7 | } 8 | 9 | template 10 | GLM_FUNC_QUALIFIER vec<3, T, Q> axis(qua const& x) 11 | { 12 | T const tmp1 = static_cast(1) - x.w * x.w; 13 | if(tmp1 <= static_cast(0)) 14 | return vec<3, T, Q>(0, 0, 1); 15 | T const tmp2 = static_cast(1) / sqrt(tmp1); 16 | return vec<3, T, Q>(x.x * tmp2, x.y * tmp2, x.z * tmp2); 17 | } 18 | 19 | template 20 | GLM_FUNC_QUALIFIER qua angleAxis(T const& angle, vec<3, T, Q> const& v) 21 | { 22 | T const a(angle); 23 | T const s = glm::sin(a * static_cast(0.5)); 24 | 25 | return qua(glm::cos(a * static_cast(0.5)), v * s); 26 | } 27 | }//namespace glm 28 | -------------------------------------------------------------------------------- /libs/glm/ext/scalar_constants.inl: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType epsilon() 7 | { 8 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'epsilon' only accepts floating-point inputs"); 9 | return std::numeric_limits::epsilon(); 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType pi() 14 | { 15 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'epsilon' only accepts floating-point inputs"); 16 | return static_cast(3.14159265358979323846264338327950288); 17 | } 18 | } //namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_bool1.hpp: -------------------------------------------------------------------------------- 1 | /// @ref ext_vector_bool1 2 | /// @file glm/ext/vector_bool1.hpp 3 | /// 4 | /// @defgroup ext_vector_bool1 GLM_EXT_vector_bool1 5 | /// @ingroup ext 6 | /// 7 | /// Exposes bvec1 vector type. 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// @see ext_vector_bool1_precision extension. 12 | 13 | #pragma once 14 | 15 | #include "../detail/type_vec1.hpp" 16 | 17 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 18 | # pragma message("GLM: GLM_EXT_vector_bool1 extension included") 19 | #endif 20 | 21 | namespace glm 22 | { 23 | /// @addtogroup ext_vector_bool1 24 | /// @{ 25 | 26 | /// 1 components vector of boolean. 27 | typedef vec<1, bool, defaultp> bvec1; 28 | 29 | /// @} 30 | }//namespace glm 31 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_bool2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_bool2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of boolean. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, bool, defaultp> bvec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_bool3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_bool3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of boolean. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, bool, defaultp> bvec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_bool4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_bool4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of boolean. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, bool, defaultp> bvec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_double1.hpp: -------------------------------------------------------------------------------- 1 | /// @ref ext_vector_double1 2 | /// @file glm/ext/vector_double1.hpp 3 | /// 4 | /// @defgroup ext_vector_double1 GLM_EXT_vector_double1 5 | /// @ingroup ext 6 | /// 7 | /// Exposes double-precision floating point vector type with one component. 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// @see ext_vector_double1_precision extension. 12 | /// @see ext_vector_float1 extension. 13 | 14 | #pragma once 15 | 16 | #include "../detail/type_vec1.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_EXT_vector_dvec1 extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup ext_vector_double1 25 | /// @{ 26 | 27 | /// 1 components vector of double-precision floating-point numbers. 28 | typedef vec<1, double, defaultp> dvec1; 29 | 30 | /// @} 31 | }//namespace glm 32 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_double2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_double2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, double, defaultp> dvec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_double3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_double3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, double, defaultp> dvec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_double4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_double4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, double, defaultp> dvec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_float1.hpp: -------------------------------------------------------------------------------- 1 | /// @ref ext_vector_float1 2 | /// @file glm/ext/vector_float1.hpp 3 | /// 4 | /// @defgroup ext_vector_float1 GLM_EXT_vector_float1 5 | /// @ingroup ext 6 | /// 7 | /// Exposes single-precision floating point vector type with one component. 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// @see ext_vector_float1_precision extension. 12 | /// @see ext_vector_double1 extension. 13 | 14 | #pragma once 15 | 16 | #include "../detail/type_vec1.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_EXT_vector_float1 extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup ext_vector_float1 25 | /// @{ 26 | 27 | /// 1 components vector of single-precision floating-point numbers. 28 | typedef vec<1, float, defaultp> vec1; 29 | 30 | /// @} 31 | }//namespace glm 32 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_float2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_float2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, float, defaultp> vec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_float3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_float3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, float, defaultp> vec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_float4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_float4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, float, defaultp> vec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_int1.hpp: -------------------------------------------------------------------------------- 1 | /// @ref ext_vector_int1 2 | /// @file glm/ext/vector_int1.hpp 3 | /// 4 | /// @defgroup ext_vector_int1 GLM_EXT_vector_int1 5 | /// @ingroup ext 6 | /// 7 | /// Exposes ivec1 vector type. 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// @see ext_vector_uint1 extension. 12 | /// @see ext_vector_int1_precision extension. 13 | 14 | #pragma once 15 | 16 | #include "../detail/type_vec1.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_EXT_vector_int1 extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup ext_vector_int1 25 | /// @{ 26 | 27 | /// 1 component vector of signed integer numbers. 28 | typedef vec<1, int, defaultp> ivec1; 29 | 30 | /// @} 31 | }//namespace glm 32 | 33 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_int2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_int2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of signed integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, int, defaultp> ivec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_int3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_int3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of signed integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, int, defaultp> ivec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_int4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_int4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of signed integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, int, defaultp> ivec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_uint1.hpp: -------------------------------------------------------------------------------- 1 | /// @ref ext_vector_uint1 2 | /// @file glm/ext/vector_uint1.hpp 3 | /// 4 | /// @defgroup ext_vector_uint1 GLM_EXT_vector_uint1 5 | /// @ingroup ext 6 | /// 7 | /// Exposes uvec1 vector type. 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// @see ext_vector_int1 extension. 12 | /// @see ext_vector_uint1_precision extension. 13 | 14 | #pragma once 15 | 16 | #include "../detail/type_vec1.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_EXT_vector_uint1 extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup ext_vector_uint1 25 | /// @{ 26 | 27 | /// 1 component vector of unsigned integer numbers. 28 | typedef vec<1, unsigned int, defaultp> uvec1; 29 | 30 | /// @} 31 | }//namespace glm 32 | 33 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_uint2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_uint2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of unsigned integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, unsigned int, defaultp> uvec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_uint3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_uint3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of unsigned integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, unsigned int, defaultp> uvec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/ext/vector_uint4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_uint4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of unsigned integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, unsigned int, defaultp> uvec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /libs/glm/gtc/matrix_transform.inl: -------------------------------------------------------------------------------- 1 | #include "../geometric.hpp" 2 | #include "../trigonometric.hpp" 3 | #include "../matrix.hpp" 4 | -------------------------------------------------------------------------------- /libs/glm/gtc/quaternion_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/glm/gtc/quaternion_simd.inl -------------------------------------------------------------------------------- /libs/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_precision 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /libs/glm/gtc/ulp.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtc_ulp 2 | /// @file glm/gtc/ulp.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtc_ulp GLM_GTC_ulp 7 | /// @ingroup gtc 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Allow the measurement of the accuracy of a function against a reference 12 | /// implementation. This extension works on floating-point data and provide results 13 | /// in ULP. 14 | 15 | #pragma once 16 | 17 | // Dependencies 18 | #include "../ext/scalar_ulp.hpp" 19 | #include "../ext/vector_ulp.hpp" 20 | 21 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 22 | # pragma message("GLM: GLM_GTC_ulp extension included") 23 | #endif 24 | 25 | -------------------------------------------------------------------------------- /libs/glm/gtc/ulp.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_ulp 2 | /// 3 | 4 | -------------------------------------------------------------------------------- /libs/glm/gtc/vec1.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtc_vec1 2 | /// @file glm/gtc/vec1.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtc_vec1 GLM_GTC_vec1 7 | /// @ingroup gtc 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Add vec1, ivec1, uvec1 and bvec1 types. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../ext/vector_bool1.hpp" 17 | #include "../ext/vector_bool1_precision.hpp" 18 | #include "../ext/vector_float1.hpp" 19 | #include "../ext/vector_float1_precision.hpp" 20 | #include "../ext/vector_double1.hpp" 21 | #include "../ext/vector_double1_precision.hpp" 22 | #include "../ext/vector_int1.hpp" 23 | #include "../ext/vector_int1_precision.hpp" 24 | #include "../ext/vector_uint1.hpp" 25 | #include "../ext/vector_uint1_precision.hpp" 26 | 27 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 28 | # pragma message("GLM: GLM_GTC_vec1 extension included") 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /libs/glm/gtx/exterior_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_exterior_product 2 | 3 | #include 4 | 5 | namespace glm { 6 | namespace detail 7 | { 8 | template 9 | struct compute_cross_vec2 10 | { 11 | GLM_FUNC_QUALIFIER static T call(vec<2, T, Q> const& v, vec<2, T, Q> const& u) 12 | { 13 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'cross' accepts only floating-point inputs"); 14 | 15 | return v.x * u.y - u.x * v.y; 16 | } 17 | }; 18 | }//namespace detail 19 | 20 | template 21 | GLM_FUNC_QUALIFIER T cross(vec<2, T, Q> const& x, vec<2, T, Q> const& y) 22 | { 23 | return detail::compute_cross_vec2::value>::call(x, y); 24 | } 25 | }//namespace glm 26 | 27 | -------------------------------------------------------------------------------- /libs/glm/gtx/float_notmalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_float_normalize 2 | 3 | #include 4 | 5 | namespace glm 6 | { 7 | template 8 | GLM_FUNC_QUALIFIER vec floatNormalize(vec const& v) 9 | { 10 | return vec(v) / static_cast(std::numeric_limits::max()); 11 | } 12 | 13 | }//namespace glm 14 | -------------------------------------------------------------------------------- /libs/glm/gtx/functions.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_functions 2 | 3 | #include "../exponential.hpp" 4 | 5 | namespace glm 6 | { 7 | template 8 | GLM_FUNC_QUALIFIER T gauss 9 | ( 10 | T x, 11 | T ExpectedValue, 12 | T StandardDeviation 13 | ) 14 | { 15 | return exp(-((x - ExpectedValue) * (x - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation)) / (StandardDeviation * sqrt(static_cast(6.28318530717958647692528676655900576))); 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER T gauss 20 | ( 21 | vec<2, T, Q> const& Coord, 22 | vec<2, T, Q> const& ExpectedValue, 23 | vec<2, T, Q> const& StandardDeviation 24 | ) 25 | { 26 | vec<2, T, Q> const Squared = ((Coord - ExpectedValue) * (Coord - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation); 27 | return exp(-(Squared.x + Squared.y)); 28 | } 29 | }//namespace glm 30 | 31 | -------------------------------------------------------------------------------- /libs/glm/gtx/handed_coordinate_space.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_handed_coordinate_space 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER bool rightHanded 7 | ( 8 | vec<3, T, Q> const& tangent, 9 | vec<3, T, Q> const& binormal, 10 | vec<3, T, Q> const& normal 11 | ) 12 | { 13 | return dot(cross(normal, tangent), binormal) > T(0); 14 | } 15 | 16 | template 17 | GLM_FUNC_QUALIFIER bool leftHanded 18 | ( 19 | vec<3, T, Q> const& tangent, 20 | vec<3, T, Q> const& binormal, 21 | vec<3, T, Q> const& normal 22 | ) 23 | { 24 | return dot(cross(normal, tangent), binormal) < T(0); 25 | } 26 | }//namespace glm 27 | -------------------------------------------------------------------------------- /libs/glm/gtx/log_base.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType log(genType const& x, genType const& base) 7 | { 8 | return glm::log(x) / glm::log(base); 9 | } 10 | 11 | template 12 | GLM_FUNC_QUALIFIER vec log(vec const& x, vec const& base) 13 | { 14 | return glm::log(x) / glm::log(base); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /libs/glm/gtx/matrix_cross_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_matrix_cross_product 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> matrixCross3 7 | ( 8 | vec<3, T, Q> const& x 9 | ) 10 | { 11 | mat<3, 3, T, Q> Result(T(0)); 12 | Result[0][1] = x.z; 13 | Result[1][0] = -x.z; 14 | Result[0][2] = -x.y; 15 | Result[2][0] = x.y; 16 | Result[1][2] = x.x; 17 | Result[2][1] = -x.x; 18 | return Result; 19 | } 20 | 21 | template 22 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> matrixCross4 23 | ( 24 | vec<3, T, Q> const& x 25 | ) 26 | { 27 | mat<4, 4, T, Q> Result(T(0)); 28 | Result[0][1] = x.z; 29 | Result[1][0] = -x.z; 30 | Result[0][2] = -x.y; 31 | Result[2][0] = x.y; 32 | Result[1][2] = x.x; 33 | Result[2][1] = -x.x; 34 | return Result; 35 | } 36 | 37 | }//namespace glm 38 | -------------------------------------------------------------------------------- /libs/glm/gtx/matrix_factorisation.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/glm/gtx/matrix_factorisation.inl -------------------------------------------------------------------------------- /libs/glm/gtx/mixed_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER T mixedProduct 7 | ( 8 | vec<3, T, Q> const& v1, 9 | vec<3, T, Q> const& v2, 10 | vec<3, T, Q> const& v3 11 | ) 12 | { 13 | return dot(cross(v1, v2), v3); 14 | } 15 | }//namespace glm 16 | -------------------------------------------------------------------------------- /libs/glm/gtx/normal.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER vec<3, T, Q> triangleNormal 7 | ( 8 | vec<3, T, Q> const& p1, 9 | vec<3, T, Q> const& p2, 10 | vec<3, T, Q> const& p3 11 | ) 12 | { 13 | return normalize(cross(p1 - p2, p1 - p3)); 14 | } 15 | }//namespace glm 16 | -------------------------------------------------------------------------------- /libs/glm/gtx/normalize_dot.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normalize_dot 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER T normalizeDot(vec const& x, vec const& y) 7 | { 8 | return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y)); 9 | } 10 | 11 | template 12 | GLM_FUNC_QUALIFIER T fastNormalizeDot(vec const& x, vec const& y) 13 | { 14 | return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y)); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /libs/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_number_precision 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /libs/glm/gtx/optimum_pow.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType pow2(genType const& x) 7 | { 8 | return x * x; 9 | } 10 | 11 | template 12 | GLM_FUNC_QUALIFIER genType pow3(genType const& x) 13 | { 14 | return x * x * x; 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER genType pow4(genType const& x) 19 | { 20 | return (x * x) * (x * x); 21 | } 22 | }//namespace glm 23 | -------------------------------------------------------------------------------- /libs/glm/gtx/orthonormalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_orthonormalize 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> orthonormalize(mat<3, 3, T, Q> const& m) 7 | { 8 | mat<3, 3, T, Q> r = m; 9 | 10 | r[0] = normalize(r[0]); 11 | 12 | T d0 = dot(r[0], r[1]); 13 | r[1] -= r[0] * d0; 14 | r[1] = normalize(r[1]); 15 | 16 | T d1 = dot(r[1], r[2]); 17 | d0 = dot(r[0], r[2]); 18 | r[2] -= r[0] * d0 + r[1] * d1; 19 | r[2] = normalize(r[2]); 20 | 21 | return r; 22 | } 23 | 24 | template 25 | GLM_FUNC_QUALIFIER vec<3, T, Q> orthonormalize(vec<3, T, Q> const& x, vec<3, T, Q> const& y) 26 | { 27 | return normalize(x - y * dot(y, x)); 28 | } 29 | }//namespace glm 30 | -------------------------------------------------------------------------------- /libs/glm/gtx/perpendicular.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType perp(genType const& x, genType const& Normal) 7 | { 8 | return x - proj(x, Normal); 9 | } 10 | }//namespace glm 11 | -------------------------------------------------------------------------------- /libs/glm/gtx/polar_coordinates.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_polar_coordinates 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER vec<3, T, Q> polar 7 | ( 8 | vec<3, T, Q> const& euclidean 9 | ) 10 | { 11 | T const Length(length(euclidean)); 12 | vec<3, T, Q> const tmp(euclidean / Length); 13 | T const xz_dist(sqrt(tmp.x * tmp.x + tmp.z * tmp.z)); 14 | 15 | return vec<3, T, Q>( 16 | asin(tmp.y), // latitude 17 | atan(tmp.x, tmp.z), // longitude 18 | xz_dist); // xz distance 19 | } 20 | 21 | template 22 | GLM_FUNC_QUALIFIER vec<3, T, Q> euclidean 23 | ( 24 | vec<2, T, Q> const& polar 25 | ) 26 | { 27 | T const latitude(polar.x); 28 | T const longitude(polar.y); 29 | 30 | return vec<3, T, Q>( 31 | cos(latitude) * sin(longitude), 32 | sin(latitude), 33 | cos(latitude) * cos(longitude)); 34 | } 35 | 36 | }//namespace glm 37 | -------------------------------------------------------------------------------- /libs/glm/gtx/projection.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType proj(genType const& x, genType const& Normal) 7 | { 8 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; 9 | } 10 | }//namespace glm 11 | -------------------------------------------------------------------------------- /libs/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | 3 | -------------------------------------------------------------------------------- /libs/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_std_based_type 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /libs/glm/gtx/texture.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_texture 2 | 3 | namespace glm 4 | { 5 | template 6 | inline T levels(vec const& Extent) 7 | { 8 | return glm::log2(compMax(Extent)) + static_cast(1); 9 | } 10 | 11 | template 12 | inline T levels(T Extent) 13 | { 14 | return vec<1, T, defaultp>(Extent).x; 15 | } 16 | }//namespace glm 17 | 18 | -------------------------------------------------------------------------------- /libs/glm/gtx/transform.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_transform 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> translate(vec<3, T, Q> const& v) 7 | { 8 | return translate(mat<4, 4, T, Q>(static_cast(1)), v); 9 | } 10 | 11 | template 12 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> rotate(T angle, vec<3, T, Q> const& v) 13 | { 14 | return rotate(mat<4, 4, T, Q>(static_cast(1)), angle, v); 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> scale(vec<3, T, Q> const& v) 19 | { 20 | return scale(mat<4, 4, T, Q>(static_cast(1)), v); 21 | } 22 | 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /libs/glm/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_type_aligned 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /libs/glm/mat2x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat2x2.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double2x2.hpp" 6 | #include "./ext/matrix_double2x2_precision.hpp" 7 | #include "./ext/matrix_float2x2.hpp" 8 | #include "./ext/matrix_float2x2_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /libs/glm/mat2x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat2x3.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double2x3.hpp" 6 | #include "./ext/matrix_double2x3_precision.hpp" 7 | #include "./ext/matrix_float2x3.hpp" 8 | #include "./ext/matrix_float2x3_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /libs/glm/mat2x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat2x4.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double2x4.hpp" 6 | #include "./ext/matrix_double2x4_precision.hpp" 7 | #include "./ext/matrix_float2x4.hpp" 8 | #include "./ext/matrix_float2x4_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /libs/glm/mat3x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat3x2.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double3x2.hpp" 6 | #include "./ext/matrix_double3x2_precision.hpp" 7 | #include "./ext/matrix_float3x2.hpp" 8 | #include "./ext/matrix_float3x2_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /libs/glm/mat3x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat3x3.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double3x3.hpp" 6 | #include "./ext/matrix_double3x3_precision.hpp" 7 | #include "./ext/matrix_float3x3.hpp" 8 | #include "./ext/matrix_float3x3_precision.hpp" 9 | -------------------------------------------------------------------------------- /libs/glm/mat3x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat3x4.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double3x4.hpp" 6 | #include "./ext/matrix_double3x4_precision.hpp" 7 | #include "./ext/matrix_float3x4.hpp" 8 | #include "./ext/matrix_float3x4_precision.hpp" 9 | -------------------------------------------------------------------------------- /libs/glm/mat4x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat4x2.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double4x2.hpp" 6 | #include "./ext/matrix_double4x2_precision.hpp" 7 | #include "./ext/matrix_float4x2.hpp" 8 | #include "./ext/matrix_float4x2_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /libs/glm/mat4x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat4x3.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double4x3.hpp" 6 | #include "./ext/matrix_double4x3_precision.hpp" 7 | #include "./ext/matrix_float4x3.hpp" 8 | #include "./ext/matrix_float4x3_precision.hpp" 9 | -------------------------------------------------------------------------------- /libs/glm/mat4x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat4x4.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double4x4.hpp" 6 | #include "./ext/matrix_double4x4_precision.hpp" 7 | #include "./ext/matrix_float4x4.hpp" 8 | #include "./ext/matrix_float4x4_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /libs/glm/simd/exponential.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/experimental.h 3 | 4 | #pragma once 5 | 6 | #include "platform.h" 7 | 8 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | GLM_FUNC_QUALIFIER glm_f32vec4 glm_vec1_sqrt_lowp(glm_f32vec4 x) 11 | { 12 | return _mm_mul_ss(_mm_rsqrt_ss(x), x); 13 | } 14 | 15 | GLM_FUNC_QUALIFIER glm_f32vec4 glm_vec4_sqrt_lowp(glm_f32vec4 x) 16 | { 17 | return _mm_mul_ps(_mm_rsqrt_ps(x), x); 18 | } 19 | 20 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 21 | -------------------------------------------------------------------------------- /libs/glm/simd/packing.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/packing.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /libs/glm/simd/trigonometric.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/trigonometric.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | -------------------------------------------------------------------------------- /libs/glm/simd/vector_relational.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/vector_relational.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /libs/glm/vec2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec2.hpp 3 | 4 | #pragma once 5 | #include "./ext/vector_bool2.hpp" 6 | #include "./ext/vector_bool2_precision.hpp" 7 | #include "./ext/vector_float2.hpp" 8 | #include "./ext/vector_float2_precision.hpp" 9 | #include "./ext/vector_double2.hpp" 10 | #include "./ext/vector_double2_precision.hpp" 11 | #include "./ext/vector_int2.hpp" 12 | #include "./ext/vector_int2_precision.hpp" 13 | #include "./ext/vector_uint2.hpp" 14 | #include "./ext/vector_uint2_precision.hpp" 15 | -------------------------------------------------------------------------------- /libs/glm/vec3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec3.hpp 3 | 4 | #pragma once 5 | #include "./ext/vector_bool3.hpp" 6 | #include "./ext/vector_bool3_precision.hpp" 7 | #include "./ext/vector_float3.hpp" 8 | #include "./ext/vector_float3_precision.hpp" 9 | #include "./ext/vector_double3.hpp" 10 | #include "./ext/vector_double3_precision.hpp" 11 | #include "./ext/vector_int3.hpp" 12 | #include "./ext/vector_int3_precision.hpp" 13 | #include "./ext/vector_uint3.hpp" 14 | #include "./ext/vector_uint3_precision.hpp" 15 | -------------------------------------------------------------------------------- /libs/glm/vec4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec4.hpp 3 | 4 | #pragma once 5 | #include "./ext/vector_bool4.hpp" 6 | #include "./ext/vector_bool4_precision.hpp" 7 | #include "./ext/vector_float4.hpp" 8 | #include "./ext/vector_float4_precision.hpp" 9 | #include "./ext/vector_double4.hpp" 10 | #include "./ext/vector_double4_precision.hpp" 11 | #include "./ext/vector_int4.hpp" 12 | #include "./ext/vector_int4_precision.hpp" 13 | #include "./ext/vector_uint4.hpp" 14 | #include "./ext/vector_uint4_precision.hpp" 15 | 16 | -------------------------------------------------------------------------------- /libs/gperftools/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/.gitignore -------------------------------------------------------------------------------- /libs/gperftools/.travis.yml: -------------------------------------------------------------------------------- 1 | language: c++ 2 | sudo: required 3 | dist: trusty 4 | script: ./autogen.sh && ./configure && make -j`getconf _NPROCESSORS_ONLN` && make check 5 | -------------------------------------------------------------------------------- /libs/gperftools/AUTHORS: -------------------------------------------------------------------------------- 1 | google-perftools@googlegroups.com 2 | 3 | -------------------------------------------------------------------------------- /libs/gperftools/ChangeLog: -------------------------------------------------------------------------------- 1 | The ChangeLog is auto-generated when releasing. 2 | If you are seeing this, use 'git log' for a detailed list of changes. 3 | -------------------------------------------------------------------------------- /libs/gperftools/MCELL_INFO.txt: -------------------------------------------------------------------------------- 1 | Cloned on March 4, 2020 from https://github.com/gperftools/gperftools, branch master (b7607ee). 2 | Then executed ./autogen.sh. 3 | Does not seem to be actively maintained. 4 | 5 | Build like this: 6 | 7 | cd mcell_tools/work/build_mcell/ 8 | mkdir -p libs/build_gperftools 9 | cd libs/build_gperftools 10 | ../../../../mcell/libs/gperftools/configure --prefix=`pwd`/install_gperftools 11 | make install 12 | -------------------------------------------------------------------------------- /libs/gperftools/autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | autoreconf -i 4 | -------------------------------------------------------------------------------- /libs/gperftools/docs/heap-example1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/heap-example1.png -------------------------------------------------------------------------------- /libs/gperftools/docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Gperftools 5 | 6 | 7 | 8 | 14 | 15 |
16 | Last modified: Thu Feb 2 14:40:47 PST 2012 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /libs/gperftools/docs/overview.dot: -------------------------------------------------------------------------------- 1 | digraph Overview { 2 | node [shape = box] 3 | 4 | {rank=same 5 | T1 [label="Thread Cache"] 6 | Tsep [label="...", shape=plaintext] 7 | Tn [label="Thread Cache"] 8 | T1 -> Tsep -> Tn [style=invis] 9 | } 10 | 11 | C [label="Central\nHeap"] 12 | T1 -> C [dir=both] 13 | Tn -> C [dir=both] 14 | 15 | } 16 | -------------------------------------------------------------------------------- /libs/gperftools/docs/overview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/overview.gif -------------------------------------------------------------------------------- /libs/gperftools/docs/pageheap.dot: -------------------------------------------------------------------------------- 1 | digraph PageHeap { 2 | rankdir=LR 3 | node [shape=box, width=0.3, height=0.3] 4 | nodesep=.05 5 | 6 | heap [shape=record, height=3, label="1 page|2 pages|3 pages|...|128 pages"] 7 | O0 [shape=record, label=""] 8 | O1 [shape=record, label=""] 9 | O2 [shape=record, label="{|}"] 10 | O3 [shape=record, label="{|}"] 11 | O4 [shape=record, label="{||}"] 12 | O5 [shape=record, label="{||}"] 13 | O6 [shape=record, label="{|...|}"] 14 | O7 [shape=record, label="{|...|}"] 15 | sep1 [shape=plaintext, label="..."] 16 | sep2 [shape=plaintext, label="..."] 17 | sep3 [shape=plaintext, label="..."] 18 | sep4 [shape=plaintext, label="..."] 19 | 20 | heap:f0 -> O0 -> O1 -> sep1 21 | heap:f1 -> O2 -> O3 -> sep2 22 | heap:f2 -> O4 -> O5 -> sep3 23 | heap:f128 -> O6 -> O7 -> sep4 24 | 25 | } 26 | -------------------------------------------------------------------------------- /libs/gperftools/docs/pageheap.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/pageheap.gif -------------------------------------------------------------------------------- /libs/gperftools/docs/pprof-test-big.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/pprof-test-big.gif -------------------------------------------------------------------------------- /libs/gperftools/docs/pprof-test.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/pprof-test.gif -------------------------------------------------------------------------------- /libs/gperftools/docs/pprof-vsnprintf-big.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/pprof-vsnprintf-big.gif -------------------------------------------------------------------------------- /libs/gperftools/docs/pprof-vsnprintf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/pprof-vsnprintf.gif -------------------------------------------------------------------------------- /libs/gperftools/docs/pprof.see_also: -------------------------------------------------------------------------------- 1 | [see also] 2 | Further documentation for 3 | .B pprof 4 | is maintained as a web page called 5 | .B cpu_profiler.html 6 | and is likely installed at one of the following locations: 7 | .IP 8 | .B /usr/share/gperftools/cpu_profiler.html 9 | .br 10 | .B /usr/local/share/gperftools/cpu_profiler.html 11 | .PP 12 | -------------------------------------------------------------------------------- /libs/gperftools/docs/spanmap.dot: -------------------------------------------------------------------------------- 1 | digraph SpanMap { 2 | node [shape=box, width=0.3, height=0.3] 3 | nodesep=.05 4 | 5 | map [shape=record, width=6, label="||||||||||"] 6 | S0 [label="a"] 7 | S1 [label="b"] 8 | S2 [label="c"] 9 | S3 [label="d"] 10 | map:f0 -> S0 11 | map:f1 -> S0 12 | map:f2 -> S1 13 | map:f3 -> S2 14 | map:f4 -> S2 15 | map:f5 -> S2 16 | map:f6 -> S2 17 | map:f7 -> S2 18 | map:f8 -> S3 19 | map:f9 -> S3 20 | map:f10 -> S3 21 | 22 | } 23 | -------------------------------------------------------------------------------- /libs/gperftools/docs/spanmap.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/spanmap.gif -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.1024.bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.1024.bytes.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.128.bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.128.bytes.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.131072.bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.131072.bytes.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.16384.bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.16384.bytes.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.2048.bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.2048.bytes.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.256.bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.256.bytes.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.32768.bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.32768.bytes.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.4096.bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.4096.bytes.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.512.bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.512.bytes.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.64.bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.64.bytes.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.65536.bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.65536.bytes.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.8192.bytes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspercpusec.vs.threads.8192.bytes.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspersec.vs.size.1.threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspersec.vs.size.1.threads.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspersec.vs.size.12.threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspersec.vs.size.12.threads.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspersec.vs.size.16.threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspersec.vs.size.16.threads.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspersec.vs.size.2.threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspersec.vs.size.2.threads.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspersec.vs.size.20.threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspersec.vs.size.20.threads.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspersec.vs.size.3.threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspersec.vs.size.3.threads.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspersec.vs.size.4.threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspersec.vs.size.4.threads.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspersec.vs.size.5.threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspersec.vs.size.5.threads.png -------------------------------------------------------------------------------- /libs/gperftools/docs/tcmalloc-opspersec.vs.size.8.threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/tcmalloc-opspersec.vs.size.8.threads.png -------------------------------------------------------------------------------- /libs/gperftools/docs/threadheap.dot: -------------------------------------------------------------------------------- 1 | digraph ThreadHeap { 2 | rankdir=LR 3 | node [shape=box, width=0.3, height=0.3] 4 | nodesep=.05 5 | 6 | heap [shape=record, height=2, label="class 0|class 1|class 2|..."] 7 | O0 [label=""] 8 | O1 [label=""] 9 | O2 [label=""] 10 | O3 [label=""] 11 | O4 [label=""] 12 | O5 [label=""] 13 | sep1 [shape=plaintext, label="..."] 14 | sep2 [shape=plaintext, label="..."] 15 | sep3 [shape=plaintext, label="..."] 16 | 17 | heap:f0 -> O0 -> O1 -> sep1 18 | heap:f1 -> O2 -> O3 -> sep2 19 | heap:f2 -> O4 -> O5 -> sep3 20 | 21 | } 22 | -------------------------------------------------------------------------------- /libs/gperftools/docs/threadheap.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/gperftools/docs/threadheap.gif -------------------------------------------------------------------------------- /libs/gperftools/m4/ac_have_attribute.m4: -------------------------------------------------------------------------------- 1 | AC_DEFUN([AX_C___ATTRIBUTE__], [ 2 | AC_MSG_CHECKING(for __attribute__) 3 | AC_CACHE_VAL(ac_cv___attribute__, [ 4 | AC_TRY_COMPILE( 5 | [#include 6 | static void foo(void) __attribute__ ((unused)); 7 | void foo(void) { exit(1); }], 8 | [], 9 | ac_cv___attribute__=yes, 10 | ac_cv___attribute__=no 11 | )]) 12 | if test "$ac_cv___attribute__" = "yes"; then 13 | AC_DEFINE(HAVE___ATTRIBUTE__, 1, [define if your compiler has __attribute__]) 14 | fi 15 | AC_MSG_RESULT($ac_cv___attribute__) 16 | ]) 17 | -------------------------------------------------------------------------------- /libs/gperftools/m4/install_prefix.m4: -------------------------------------------------------------------------------- 1 | AC_DEFUN([AC_INSTALL_PREFIX], 2 | [ac_cv_install_prefix="$prefix"; 3 | if test x"$ac_cv_install_prefix" = x"NONE" ; then 4 | ac_cv_install_prefix="$ac_default_prefix"; 5 | fi 6 | AC_DEFINE_UNQUOTED(INSTALL_PREFIX, "$ac_cv_install_prefix", 7 | [prefix where we look for installed files]) 8 | ]) 9 | -------------------------------------------------------------------------------- /libs/gperftools/m4/ltversion.m4: -------------------------------------------------------------------------------- 1 | # ltversion.m4 -- version numbers -*- Autoconf -*- 2 | # 3 | # Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. 4 | # Written by Scott James Remnant, 2004 5 | # 6 | # This file is free software; the Free Software Foundation gives 7 | # unlimited permission to copy and/or distribute it, with or without 8 | # modifications, as long as this notice is preserved. 9 | 10 | # @configure_input@ 11 | 12 | # serial 4179 ltversion.m4 13 | # This file is part of GNU Libtool 14 | 15 | m4_define([LT_PACKAGE_VERSION], [2.4.6]) 16 | m4_define([LT_PACKAGE_REVISION], [2.4.6]) 17 | 18 | AC_DEFUN([LTVERSION_VERSION], 19 | [macro_version='2.4.6' 20 | macro_revision='2.4.6' 21 | _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) 22 | _LT_DECL(, macro_revision, 0) 23 | ]) 24 | -------------------------------------------------------------------------------- /libs/gperftools/m4/namespaces.m4: -------------------------------------------------------------------------------- 1 | # Checks whether the compiler implements namespaces 2 | AC_DEFUN([AC_CXX_NAMESPACES], 3 | [AC_CACHE_CHECK(whether the compiler implements namespaces, 4 | ac_cv_cxx_namespaces, 5 | [AC_LANG_SAVE 6 | AC_LANG_CPLUSPLUS 7 | AC_TRY_COMPILE([namespace Outer { 8 | namespace Inner { int i = 0; }}], 9 | [using namespace Outer::Inner; return i;], 10 | ac_cv_cxx_namespaces=yes, 11 | ac_cv_cxx_namespaces=no) 12 | AC_LANG_RESTORE]) 13 | if test "$ac_cv_cxx_namespaces" = yes; then 14 | AC_DEFINE(HAVE_NAMESPACES, 1, [define if the compiler implements namespaces]) 15 | fi]) 16 | -------------------------------------------------------------------------------- /libs/gperftools/m4/program_invocation_name.m4: -------------------------------------------------------------------------------- 1 | # We need to be careful to avoid having the reference to 2 | # program_invocation_name optimized out. We do that by 3 | # returning the value. 4 | 5 | AC_DEFUN([AC_PROGRAM_INVOCATION_NAME], 6 | [AC_CACHE_CHECK( 7 | for program_invocation_name, 8 | ac_cv_have_program_invocation_name, 9 | AC_TRY_LINK([extern char* program_invocation_name;], 10 | [return *program_invocation_name;], 11 | [ac_cv_have_program_invocation_name=yes], 12 | [ac_cv_have_program_invocation_name=no]) 13 | ) 14 | if test "$ac_cv_have_program_invocation_name" = "yes"; then 15 | AC_DEFINE(HAVE_PROGRAM_INVOCATION_NAME, 1, 16 | [define if libc has program_invocation_name]) 17 | fi 18 | ]) 19 | 20 | -------------------------------------------------------------------------------- /libs/gperftools/m4/stl_namespace.m4: -------------------------------------------------------------------------------- 1 | # We check what namespace stl code like vector expects to be executed in 2 | 3 | AC_DEFUN([AC_CXX_STL_NAMESPACE], 4 | [AC_CACHE_CHECK( 5 | what namespace STL code is in, 6 | ac_cv_cxx_stl_namespace, 7 | [AC_REQUIRE([AC_CXX_NAMESPACES]) 8 | AC_LANG_SAVE 9 | AC_LANG_CPLUSPLUS 10 | AC_TRY_COMPILE([#include ], 11 | [vector t; return 0;], 12 | ac_cv_cxx_stl_namespace=none) 13 | AC_TRY_COMPILE([#include ], 14 | [std::vector t; return 0;], 15 | ac_cv_cxx_stl_namespace=std) 16 | AC_LANG_RESTORE]) 17 | if test "$ac_cv_cxx_stl_namespace" = none; then 18 | AC_DEFINE(STL_NAMESPACE,, 19 | [the namespace where STL code like vector<> is defined]) 20 | fi 21 | if test "$ac_cv_cxx_stl_namespace" = std; then 22 | AC_DEFINE(STL_NAMESPACE,std, 23 | [the namespace where STL code like vector<> is defined]) 24 | fi 25 | ]) 26 | -------------------------------------------------------------------------------- /libs/gperftools/packages/deb/README: -------------------------------------------------------------------------------- 1 | The list of files here isn't complete. For a step-by-step guide on 2 | how to set this package up correctly, check out 3 | http://www.debian.org/doc/maint-guide/ 4 | 5 | Most of the files that are in this directory are boilerplate. 6 | However, you may need to change the list of binary-arch dependencies 7 | in 'rules'. 8 | -------------------------------------------------------------------------------- /libs/gperftools/packages/deb/compat: -------------------------------------------------------------------------------- 1 | 4 2 | -------------------------------------------------------------------------------- /libs/gperftools/packages/deb/libgperftools-dev.dirs: -------------------------------------------------------------------------------- 1 | usr/lib 2 | usr/lib/pkgconfig 3 | usr/include 4 | usr/include/google 5 | usr/include/gperftools 6 | -------------------------------------------------------------------------------- /libs/gperftools/packages/deb/libgperftools-dev.install: -------------------------------------------------------------------------------- 1 | usr/include/google/* 2 | usr/include/gperftools/* 3 | usr/lib/lib*.so 4 | usr/lib/lib*.a 5 | usr/lib/*.la 6 | usr/lib/pkgconfig/*.pc 7 | debian/tmp/usr/include/google/* 8 | debian/tmp/usr/include/gperftools/* 9 | debian/tmp/usr/lib/lib*.so 10 | debian/tmp/usr/lib/lib*.a 11 | debian/tmp/usr/lib/*.la 12 | debian/tmp/usr/lib/pkgconfig/*.pc 13 | -------------------------------------------------------------------------------- /libs/gperftools/packages/deb/libgperftools0.dirs: -------------------------------------------------------------------------------- 1 | usr/lib 2 | usr/bin 3 | -------------------------------------------------------------------------------- /libs/gperftools/packages/deb/libgperftools0.install: -------------------------------------------------------------------------------- 1 | usr/lib/lib*.so.* 2 | usr/bin/pprof* 3 | debian/tmp/usr/lib/lib*.so.* 4 | debian/tmp/usr/bin/pprof* 5 | -------------------------------------------------------------------------------- /libs/gperftools/packages/deb/libgperftools0.manpages: -------------------------------------------------------------------------------- 1 | docs/pprof.1 2 | -------------------------------------------------------------------------------- /libs/gperftools/vsprojects/addr2line-pdb/addr2line-pdb.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | 14 | 15 | Source Files 16 | 17 | 18 | -------------------------------------------------------------------------------- /libs/gperftools/vsprojects/nm-pdb/nm-pdb.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | 14 | 15 | Source Files 16 | 17 | 18 | -------------------------------------------------------------------------------- /libs/jsoncpp/.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: LLVM 2 | DerivePointerAlignment: false 3 | PointerAlignment: Left 4 | 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/.clang-tidy: -------------------------------------------------------------------------------- 1 | --- 2 | Checks: 'google-readability-casting,modernize-deprecated-headers,modernize-loop-convert,modernize-use-auto,modernize-use-default-member-init,modernize-use-using,readability-else-after-return,readability-redundant-member-init,readability-redundant-string-cstr' 3 | WarningsAsErrors: '' 4 | HeaderFilterRegex: '' 5 | AnalyzeTemporaryDtors: false 6 | FormatStyle: none 7 | CheckOptions: 8 | - key: modernize-use-using.IgnoreMacros 9 | value: '0' 10 | ... 11 | 12 | -------------------------------------------------------------------------------- /libs/jsoncpp/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.h text 3 | *.cpp text 4 | *.json text 5 | *.in text 6 | *.sh eol=lf 7 | *.bat eol=crlf 8 | *.vcproj eol=crlf 9 | *.vcxproj eol=crlf 10 | *.sln eol=crlf 11 | devtools/agent_vm* eol=crlf 12 | -------------------------------------------------------------------------------- /libs/jsoncpp/.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Desktop (please complete the following information):** 21 | - OS: [e.g. iOS] 22 | - Meson version 23 | - Ninja version 24 | 25 | **Additional context** 26 | Add any other context about the problem here. 27 | -------------------------------------------------------------------------------- /libs/jsoncpp/.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /libs/jsoncpp/.gitignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | /build-*/ 3 | *.pyc 4 | *.swp 5 | *.actual 6 | *.actual-rewrite 7 | *.process-output 8 | *.rewrite 9 | /bin/ 10 | /libs/ 11 | /doc/doxyfile 12 | /dist/ 13 | 14 | # MSVC project files: 15 | *.sln 16 | *.vcxproj 17 | *.filters 18 | *.user 19 | *.sdf 20 | *.opensdf 21 | *.suo 22 | 23 | # MSVC build files: 24 | *.lib 25 | *.obj 26 | *.tlog/ 27 | *.pdb 28 | 29 | # CMake-generated files: 30 | CMakeFiles/ 31 | *.cmake 32 | /pkg-config/jsoncpp.pc 33 | jsoncpp_lib_static.dir/ 34 | 35 | # In case someone runs cmake in the root-dir: 36 | /CMakeCache.txt 37 | /Makefile 38 | /include/Makefile 39 | /src/Makefile 40 | /src/jsontestrunner/Makefile 41 | /src/jsontestrunner/jsontestrunner_exe 42 | /src/lib_json/Makefile 43 | /src/test_lib_json/Makefile 44 | /src/test_lib_json/jsoncpp_test 45 | *.a 46 | 47 | # eclipse project files 48 | .project 49 | .cproject 50 | /.settings/ 51 | 52 | # DS_Store 53 | .DS_Store 54 | -------------------------------------------------------------------------------- /libs/jsoncpp/.travis_scripts/run-clang-format.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 4 | python $DIR/run-clang-format.py -r $DIR/../src/**/ $DIR/../include/**/ -------------------------------------------------------------------------------- /libs/jsoncpp/.travis_scripts/travis.before_install.linux.sh: -------------------------------------------------------------------------------- 1 | set -vex 2 | 3 | # Preinstalled versions of python are dependent on which Ubuntu distribution 4 | # you are running. The below version needs to be updated whenever we roll 5 | # the Ubuntu version used in Travis. 6 | # https://docs.travis-ci.com/user/languages/python/ 7 | 8 | pyenv global 3.7.1 9 | -------------------------------------------------------------------------------- /libs/jsoncpp/.travis_scripts/travis.before_install.osx.sh: -------------------------------------------------------------------------------- 1 | # NOTHING TO DO HERE 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/.travis_scripts/travis.install.linux.sh: -------------------------------------------------------------------------------- 1 | set -vex 2 | 3 | wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip 4 | unzip -q ninja-linux.zip -d build 5 | 6 | pip3 install meson 7 | echo ${PATH} 8 | ls /usr/local 9 | ls /usr/local/bin 10 | export PATH="${PWD}"/build:/usr/local/bin:/usr/bin:${PATH} 11 | -------------------------------------------------------------------------------- /libs/jsoncpp/.travis_scripts/travis.install.osx.sh: -------------------------------------------------------------------------------- 1 | # NOTHING TO DO HERE 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/MCELL_INFO.txt: -------------------------------------------------------------------------------- 1 | Cloned on March 16, 2020 from https://github.com/open-source-parsers/jsoncpp, branch master (3beb37e). 2 | 3 | Commented out deprecation warning: 4 | 5 | class /*JSONCPP_DEPRECATED( 6 | "Use CharReader and CharReaderBuilder instead.")*/ JSON_API Reader { -------------------------------------------------------------------------------- /libs/jsoncpp/devtools/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2010 Baptiste Lepilleur and The JsonCpp Authors 2 | # Distributed under MIT license, or public domain if desired and 3 | # recognized in your jurisdiction. 4 | # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE 5 | 6 | # module 7 | -------------------------------------------------------------------------------- /libs/jsoncpp/devtools/agent_vmxp.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmake_variants" : [ 3 | {"name": "generator", 4 | "generators": [ 5 | {"generator": [ 6 | "Visual Studio 6", 7 | "Visual Studio 7", 8 | "Visual Studio 8 2005" 9 | ] 10 | } 11 | ] 12 | }, 13 | {"name": "shared_dll", 14 | "variables": [ 15 | ["BUILD_SHARED_LIBS=true"], 16 | ["BUILD_SHARED_LIBS=false"] 17 | ] 18 | }, 19 | {"name": "build_type", 20 | "build_types": [ 21 | "debug", 22 | "release" 23 | ] 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /libs/jsoncpp/doc/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 14 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /libs/jsoncpp/doc/readme.txt: -------------------------------------------------------------------------------- 1 | The documentation is generated using doxygen (http://www.doxygen.org). 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/doc/roadmap.dox: -------------------------------------------------------------------------------- 1 | /*! \page roadmap JsonCpp roadmap 2 | Moved to: https://github.com/open-source-parsers/jsoncpp/wiki/Roadmap 3 | */ 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/example/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | #vim: et ts =4 sts = 4 sw = 4 tw = 0 2 | cmake_minimum_required(VERSION 3.1) 3 | 4 | set(EXAMPLES 5 | readFromString 6 | readFromStream 7 | stringWrite 8 | streamWrite 9 | ) 10 | add_definitions(-D_GLIBCXX_USE_CXX11_ABI) 11 | set_property(DIRECTORY PROPERTY COMPILE_OPTIONS ${EXTRA_CXX_FLAGS}) 12 | 13 | if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") 14 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra ") 15 | else() 16 | add_definitions( 17 | -D_SCL_SECURE_NO_WARNINGS 18 | -D_CRT_SECURE_NO_WARNINGS 19 | -D_WIN32_WINNT=0x601 20 | -D_WINSOCK_DEPRECATED_NO_WARNINGS 21 | ) 22 | endif() 23 | 24 | foreach(example ${EXAMPLES}) 25 | add_executable(${example} ${example}/${example}.cpp) 26 | target_include_directories(${example} PUBLIC ${CMAKE_SOURCE_DIR}/include) 27 | target_link_libraries(${example} jsoncpp_lib) 28 | endforeach() 29 | 30 | add_custom_target(examples ALL DEPENDS ${EXAMPLES}) 31 | -------------------------------------------------------------------------------- /libs/jsoncpp/example/readFromStream/errorFormat.json: -------------------------------------------------------------------------------- 1 | { 2 | 1: "value" 3 | } -------------------------------------------------------------------------------- /libs/jsoncpp/example/readFromStream/readFromStream.cpp: -------------------------------------------------------------------------------- 1 | #include "json/json.h" 2 | #include 3 | #include 4 | /** \brief Parse from stream, collect comments and capture error info. 5 | * Example Usage: 6 | * $g++ readFromStream.cpp -ljsoncpp -std=c++11 -o readFromStream 7 | * $./readFromStream 8 | * // comment head 9 | * { 10 | * // comment before 11 | * "key" : "value" 12 | * } 13 | * // comment after 14 | * // comment tail 15 | */ 16 | int main(int argc, char* argv[]) { 17 | Json::Value root; 18 | std::ifstream ifs; 19 | ifs.open(argv[1]); 20 | 21 | Json::CharReaderBuilder builder; 22 | builder["collectComments"] = true; 23 | JSONCPP_STRING errs; 24 | if (!parseFromStream(builder, ifs, &root, &errs)) { 25 | std::cout << errs << std::endl; 26 | return EXIT_FAILURE; 27 | } 28 | std::cout << root << std::endl; 29 | return EXIT_SUCCESS; 30 | } 31 | -------------------------------------------------------------------------------- /libs/jsoncpp/example/readFromStream/withComment.json: -------------------------------------------------------------------------------- 1 | // comment head 2 | { 3 | // comment before 4 | "key" : "value" 5 | // comment after 6 | }// comment tail 7 | -------------------------------------------------------------------------------- /libs/jsoncpp/example/streamWrite/streamWrite.cpp: -------------------------------------------------------------------------------- 1 | #include "json/json.h" 2 | #include 3 | /** \brief Write the Value object to a stream. 4 | * Example Usage: 5 | * $g++ streamWrite.cpp -ljsoncpp -std=c++11 -o streamWrite 6 | * $./streamWrite 7 | * { 8 | * "Age" : 20, 9 | * "Name" : "robin" 10 | * } 11 | */ 12 | int main() { 13 | Json::Value root; 14 | Json::StreamWriterBuilder builder; 15 | const std::unique_ptr writer(builder.newStreamWriter()); 16 | 17 | root["Name"] = "robin"; 18 | root["Age"] = 20; 19 | writer->write(root, &std::cout); 20 | 21 | return EXIT_SUCCESS; 22 | } 23 | -------------------------------------------------------------------------------- /libs/jsoncpp/example/stringWrite/stringWrite.cpp: -------------------------------------------------------------------------------- 1 | #include "json/json.h" 2 | #include 3 | /** \brief Write a Value object to a string. 4 | * Example Usage: 5 | * $g++ stringWrite.cpp -ljsoncpp -std=c++11 -o stringWrite 6 | * $./stringWrite 7 | * { 8 | * "action" : "run", 9 | * "data" : 10 | * { 11 | * "number" : 1 12 | * } 13 | * } 14 | */ 15 | int main() { 16 | Json::Value root; 17 | Json::Value data; 18 | constexpr bool shouldUseOldWay = false; 19 | root["action"] = "run"; 20 | data["number"] = 1; 21 | root["data"] = data; 22 | 23 | if (shouldUseOldWay) { 24 | Json::FastWriter writer; 25 | const std::string json_file = writer.write(root); 26 | std::cout << json_file << std::endl; 27 | } else { 28 | Json::StreamWriterBuilder builder; 29 | const std::string json_file = Json::writeString(builder, root); 30 | std::cout << json_file << std::endl; 31 | } 32 | return EXIT_SUCCESS; 33 | } 34 | -------------------------------------------------------------------------------- /libs/jsoncpp/include/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB INCLUDE_FILES "json/*.h") 2 | install(FILES 3 | ${INCLUDE_FILES} 4 | DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/json) 5 | 6 | -------------------------------------------------------------------------------- /libs/jsoncpp/include/json/json.h: -------------------------------------------------------------------------------- 1 | // Copyright 2007-2010 Baptiste Lepilleur and The JsonCpp Authors 2 | // Distributed under MIT license, or public domain if desired and 3 | // recognized in your jurisdiction. 4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE 5 | 6 | #ifndef JSON_JSON_H_INCLUDED 7 | #define JSON_JSON_H_INCLUDED 8 | 9 | #include "config.h" 10 | #include "json_features.h" 11 | #include "reader.h" 12 | #include "value.h" 13 | #include "writer.h" 14 | 15 | #endif // JSON_JSON_H_INCLUDED 16 | -------------------------------------------------------------------------------- /libs/jsoncpp/meson_options.txt: -------------------------------------------------------------------------------- 1 | option( 2 | 'tests', 3 | type : 'boolean', 4 | value : true, 5 | description : 'Enable building tests') 6 | -------------------------------------------------------------------------------- /libs/jsoncpp/pkg-config/jsoncpp.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=@CMAKE_INSTALL_PREFIX@ 3 | libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ 4 | includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ 5 | 6 | Name: jsoncpp 7 | Description: A C++ library for interacting with JSON 8 | Version: @JSONCPP_VERSION@ 9 | URL: https://github.com/open-source-parsers/jsoncpp 10 | Libs: -L${libdir} -ljsoncpp 11 | Cflags: -I${includedir} 12 | -------------------------------------------------------------------------------- /libs/jsoncpp/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(lib_json) 2 | if(JSONCPP_WITH_TESTS) 3 | #add_subdirectory(jsontestrunner) 4 | add_subdirectory(test_lib_json) 5 | endif() 6 | -------------------------------------------------------------------------------- /libs/jsoncpp/src/test_lib_json/fuzz.dict: -------------------------------------------------------------------------------- 1 | # 2 | # AFL dictionary for JSON 3 | # ----------------------- 4 | # 5 | # Just the very basics. 6 | # 7 | # Inspired by a dictionary by Jakub Wilk 8 | # 9 | # https://github.com/rc0r/afl-fuzz/blob/master/dictionaries/json.dict 10 | # 11 | 12 | "0" 13 | ",0" 14 | ":0" 15 | "0:" 16 | "-1.2e+3" 17 | 18 | "true" 19 | "false" 20 | "null" 21 | 22 | "\"\"" 23 | ",\"\"" 24 | ":\"\"" 25 | "\"\":" 26 | 27 | "{}" 28 | ",{}" 29 | ":{}" 30 | "{\"\":0}" 31 | "{{}}" 32 | 33 | "[]" 34 | ",[]" 35 | ":[]" 36 | "[0]" 37 | "[[]]" 38 | 39 | "''" 40 | "\\" 41 | "\\b" 42 | "\\f" 43 | "\\n" 44 | "\\r" 45 | "\\t" 46 | "\\u0000" 47 | "\\x00" 48 | "\\0" 49 | "\\uD800\\uDC00" 50 | "\\uDBFF\\uDFFF" 51 | 52 | "\"\":0" 53 | "//" 54 | "/**/" 55 | -------------------------------------------------------------------------------- /libs/jsoncpp/src/test_lib_json/fuzz.h: -------------------------------------------------------------------------------- 1 | // Copyright 2007-2010 The JsonCpp Authors 2 | // Distributed under MIT license, or public domain if desired and 3 | // recognized in your jurisdiction. 4 | // See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE 5 | 6 | #ifndef FUZZ_H_INCLUDED 7 | #define FUZZ_H_INCLUDED 8 | 9 | #include 10 | #include 11 | 12 | extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size); 13 | 14 | #endif // ifndef FUZZ_H_INCLUDED 15 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/cleantests.py: -------------------------------------------------------------------------------- 1 | # Copyright 2007 Baptiste Lepilleur and The JsonCpp Authors 2 | # Distributed under MIT license, or public domain if desired and 3 | # recognized in your jurisdiction. 4 | # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE 5 | 6 | """Removes all files created during testing.""" 7 | 8 | import glob 9 | import os 10 | 11 | paths = [] 12 | for pattern in [ '*.actual', '*.actual-rewrite', '*.rewrite', '*.process-output' ]: 13 | paths += glob.glob('data/' + pattern) 14 | 15 | for path in paths: 16 | os.unlink(path) 17 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/fail_test_array_01.json: -------------------------------------------------------------------------------- 1 | [ 1 2 3] 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/fail_test_array_02.json: -------------------------------------------------------------------------------- 1 | [1,,] 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/fail_test_object_01.json: -------------------------------------------------------------------------------- 1 | { "count" : 1234,, } 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_array_01.expected: -------------------------------------------------------------------------------- 1 | .=[] 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_array_01.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_array_02.expected: -------------------------------------------------------------------------------- 1 | .=[] 2 | .[0]=1 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_array_02.json: -------------------------------------------------------------------------------- 1 | [1] 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_array_03.expected: -------------------------------------------------------------------------------- 1 | .=[] 2 | .[0]=1 3 | .[1]=2 4 | .[2]=3 5 | .[3]=4 6 | .[4]=5 7 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_array_03.json: -------------------------------------------------------------------------------- 1 | [ 1, 2 , 3,4,5] 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_array_04.expected: -------------------------------------------------------------------------------- 1 | .=[] 2 | .[0]=1 3 | .[1]="abc" 4 | .[2]=12.3 5 | .[3]=-4 6 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_array_04.json: -------------------------------------------------------------------------------- 1 | [1, "abc" , 12.3, -4] 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_array_05.json: -------------------------------------------------------------------------------- 1 | [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, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_array_06.expected: -------------------------------------------------------------------------------- 1 | .=[] 2 | .[0]="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 3 | .[1]="bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" 4 | .[2]="ccccccccccccccccccccccc" 5 | .[3]="dddddddddddddddddddddddddddddddddddddddddddddddddddd" 6 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_array_06.json: -------------------------------------------------------------------------------- 1 | [ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 2 | "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", 3 | "ccccccccccccccccccccccc", 4 | "dddddddddddddddddddddddddddddddddddddddddddddddddddd" ] -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_01.expected: -------------------------------------------------------------------------------- 1 | .=123456789 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_01.json: -------------------------------------------------------------------------------- 1 | 0123456789 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_02.expected: -------------------------------------------------------------------------------- 1 | .=-123456789 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_02.json: -------------------------------------------------------------------------------- 1 | -0123456789 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_03.expected: -------------------------------------------------------------------------------- 1 | .=1.2345678 2 | 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_03.json: -------------------------------------------------------------------------------- 1 | 1.2345678 2 | 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_04.expected: -------------------------------------------------------------------------------- 1 | .="abcdef" 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_04.json: -------------------------------------------------------------------------------- 1 | "abcdef" 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_05.expected: -------------------------------------------------------------------------------- 1 | .=null 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_05.json: -------------------------------------------------------------------------------- 1 | null 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_06.expected: -------------------------------------------------------------------------------- 1 | .=true 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_06.json: -------------------------------------------------------------------------------- 1 | true 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_07.expected: -------------------------------------------------------------------------------- 1 | .=false 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_07.json: -------------------------------------------------------------------------------- 1 | false 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_08.expected: -------------------------------------------------------------------------------- 1 | // C++ style comment 2 | .=null 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_08.json: -------------------------------------------------------------------------------- 1 | // C++ style comment 2 | null 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_09.expected: -------------------------------------------------------------------------------- 1 | /* C style comment 2 | */ 3 | .=null 4 | 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_basic_09.json: -------------------------------------------------------------------------------- 1 | /* C style comment 2 | */ 3 | null 4 | 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_comment_00.expected: -------------------------------------------------------------------------------- 1 | // Comment for array 2 | .=[] 3 | // Comment within array 4 | .[0]="one-element" 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_comment_00.json: -------------------------------------------------------------------------------- 1 | // Comment for array 2 | [ 3 | // Comment within array 4 | "one-element" 5 | ] 6 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_comment_01.expected: -------------------------------------------------------------------------------- 1 | .={} 2 | // Comment for array 3 | .test=[] 4 | // Comment within array 5 | .test[0]={} 6 | .test[0].a="aaa" 7 | .test[1]={} 8 | .test[1].b="bbb" 9 | .test[2]={} 10 | .test[2].c="ccc" 11 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_comment_01.json: -------------------------------------------------------------------------------- 1 | { 2 | "test": 3 | // Comment for array 4 | [ 5 | // Comment within array 6 | { "a" : "aaa" }, // Comment for a 7 | { "b" : "bbb" }, // Comment for b 8 | { "c" : "ccc" } // Comment for c 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_comment_02.expected: -------------------------------------------------------------------------------- 1 | .={} 2 | /* C-style comment 3 | 4 | C-style-2 comment */ 5 | .c-test={} 6 | .c-test.a=1 7 | /* Internal comment c-style */ 8 | .c-test.b=2 9 | // C++-style comment 10 | .cpp-test={} 11 | // Multiline comment cpp-style 12 | // Second line 13 | .cpp-test.c=3 14 | // Comment before double 15 | .cpp-test.d=4.1 16 | // Comment before string 17 | .cpp-test.e="e-string" 18 | // Comment before true 19 | .cpp-test.f=true 20 | // Comment before false 21 | .cpp-test.g=false 22 | // Comment before null 23 | .cpp-test.h=null 24 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_comment_02.json: -------------------------------------------------------------------------------- 1 | { 2 | /* C-style comment 3 | 4 | C-style-2 comment */ 5 | "c-test" : { 6 | "a" : 1, 7 | /* Internal comment c-style */ 8 | "b" : 2 9 | }, 10 | // C++-style comment 11 | "cpp-test" : { 12 | // Multiline comment cpp-style 13 | // Second line 14 | "c" : 3, 15 | // Comment before double 16 | "d" : 4.1, 17 | // Comment before string 18 | "e" : "e-string", 19 | // Comment before true 20 | "f" : true, 21 | // Comment before false 22 | "g" : false, 23 | // Comment before null 24 | "h" : null 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_complex_01.expected: -------------------------------------------------------------------------------- 1 | .={} 2 | .attribute=[] 3 | .attribute[0]="random" 4 | .attribute[1]="short" 5 | .attribute[2]="bold" 6 | .attribute[3]=12 7 | .attribute[4]={} 8 | .attribute[4].height=7 9 | .attribute[4].width=64 10 | .count=1234 11 | .name={} 12 | .name.aka="T.E.S.T." 13 | .name.id=123987 14 | .test={} 15 | .test.1={} 16 | .test.1.2={} 17 | .test.1.2.3={} 18 | .test.1.2.3.coord=[] 19 | .test.1.2.3.coord[0]=1 20 | .test.1.2.3.coord[1]=2 21 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_complex_01.json: -------------------------------------------------------------------------------- 1 | { 2 | "count" : 1234, 3 | "name" : { "aka" : "T.E.S.T.", "id" : 123987 }, 4 | "attribute" : [ 5 | "random", 6 | "short", 7 | "bold", 8 | 12, 9 | { "height" : 7, "width" : 64 } 10 | ], 11 | "test": { "1" : 12 | { "2" : 13 | { "3" : { "coord" : [ 1,2] } 14 | } 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_01.expected: -------------------------------------------------------------------------------- 1 | // Max signed integer 2 | .=2147483647 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_01.json: -------------------------------------------------------------------------------- 1 | // Max signed integer 2 | 2147483647 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_02.expected: -------------------------------------------------------------------------------- 1 | // Min signed integer 2 | .=-2147483648 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_02.json: -------------------------------------------------------------------------------- 1 | // Min signed integer 2 | -2147483648 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_03.expected: -------------------------------------------------------------------------------- 1 | // Max unsigned integer 2 | .=4294967295 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_03.json: -------------------------------------------------------------------------------- 1 | // Max unsigned integer 2 | 4294967295 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_04.expected: -------------------------------------------------------------------------------- 1 | // Min unsigned integer 2 | .=0 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_04.json: -------------------------------------------------------------------------------- 1 | // Min unsigned integer 2 | 0 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_05.expected: -------------------------------------------------------------------------------- 1 | .=1 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_05.json: -------------------------------------------------------------------------------- 1 | 1 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_06_64bits.expected: -------------------------------------------------------------------------------- 1 | .=9223372036854775808 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_06_64bits.json: -------------------------------------------------------------------------------- 1 | 9223372036854775808 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_07_64bits.expected: -------------------------------------------------------------------------------- 1 | .=-9223372036854775808 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_07_64bits.json: -------------------------------------------------------------------------------- 1 | -9223372036854775808 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_08_64bits.expected: -------------------------------------------------------------------------------- 1 | .=18446744073709551615 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_integer_08_64bits.json: -------------------------------------------------------------------------------- 1 | 18446744073709551615 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_object_01.expected: -------------------------------------------------------------------------------- 1 | .={} 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_object_01.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_object_02.expected: -------------------------------------------------------------------------------- 1 | .={} 2 | .count=1234 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_object_02.json: -------------------------------------------------------------------------------- 1 | { "count" : 1234 } 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_object_03.expected: -------------------------------------------------------------------------------- 1 | .={} 2 | .attribute="random" 3 | .count=1234 4 | .name="test" 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_object_03.json: -------------------------------------------------------------------------------- 1 | { 2 | "count" : 1234, 3 | "name" : "test", 4 | "attribute" : "random" 5 | } 6 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_object_04.expected: -------------------------------------------------------------------------------- 1 | .={} 2 | .=1234 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_object_04.json: -------------------------------------------------------------------------------- 1 | { 2 | "" : 1234 3 | } 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_preserve_comment_01.expected: -------------------------------------------------------------------------------- 1 | /* A comment 2 | at the beginning of the file. 3 | */ 4 | .={} 5 | .first=1 6 | /* Comment before 'second' 7 | */ 8 | .second=2 9 | /* A comment at 10 | the end of the file. 11 | */ 12 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_preserve_comment_01.json: -------------------------------------------------------------------------------- 1 | /* A comment 2 | at the beginning of the file. 3 | */ 4 | { 5 | "first" : 1, // comment after 'first' on the same line 6 | 7 | /* Comment before 'second' 8 | */ 9 | "second" : 2 10 | } 11 | 12 | /* A comment at 13 | the end of the file. 14 | */ 15 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_01.expected: -------------------------------------------------------------------------------- 1 | // 2^33 => out of integer range, switch to double 2 | .=8589934592 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_01.json: -------------------------------------------------------------------------------- 1 | // 2^33 => out of integer range, switch to double 2 | 8589934592 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_02.expected: -------------------------------------------------------------------------------- 1 | // -2^32 => out of signed integer range, switch to double 2 | .=-4294967295 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_02.json: -------------------------------------------------------------------------------- 1 | // -2^32 => out of signed integer range, switch to double 2 | -4294967295 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_03.expected: -------------------------------------------------------------------------------- 1 | // -2^32 => out of signed integer range, switch to double 2 | .=-4294967295 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_03.json: -------------------------------------------------------------------------------- 1 | // -2^32 => out of signed integer range, switch to double 2 | -4294967295 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_04.expected: -------------------------------------------------------------------------------- 1 | // 1.2345678 2 | .=1.2345678 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_04.json: -------------------------------------------------------------------------------- 1 | // 1.2345678 2 | 12345678e-7 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_05.expected: -------------------------------------------------------------------------------- 1 | // 1234567.8 2 | .=1234567.8 3 | 4 | 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_05.json: -------------------------------------------------------------------------------- 1 | // 1234567.8 2 | 0.12345678e7 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_06.expected: -------------------------------------------------------------------------------- 1 | // -1.2345678 2 | .=-1.2345678 3 | 4 | 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_06.json: -------------------------------------------------------------------------------- 1 | // -1.2345678 2 | -12345678e-7 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_07.expected: -------------------------------------------------------------------------------- 1 | // -1234567.8 2 | .=-1234567.8 3 | 4 | 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_07.json: -------------------------------------------------------------------------------- 1 | // -1234567.8 2 | -0.12345678e7 3 | 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_08.expected: -------------------------------------------------------------------------------- 1 | // Out of 32-bit integer range, switch to double in 32-bit mode. Length the 2 | // same as UINT_MAX in base 10 and digit less than UINT_MAX's last digit in 3 | // order to catch a bug in the parsing code. 4 | .=4300000001 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_08.json: -------------------------------------------------------------------------------- 1 | // Out of 32-bit integer range, switch to double in 32-bit mode. Length the 2 | // same as UINT_MAX in base 10 and digit less than UINT_MAX's last digit in 3 | // order to catch a bug in the parsing code. 4 | 4300000001 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_09.expected: -------------------------------------------------------------------------------- 1 | // Out of 64-bit integer range, switch to double in all modes. Length the same 2 | // as ULONG_MAX in base 10 and digit less than ULONG_MAX's last digit in order 3 | // to catch a bug in the parsing code. 4 | .=1.9e+19 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_09.json: -------------------------------------------------------------------------------- 1 | // Out of 64-bit integer range, switch to double in all modes. Length the same 2 | // as ULONG_MAX in base 10 and digit less than ULONG_MAX's last digit in order 3 | // to catch a bug in the parsing code. 4 | 19000000000000000001 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_10.expected: -------------------------------------------------------------------------------- 1 | // Out of 32-bit signed integer range, switch to double in all modes. Length 2 | // the same as INT_MIN in base 10 and digit less than INT_MIN's last digit in 3 | // order to catch a bug in the parsing code. 4 | .=-2200000001 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_10.json: -------------------------------------------------------------------------------- 1 | // Out of 32-bit signed integer range, switch to double in all modes. Length 2 | // the same as INT_MIN in base 10 and digit less than INT_MIN's last digit in 3 | // order to catch a bug in the parsing code. 4 | -2200000001 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_11.expected: -------------------------------------------------------------------------------- 1 | // Out of 64-bit signed integer range, switch to double in all modes. Length 2 | // the same as LONG_MIN in base 10 and digit less than LONG_MIN's last digit in 3 | // order to catch a bug in the parsing code. 4 | .=-9.3e+18 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_11.json: -------------------------------------------------------------------------------- 1 | // Out of 64-bit signed integer range, switch to double in all modes. Length 2 | // the same as LONG_MIN in base 10 and digit less than LONG_MIN's last digit in 3 | // order to catch a bug in the parsing code. 4 | -9300000000000000001 5 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_12.expected: -------------------------------------------------------------------------------- 1 | // 2^64 -> switch to double. 2 | .=1.844674407370955e+19 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_real_12.json: -------------------------------------------------------------------------------- 1 | // 2^64 -> switch to double. 2 | 18446744073709551616 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_01.expected: -------------------------------------------------------------------------------- 1 | .="!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_01.json: -------------------------------------------------------------------------------- 1 | "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_03.expected: -------------------------------------------------------------------------------- 1 | .="http://jsoncpp.sourceforge.net/" -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_03.json: -------------------------------------------------------------------------------- 1 | "http:\/\/jsoncpp.sourceforge.net\/" 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_04.expected: -------------------------------------------------------------------------------- 1 | .=""abc\def"" 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_04.json: -------------------------------------------------------------------------------- 1 | "\"abc\\def\"" 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_05.expected: -------------------------------------------------------------------------------- 1 | .="\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_05.json: -------------------------------------------------------------------------------- 1 | "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_unicode_01.expected: -------------------------------------------------------------------------------- 1 | .="a" 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_unicode_01.json: -------------------------------------------------------------------------------- 1 | "\u0061" -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_unicode_02.expected: -------------------------------------------------------------------------------- 1 | .="¢" 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_unicode_02.json: -------------------------------------------------------------------------------- 1 | "\u00A2" -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_unicode_03.expected: -------------------------------------------------------------------------------- 1 | .="€" 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_unicode_03.json: -------------------------------------------------------------------------------- 1 | "\u20AC" -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_unicode_04.expected: -------------------------------------------------------------------------------- 1 | .="𝄞" 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_unicode_04.json: -------------------------------------------------------------------------------- 1 | "\uD834\uDD1E" -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_unicode_05.expected: -------------------------------------------------------------------------------- 1 | .="Zażółć gęślą jaźń" 2 | 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/legacy_test_string_unicode_05.json: -------------------------------------------------------------------------------- 1 | "Zażółć gęślą jaźń" -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/test_array_08.expected: -------------------------------------------------------------------------------- 1 | .=[] 2 | .[0]=1 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/test_array_08.json: -------------------------------------------------------------------------------- 1 | [1,] 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/test_object_05.expected: -------------------------------------------------------------------------------- 1 | .={} 2 | .count=1234 3 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/data/test_object_05.json: -------------------------------------------------------------------------------- 1 | { "count" : 1234, } 2 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/generate_expected.py: -------------------------------------------------------------------------------- 1 | # Copyright 2007 Baptiste Lepilleur and The JsonCpp Authors 2 | # Distributed under MIT license, or public domain if desired and 3 | # recognized in your jurisdiction. 4 | # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE 5 | 6 | from __future__ import print_function 7 | import glob 8 | import os.path 9 | for path in glob.glob('*.json'): 10 | text = file(path,'rt').read() 11 | target = os.path.splitext(path)[0] + '.expected' 12 | if os.path.exists(target): 13 | print('skipping:', target) 14 | else: 15 | print('creating:', target) 16 | file(target,'wt').write(text) 17 | 18 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail1.json: -------------------------------------------------------------------------------- 1 | "A JSON payload should be an object or array, not a string." -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail10.json: -------------------------------------------------------------------------------- 1 | {"Extra value after close": true} "misplaced quoted value" -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail11.json: -------------------------------------------------------------------------------- 1 | {"Illegal expression": 1 + 2} -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail12.json: -------------------------------------------------------------------------------- 1 | {"Illegal invocation": alert()} -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail13.json: -------------------------------------------------------------------------------- 1 | {"Numbers cannot have leading zeroes": 013} -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail14.json: -------------------------------------------------------------------------------- 1 | {"Numbers cannot be hex": 0x14} -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail15.json: -------------------------------------------------------------------------------- 1 | ["Illegal backslash escape: \x15"] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail16.json: -------------------------------------------------------------------------------- 1 | [\naked] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail17.json: -------------------------------------------------------------------------------- 1 | ["Illegal backslash escape: \017"] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail18.json: -------------------------------------------------------------------------------- 1 | [[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail19.json: -------------------------------------------------------------------------------- 1 | {"Missing colon" null} -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail2.json: -------------------------------------------------------------------------------- 1 | ["Unclosed array" -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail20.json: -------------------------------------------------------------------------------- 1 | {"Double colon":: null} -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail21.json: -------------------------------------------------------------------------------- 1 | {"Comma instead of colon", null} -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail22.json: -------------------------------------------------------------------------------- 1 | ["Colon instead of comma": false] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail23.json: -------------------------------------------------------------------------------- 1 | ["Bad value", truth] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail24.json: -------------------------------------------------------------------------------- 1 | ['single quote'] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail25.json: -------------------------------------------------------------------------------- 1 | [" tab character in string "] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail26.json: -------------------------------------------------------------------------------- 1 | ["tab\ character\ in\ string\ "] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail27.json: -------------------------------------------------------------------------------- 1 | ["line 2 | break"] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail28.json: -------------------------------------------------------------------------------- 1 | ["line\ 2 | break"] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail29.json: -------------------------------------------------------------------------------- 1 | [0e] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail3.json: -------------------------------------------------------------------------------- 1 | {unquoted_key: "keys must be quoted"} -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail30.json: -------------------------------------------------------------------------------- 1 | [0e+] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail31.json: -------------------------------------------------------------------------------- 1 | [0e+-1] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail32.json: -------------------------------------------------------------------------------- 1 | {"Comma instead if closing brace": true, -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail33.json: -------------------------------------------------------------------------------- 1 | ["mismatch"} -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail4.json: -------------------------------------------------------------------------------- 1 | ["extra comma",] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail5.json: -------------------------------------------------------------------------------- 1 | ["double extra comma",,] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail6.json: -------------------------------------------------------------------------------- 1 | [ , "<-- missing value"] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail7.json: -------------------------------------------------------------------------------- 1 | ["Comma after the close"], -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail8.json: -------------------------------------------------------------------------------- 1 | ["Extra close"]] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/fail9.json: -------------------------------------------------------------------------------- 1 | {"Extra comma": true,} -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/pass2.json: -------------------------------------------------------------------------------- 1 | [[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]] -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/pass3.json: -------------------------------------------------------------------------------- 1 | { 2 | "JSON Test Pattern pass3": { 3 | "The outermost value": "must be an object or array.", 4 | "In this test": "It is an object." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /libs/jsoncpp/test/jsonchecker/readme.txt: -------------------------------------------------------------------------------- 1 | Test suite from http://json.org/JSON_checker/. 2 | 3 | If the JSON_checker is working correctly, it must accept all of the pass*.json files and reject all of the fail*.json files. 4 | -------------------------------------------------------------------------------- /libs/jsoncpp/version.in: -------------------------------------------------------------------------------- 1 | @JSONCPP_VERSION@ 2 | -------------------------------------------------------------------------------- /libs/pybind11/.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | *.cmake @henryiii 2 | CMakeLists.txt @henryiii 3 | *.yml @henryiii 4 | *.yaml @henryiii 5 | /tools/ @henryiii 6 | /pybind11/ @henryiii 7 | noxfile.py @henryiii 8 | .clang-format @henryiii 9 | .clang-tidy @henryiii 10 | -------------------------------------------------------------------------------- /libs/pybind11/.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Ask a question 4 | url: https://github.com/pybind/pybind11/discussions/new 5 | about: Please ask and answer questions here, or propose new ideas. 6 | - name: Gitter room 7 | url: https://gitter.im/pybind/Lobby 8 | about: A room for discussing pybind11 with an active community 9 | -------------------------------------------------------------------------------- /libs/pybind11/.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | # Maintain dependencies for GitHub Actions 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "daily" 8 | ignore: 9 | # Official actions have moving tags like v1 10 | # that are used, so they don't need updates here 11 | - dependency-name: "actions/checkout" 12 | - dependency-name: "actions/setup-python" 13 | - dependency-name: "actions/cache" 14 | - dependency-name: "actions/upload-artifact" 15 | - dependency-name: "actions/download-artifact" 16 | - dependency-name: "actions/labeler" 17 | -------------------------------------------------------------------------------- /libs/pybind11/.github/labeler.yml: -------------------------------------------------------------------------------- 1 | docs: 2 | - any: 3 | - 'docs/**/*.rst' 4 | - '!docs/changelog.rst' 5 | - '!docs/upgrade.rst' 6 | 7 | ci: 8 | - '.github/workflows/*.yml' 9 | -------------------------------------------------------------------------------- /libs/pybind11/.github/labeler_merged.yml: -------------------------------------------------------------------------------- 1 | needs changelog: 2 | - all: 3 | - '!docs/changelog.rst' 4 | -------------------------------------------------------------------------------- /libs/pybind11/.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 5 | ## Description 6 | 7 | 8 | 9 | 10 | ## Suggested changelog entry: 11 | 12 | 14 | 15 | ```rst 16 | 17 | ``` 18 | 19 | 20 | -------------------------------------------------------------------------------- /libs/pybind11/.github/workflows/labeler.yml: -------------------------------------------------------------------------------- 1 | name: Labeler 2 | on: 3 | pull_request_target: 4 | types: [closed] 5 | 6 | jobs: 7 | label: 8 | name: Labeler 9 | runs-on: ubuntu-latest 10 | steps: 11 | 12 | - uses: actions/labeler@main 13 | if: github.event.pull_request.merged == true 14 | with: 15 | repo-token: ${{ secrets.GITHUB_TOKEN }} 16 | configuration-path: .github/labeler_merged.yml 17 | -------------------------------------------------------------------------------- /libs/pybind11/.gitignore: -------------------------------------------------------------------------------- 1 | CMakeCache.txt 2 | CMakeFiles 3 | Makefile 4 | cmake_install.cmake 5 | cmake_uninstall.cmake 6 | .DS_Store 7 | *.so 8 | *.pyd 9 | *.dll 10 | *.sln 11 | *.sdf 12 | *.opensdf 13 | *.vcxproj 14 | *.vcxproj.user 15 | *.filters 16 | example.dir 17 | Win32 18 | x64 19 | Release 20 | Debug 21 | .vs 22 | CTestTestfile.cmake 23 | Testing 24 | autogen 25 | MANIFEST 26 | /.ninja_* 27 | /*.ninja 28 | /docs/.build 29 | *.py[co] 30 | *.egg-info 31 | *~ 32 | .*.swp 33 | .DS_Store 34 | /dist 35 | /*build* 36 | .cache/ 37 | sosize-*.txt 38 | pybind11Config*.cmake 39 | pybind11Targets.cmake 40 | /*env* 41 | /.vscode 42 | /pybind11/include/* 43 | /pybind11/share/* 44 | /docs/_build/* 45 | .ipynb_checkpoints/ 46 | -------------------------------------------------------------------------------- /libs/pybind11/.readthedocs.yml: -------------------------------------------------------------------------------- 1 | python: 2 | version: 3 3 | requirements_file: docs/requirements.txt 4 | -------------------------------------------------------------------------------- /libs/pybind11/MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include pybind11/include/pybind11 *.h 2 | recursive-include pybind11 *.py 3 | recursive-include pybind11 py.typed 4 | recursive-include pybind11 *.pyi 5 | include pybind11/share/cmake/pybind11/*.cmake 6 | include LICENSE README.rst pyproject.toml setup.py setup.cfg 7 | -------------------------------------------------------------------------------- /libs/pybind11/docs/Doxyfile: -------------------------------------------------------------------------------- 1 | PROJECT_NAME = pybind11 2 | INPUT = ../include/pybind11/ 3 | RECURSIVE = YES 4 | 5 | GENERATE_HTML = NO 6 | GENERATE_LATEX = NO 7 | GENERATE_XML = YES 8 | XML_OUTPUT = .build/doxygenxml 9 | XML_PROGRAMLISTING = YES 10 | 11 | MACRO_EXPANSION = YES 12 | EXPAND_ONLY_PREDEF = YES 13 | EXPAND_AS_DEFINED = PYBIND11_RUNTIME_EXCEPTION 14 | 15 | ALIASES = "rst=\verbatim embed:rst" 16 | ALIASES += "endrst=\endverbatim" 17 | 18 | QUIET = YES 19 | WARNINGS = YES 20 | WARN_IF_UNDOCUMENTED = NO 21 | PREDEFINED = PY_MAJOR_VERSION=3 \ 22 | PYBIND11_NOINLINE 23 | -------------------------------------------------------------------------------- /libs/pybind11/docs/_static/theme_overrides.css: -------------------------------------------------------------------------------- 1 | .wy-table-responsive table td, 2 | .wy-table-responsive table th { 3 | white-space: initial !important; 4 | } 5 | .rst-content table.docutils td { 6 | vertical-align: top !important; 7 | } 8 | div[class^='highlight'] pre { 9 | white-space: pre; 10 | white-space: pre-wrap; 11 | } 12 | -------------------------------------------------------------------------------- /libs/pybind11/docs/advanced/pycpp/index.rst: -------------------------------------------------------------------------------- 1 | Python C++ interface 2 | #################### 3 | 4 | pybind11 exposes Python types and functions using thin C++ wrappers, which 5 | makes it possible to conveniently call Python code from C++ without resorting 6 | to Python's C API. 7 | 8 | .. toctree:: 9 | :maxdepth: 2 10 | 11 | object 12 | numpy 13 | utilities 14 | -------------------------------------------------------------------------------- /libs/pybind11/docs/cmake/index.rst: -------------------------------------------------------------------------------- 1 | CMake helpers 2 | ------------- 3 | 4 | Pybind11 can be used with ``add_subdirectory(extern/pybind11)``, or from an 5 | install with ``find_package(pybind11 CONFIG)``. The interface provided in 6 | either case is functionally identical. 7 | 8 | .. cmake-module:: ../../tools/pybind11Config.cmake.in 9 | -------------------------------------------------------------------------------- /libs/pybind11/docs/index.rst: -------------------------------------------------------------------------------- 1 | .. only:: latex 2 | 3 | Intro 4 | ===== 5 | 6 | .. include:: readme.rst 7 | 8 | .. only:: not latex 9 | 10 | Contents: 11 | 12 | .. toctree:: 13 | :maxdepth: 1 14 | 15 | changelog 16 | upgrade 17 | 18 | .. toctree:: 19 | :caption: The Basics 20 | :maxdepth: 2 21 | 22 | installing 23 | basics 24 | classes 25 | compiling 26 | 27 | .. toctree:: 28 | :caption: Advanced Topics 29 | :maxdepth: 2 30 | 31 | advanced/functions 32 | advanced/classes 33 | advanced/exceptions 34 | advanced/smart_ptrs 35 | advanced/cast/index 36 | advanced/pycpp/index 37 | advanced/embedding 38 | advanced/misc 39 | 40 | .. toctree:: 41 | :caption: Extra Information 42 | :maxdepth: 1 43 | 44 | faq 45 | benchmark 46 | limitations 47 | reference 48 | cmake/index 49 | -------------------------------------------------------------------------------- /libs/pybind11/docs/pybind11-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/pybind11/docs/pybind11-logo.png -------------------------------------------------------------------------------- /libs/pybind11/docs/pybind11_vs_boost_python1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/pybind11/docs/pybind11_vs_boost_python1.png -------------------------------------------------------------------------------- /libs/pybind11/docs/pybind11_vs_boost_python2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/pybind11/docs/pybind11_vs_boost_python2.png -------------------------------------------------------------------------------- /libs/pybind11/docs/requirements.txt: -------------------------------------------------------------------------------- 1 | breathe==4.31.0 2 | sphinx==3.5.4 3 | sphinx_rtd_theme==1.0.0 4 | sphinxcontrib-moderncmakedomain==3.19 5 | sphinxcontrib-svg2pdfconverter==1.1.1 6 | -------------------------------------------------------------------------------- /libs/pybind11/include/pybind11/common.h: -------------------------------------------------------------------------------- 1 | #include "detail/common.h" 2 | #warning "Including 'common.h' is deprecated. It will be removed in v3.0. Use 'pybind11.h'." 3 | -------------------------------------------------------------------------------- /libs/pybind11/pybind11/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from ._version import __version__, version_info 4 | from .commands import get_cmake_dir, get_include 5 | 6 | __all__ = ( 7 | "version_info", 8 | "__version__", 9 | "get_include", 10 | "get_cmake_dir", 11 | ) 12 | -------------------------------------------------------------------------------- /libs/pybind11/pybind11/_version.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | 4 | def _to_int(s): 5 | try: 6 | return int(s) 7 | except ValueError: 8 | return s 9 | 10 | 11 | __version__ = "2.9.2" 12 | version_info = tuple(_to_int(s) for s in __version__.split(".")) 13 | -------------------------------------------------------------------------------- /libs/pybind11/pybind11/_version.pyi: -------------------------------------------------------------------------------- 1 | from typing import Tuple, Union 2 | 3 | def _to_int(s: str) -> Union[int, str]: ... 4 | 5 | __version__: str 6 | version_info: Tuple[Union[int, str], ...] 7 | -------------------------------------------------------------------------------- /libs/pybind11/pybind11/commands.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import os 3 | 4 | DIR = os.path.abspath(os.path.dirname(__file__)) 5 | 6 | 7 | def get_include(user=False): 8 | # type: (bool) -> str 9 | installed_path = os.path.join(DIR, "include") 10 | source_path = os.path.join(os.path.dirname(DIR), "include") 11 | return installed_path if os.path.exists(installed_path) else source_path 12 | 13 | 14 | def get_cmake_dir(): 15 | # type: () -> str 16 | cmake_installed_path = os.path.join(DIR, "share", "cmake", "pybind11") 17 | if os.path.exists(cmake_installed_path): 18 | return cmake_installed_path 19 | else: 20 | msg = "pybind11 not installed, installation required to access the CMake files" 21 | raise ImportError(msg) 22 | -------------------------------------------------------------------------------- /libs/pybind11/pybind11/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/pybind11/pybind11/py.typed -------------------------------------------------------------------------------- /libs/pybind11/tests/extra_python_package/pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/pybind11/tests/extra_python_package/pytest.ini -------------------------------------------------------------------------------- /libs/pybind11/tests/extra_setuptools/pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcellteam/mcell/80ca633fbc00ebc1867f2873e17337562d5100f7/libs/pybind11/tests/extra_setuptools/pytest.ini -------------------------------------------------------------------------------- /libs/pybind11/tests/pytest.ini: -------------------------------------------------------------------------------- 1 | [pytest] 2 | minversion = 3.1 3 | norecursedirs = test_* extra_* 4 | xfail_strict = True 5 | addopts = 6 | # show summary of skipped tests 7 | -rs 8 | # capture only Python print and C++ py::print, but not C output (low-level Python errors) 9 | --capture=sys 10 | filterwarnings = 11 | # make warnings into errors but ignore certain third-party extension issues 12 | error 13 | # somehow, some DeprecationWarnings do not get turned into errors 14 | always::DeprecationWarning 15 | # importing scipy submodules on some version of Python 16 | ignore::ImportWarning 17 | # bogus numpy ABI warning (see numpy/#432) 18 | ignore:.*numpy.dtype size changed.*:RuntimeWarning 19 | ignore:.*numpy.ufunc size changed.*:RuntimeWarning 20 | -------------------------------------------------------------------------------- /libs/pybind11/tests/requirements.txt: -------------------------------------------------------------------------------- 1 | numpy==1.16.6; python_version<"3.6" and sys_platform!="win32" and platform_python_implementation!="PyPy" 2 | numpy==1.19.0; platform_python_implementation=="PyPy" and sys_platform=="linux" and python_version=="3.6" 3 | numpy==1.20.0; platform_python_implementation=="PyPy" and sys_platform=="linux" and python_version=="3.7" 4 | numpy==1.19.3; platform_python_implementation!="PyPy" and python_version=="3.6" 5 | numpy==1.21.3; platform_python_implementation!="PyPy" and python_version>="3.7" and python_version<"3.11" 6 | py @ git+https://github.com/pytest-dev/py; python_version>="3.11" 7 | pytest==4.6.9; python_version<"3.5" 8 | pytest==6.1.2; python_version=="3.5" 9 | pytest==6.2.4; python_version>="3.6" 10 | pytest-timeout 11 | scipy==1.2.3; platform_python_implementation!="PyPy" and python_version<"3.6" 12 | scipy==1.5.4; platform_python_implementation!="PyPy" and python_version>="3.6" and python_version<"3.10" 13 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_async.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | tests/test_async.cpp -- __await__ support 3 | 4 | Copyright (c) 2019 Google Inc. 5 | 6 | All rights reserved. Use of this source code is governed by a 7 | BSD-style license that can be found in the LICENSE file. 8 | */ 9 | 10 | #include "pybind11_tests.h" 11 | 12 | TEST_SUBMODULE(async_module, m) { 13 | struct DoesNotSupportAsync {}; 14 | py::class_(m, "DoesNotSupportAsync").def(py::init<>()); 15 | struct SupportsAsync {}; 16 | py::class_(m, "SupportsAsync") 17 | .def(py::init<>()) 18 | .def("__await__", [](const SupportsAsync &self) -> py::object { 19 | static_cast(self); 20 | py::object loop = py::module_::import("asyncio.events").attr("get_event_loop")(); 21 | py::object f = loop.attr("create_future")(); 22 | f.attr("set_result")(5); 23 | return f.attr("__await__")(); 24 | }); 25 | } 26 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_async.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import pytest 3 | 4 | asyncio = pytest.importorskip("asyncio") 5 | m = pytest.importorskip("pybind11_tests.async_module") 6 | 7 | 8 | @pytest.fixture 9 | def event_loop(): 10 | loop = asyncio.new_event_loop() 11 | yield loop 12 | loop.close() 13 | 14 | 15 | async def get_await_result(x): 16 | return await x 17 | 18 | 19 | def test_await(event_loop): 20 | assert 5 == event_loop.run_until_complete(get_await_result(m.SupportsAsync())) 21 | 22 | 23 | def test_await_missing(event_loop): 24 | with pytest.raises(TypeError): 25 | event_loop.run_until_complete(get_await_result(m.DoesNotSupportAsync())) 26 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_cmake_build/embed.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | namespace py = pybind11; 3 | 4 | PYBIND11_EMBEDDED_MODULE(test_cmake_build, m) { 5 | m.def("add", [](int i, int j) { return i + j; }); 6 | } 7 | 8 | int main(int argc, char *argv[]) { 9 | if (argc != 2) { 10 | throw std::runtime_error("Expected test.py file as the first argument"); 11 | } 12 | auto *test_py_file = argv[1]; 13 | 14 | py::scoped_interpreter guard{}; 15 | 16 | auto m = py::module_::import("test_cmake_build"); 17 | if (m.attr("add")(1, 2).cast() != 3) { 18 | throw std::runtime_error("embed.cpp failed"); 19 | } 20 | 21 | py::module_::import("sys").attr("argv") = py::make_tuple("test.py", "embed.cpp"); 22 | py::eval_file(test_py_file, py::globals()); 23 | } 24 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_cmake_build/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | namespace py = pybind11; 3 | 4 | PYBIND11_MODULE(test_cmake_build, m) { 5 | m.def("add", [](int i, int j) { return i + j; }); 6 | } 7 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_cmake_build/test.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import sys 3 | 4 | import test_cmake_build 5 | 6 | if str is not bytes: # If not Python2 7 | assert isinstance(__file__, str) # Test this is properly set 8 | 9 | assert test_cmake_build.add(1, 2) == 3 10 | print("{} imports, runs, and adds: 1 + 2 = 3".format(sys.argv[1])) 11 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_const_name.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import pytest 3 | 4 | import env 5 | from pybind11_tests import const_name as m 6 | 7 | 8 | @pytest.mark.parametrize("func", (m.const_name_tests, m.underscore_tests)) 9 | @pytest.mark.parametrize( 10 | "selector, expected", 11 | enumerate( 12 | ( 13 | "", 14 | "A", 15 | "Bd", 16 | "Cef", 17 | "%", 18 | "%", 19 | "T1", 20 | "U2", 21 | "D1", 22 | "E2", 23 | "KeepAtEnd", 24 | ) 25 | ), 26 | ) 27 | def test_const_name(func, selector, expected): 28 | if isinstance(func, type(u"") if env.PY2 else str): 29 | pytest.skip(func) 30 | text = func(selector) 31 | assert text == expected 32 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_embed/catch.cpp: -------------------------------------------------------------------------------- 1 | // The Catch implementation is compiled here. This is a standalone 2 | // translation unit to avoid recompiling it for every test change. 3 | 4 | #include 5 | 6 | #ifdef _MSC_VER 7 | // Silence MSVC C++17 deprecation warning from Catch regarding std::uncaught_exceptions (up to 8 | // catch 2.0.1; this should be fixed in the next catch release after 2.0.1). 9 | # pragma warning(disable : 4996) 10 | #endif 11 | 12 | // Catch uses _ internally, which breaks gettext style defines 13 | #ifdef _ 14 | # undef _ 15 | #endif 16 | 17 | #define CATCH_CONFIG_RUNNER 18 | #include 19 | 20 | namespace py = pybind11; 21 | 22 | int main(int argc, char *argv[]) { 23 | py::scoped_interpreter guard{}; 24 | auto result = Catch::Session().run(argc, argv); 25 | 26 | return result < 0xff ? result : 0xff; 27 | } 28 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_embed/external_module.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace py = pybind11; 4 | 5 | /* Simple test module/test class to check that the referenced internals data of external pybind11 6 | * modules aren't preserved over a finalize/initialize. 7 | */ 8 | 9 | PYBIND11_MODULE(external_module, m) { 10 | class A { 11 | public: 12 | explicit A(int value) : v{value} {}; 13 | int v; 14 | }; 15 | 16 | py::class_(m, "A").def(py::init()).def_readwrite("value", &A::v); 17 | 18 | m.def("internals_at", 19 | []() { return reinterpret_cast(&py::detail::get_internals()); }); 20 | } 21 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_embed/test_interpreter.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import sys 3 | 4 | from widget_module import Widget 5 | 6 | 7 | class DerivedWidget(Widget): 8 | def __init__(self, message): 9 | super(DerivedWidget, self).__init__(message) 10 | 11 | def the_answer(self): 12 | return 42 13 | 14 | def argv0(self): 15 | return sys.argv[0] 16 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_embed/test_trampoline.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import trampoline_module 4 | 5 | 6 | def func(): 7 | class Test(trampoline_module.test_override_cache_helper): 8 | def func(self): 9 | return 42 10 | 11 | return Test() 12 | 13 | 14 | def func2(): 15 | class Test(trampoline_module.test_override_cache_helper): 16 | pass 17 | 18 | return Test() 19 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_eval_call.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # This file is called from 'test_eval.py' 3 | 4 | if "call_test2" in locals(): 5 | call_test2(y) # noqa: F821 undefined name 6 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_exceptions.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "pybind11_tests.h" 3 | 4 | #include 5 | 6 | // shared exceptions for cross_module_tests 7 | 8 | class PYBIND11_EXPORT_EXCEPTION shared_exception : public pybind11::builtin_exception { 9 | public: 10 | using builtin_exception::builtin_exception; 11 | explicit shared_exception() : shared_exception("") {} 12 | void set_error() const override { PyErr_SetString(PyExc_RuntimeError, what()); } 13 | }; 14 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_tagbased_polymorphic.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from pybind11_tests import tagbased_polymorphic as m 3 | 4 | 5 | def test_downcast(): 6 | zoo = m.create_zoo() 7 | assert [type(animal) for animal in zoo] == [ 8 | m.Labrador, 9 | m.Dog, 10 | m.Chihuahua, 11 | m.Cat, 12 | m.Panther, 13 | ] 14 | assert [animal.name for animal in zoo] == [ 15 | "Fido", 16 | "Ginger", 17 | "Hertzl", 18 | "Tiger", 19 | "Leo", 20 | ] 21 | zoo[1].sound = "woooooo" 22 | assert [dog.bark() for dog in zoo[:3]] == [ 23 | "Labrador Fido goes WOOF!", 24 | "Dog Ginger goes woooooo", 25 | "Chihuahua Hertzl goes iyiyiyiyiyi and runs in circles", 26 | ] 27 | assert [cat.purr() for cat in zoo[3:]] == ["mrowr", "mrrrRRRRRR"] 28 | zoo[0].excitement -= 1000 29 | assert zoo[0].excitement == 14000 30 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_union.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | tests/test_class.cpp -- test py::class_ definitions and basic functionality 3 | 4 | Copyright (c) 2019 Roland Dreier 5 | 6 | All rights reserved. Use of this source code is governed by a 7 | BSD-style license that can be found in the LICENSE file. 8 | */ 9 | 10 | #include "pybind11_tests.h" 11 | 12 | TEST_SUBMODULE(union_, m) { 13 | union TestUnion { 14 | int value_int; 15 | unsigned value_uint; 16 | }; 17 | 18 | py::class_(m, "TestUnion") 19 | .def(py::init<>()) 20 | .def_readonly("as_int", &TestUnion::value_int) 21 | .def_readwrite("as_uint", &TestUnion::value_uint); 22 | } 23 | -------------------------------------------------------------------------------- /libs/pybind11/tests/test_union.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from pybind11_tests import union_ as m 3 | 4 | 5 | def test_union(): 6 | instance = m.TestUnion() 7 | 8 | instance.as_uint = 10 9 | assert instance.as_int == 10 10 | -------------------------------------------------------------------------------- /libs/pybind11/tools/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["setuptools>=42", "wheel"] 3 | build-backend = "setuptools.build_meta" 4 | -------------------------------------------------------------------------------- /libs/win_getopt/MCELL_INFO.txt: -------------------------------------------------------------------------------- 1 | Downloaded on 01/23/2021 from https://github.com/skandhurkat/Getopt-for-Visual-Studio. 2 | hash 6567b18 3 | 4 | Needed a simple solution with MSVC, ignored deprecation notice at the page above. -------------------------------------------------------------------------------- /src/DGMakefile: -------------------------------------------------------------------------------- 1 | LEX = lex 2 | YACC = yacc 3 | #YFLAGS = -d --debug --verbose 4 | YFLAGS = -d 5 | CC = clang 6 | CFLAGS = -lm 7 | #LFLAGS = -d 8 | 9 | all: dyngeom_parse 10 | 11 | dyngeom_parse: dyngeom_parse_extras.c dyngeom_lex.c dyngeom_yacc.c sym_table.c mem_util.c logging.c vector.c strfunc.c util.c mcell_objects.c util.c 12 | $(CC) $(CFLAGS) $^ -o $@ 13 | 14 | dyngeom_lex.c: dyngeom_lex.l 15 | $(LEX) $(LFLAGS) -o $@ $^ 16 | 17 | dyngeom_yacc.c: dyngeom_parse.y 18 | $(YACC) $(YFLAGS) -o $@ $^ 19 | 20 | clean: 21 | $(RM) *.o dyngeom_yacc.h dyngeom_yacc.c dyngeom_lex.c dyngeom_parse 22 | -------------------------------------------------------------------------------- /src/README: -------------------------------------------------------------------------------- 1 | Please see README.md at the root of the project directory. 2 | -------------------------------------------------------------------------------- /src/argparse.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2006-2017 by 4 | * The Salk Institute for Biological Studies and 5 | * Pittsburgh Supercomputing Center, Carnegie Mellon University 6 | * 7 | * Use of this source code is governed by an MIT-style 8 | * license that can be found in the LICENSE file or at 9 | * https://opensource.org/licenses/MIT. 10 | * 11 | ******************************************************************************/ 12 | 13 | #pragma once 14 | 15 | #include 16 | 17 | struct volume; 18 | 19 | void print_usage(FILE *f, char const *argv0); 20 | 21 | int argparse_init(int argc, char *const argv[], struct volume *vol); 22 | -------------------------------------------------------------------------------- /src/bng_util.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2020 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | #include 13 | 14 | // transforms graph pattern into a more readable BNGL representation 15 | std::string graph_pattern_to_bngl(const char* graph_pattern); 16 | -------------------------------------------------------------------------------- /src/diffuse_util.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2006-2017 by 4 | * The Salk Institute for Biological Studies and 5 | * Pittsburgh Supercomputing Center, Carnegie Mellon University 6 | * 7 | * Use of this source code is governed by an MIT-style 8 | * license that can be found in the LICENSE file or at 9 | * https://opensource.org/licenses/MIT. 10 | * 11 | ******************************************************************************/ 12 | 13 | #pragma once 14 | 15 | double r_func(double s); 16 | double *init_r_step(int radial_subdivisions); 17 | double *init_r_step_surface(int radial_subdivisions); 18 | double *init_r_step_3d_release(int radial_subdivisions); 19 | double *init_d_step(int radial_directions, unsigned int *actual_directions); 20 | -------------------------------------------------------------------------------- /src/mcell_dyngeom.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2006-2014 by 4 | * The Salk Institute for Biological Studies and 5 | * Pittsburgh Supercomputing Center, Carnegie Mellon University 6 | * 7 | * Use of this source code is governed by an MIT-style 8 | * license that can be found in the LICENSE file or at 9 | * https://opensource.org/licenses/MIT. 10 | * 11 | *****************************************************************************/ 12 | 13 | #ifndef MCELL_DYNGEOM_H 14 | #define MCELL_DYNGEOM_H 15 | 16 | #include "mcell_objects.h" 17 | 18 | struct mesh_region_string_buffs { 19 | struct string_buffer *old_inst_mesh_names; 20 | struct string_buffer *old_region_names; 21 | }; 22 | 23 | int mcell_add_dynamic_geometry_file(char *dynamic_geometry_filepath, 24 | struct mdlparse_vars *parse_state); 25 | 26 | int mcell_change_geometry(struct volume *state, struct poly_object_list *pobj_list); 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /src/mcell_dyngeom.i: -------------------------------------------------------------------------------- 1 | struct mesh_region_string_buffs { 2 | struct string_buffer *old_inst_mesh_names; 3 | struct string_buffer *old_region_names; 4 | }; 5 | 6 | int mcell_change_geometry(struct volume *state, struct poly_object_list *pobj_list); 7 | -------------------------------------------------------------------------------- /src/minrng.c: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2006-2017 by 4 | * The Salk Institute for Biological Studies and 5 | * Pittsburgh Supercomputing Center, Carnegie Mellon University 6 | * 7 | * Use of this source code is governed by an MIT-style 8 | * license that can be found in the LICENSE file or at 9 | * https://opensource.org/licenses/MIT. 10 | * 11 | ******************************************************************************/ 12 | 13 | #include "config.h" 14 | 15 | #include "minrng.h" 16 | 17 | ub4 mrng_generate(struct mrng_state *x) { 18 | ub4 e = x->a - rot(x->b, 27); 19 | x->a = x->b ^ rot(x->c, 17); 20 | x->b = x->c + x->d; 21 | x->c = x->d + e; 22 | x->d = e + x->a; 23 | return x->d; 24 | } 25 | 26 | void mrng_init(struct mrng_state *x, ub4 seed) { 27 | ub4 i; 28 | x->a = 0xf1ea5eed, x->b = x->c = x->d = seed; 29 | for (i = 0; i < 20; ++i) { 30 | (void)mrng_generate(x); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/minrng.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2006-2017 by 4 | * The Salk Institute for Biological Studies and 5 | * Pittsburgh Supercomputing Center, Carnegie Mellon University 6 | * 7 | * Use of this source code is governed by an MIT-style 8 | * license that can be found in the LICENSE file or at 9 | * https://opensource.org/licenses/MIT. 10 | * 11 | ******************************************************************************/ 12 | 13 | #pragma once 14 | 15 | #include 16 | 17 | typedef uint32_t ub4; 18 | 19 | #define rot(x, k) (((x) << (k)) | ((x) >> (32 - (k)))) 20 | 21 | struct mrng_state { 22 | ub4 a; 23 | ub4 b; 24 | ub4 c; 25 | ub4 d; 26 | }; 27 | 28 | ub4 mrng_generate(struct mrng_state *x); 29 | void mrng_init(struct mrng_state *x, ub4 seed); 30 | #define mrng_uint32(rng) (mrng_generate(rng)) 31 | 32 | #define mrng_dbl32(rng) (DBL32 *(double)mrng_uint32(rng)) 33 | -------------------------------------------------------------------------------- /src/rules_py/.gitignore: -------------------------------------------------------------------------------- 1 | bng2 2 | -------------------------------------------------------------------------------- /src/rules_py/fceri_files/fceri_mdl.viz_output.mdl: -------------------------------------------------------------------------------- 1 | VIZ_OUTPUT 2 | { 3 | MODE = CELLBLENDER 4 | FILENAME = "./viz_data/seed_00001/Scene" 5 | MOLECULES 6 | { 7 | NAME_LIST {ALL_MOLECULES} 8 | ITERATION_NUMBERS {ALL_DATA @ ALL_ITERATIONS} 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /src/rules_py/split_bngxml.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | 3 | 4 | def defineConsole(): 5 | """ 6 | input console options 7 | """ 8 | parser = argparse.ArgumentParser(description='SBML to BNGL translator') 9 | parser.add_argument('-i', '--input', type=str, help='input MDLr file', required=True) 10 | return parser 11 | 12 | 13 | def extractSeedBNG(xmlname): 14 | with open(xmlname, 'r') as f: 15 | bngxml = f.read() 16 | 17 | start = bngxml.find('') 18 | end = bngxml.find('') + len('') 19 | 20 | seedxml = '\n' + bngxml[start:end] + '\n' 21 | restxml = bngxml[:start] + '\n' + bngxml[end:] 22 | 23 | return seedxml, restxml 24 | 25 | 26 | if __name__ == "__main__": 27 | parser = defineConsole() 28 | namespace = parser.parse_args() 29 | 30 | seed, rest = extractSeedBNG(namespace.input) 31 | with open(namespace.input + '_rules.xml', 'w') as f: 32 | f.write(rest) 33 | -------------------------------------------------------------------------------- /src/strfunc.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2006-2017 by 4 | * The Salk Institute for Biological Studies and 5 | * Pittsburgh Supercomputing Center, Carnegie Mellon University 6 | * 7 | * Use of this source code is governed by an MIT-style 8 | * license that can be found in the LICENSE file or at 9 | * https://opensource.org/licenses/MIT. 10 | * 11 | ******************************************************************************/ 12 | 13 | #pragma once 14 | 15 | #include 16 | 17 | /* Header file for character string handling functions */ 18 | 19 | char *alloc_vsprintf(char const *fmt, va_list args) PRINTF_FORMAT_V(1); 20 | char *alloc_sprintf(char const *fmt, ...) PRINTF_FORMAT(1); 21 | char *my_strcat(char const *s1, char const *s2); 22 | char *strip_quotes(char const *s); 23 | -------------------------------------------------------------------------------- /src/test_api.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "mcell_misc.h" 4 | #include "mcell_objects.h" 5 | #include "mcell_react_out.h" 6 | #include "mcell_reactions.h" 7 | #include "mcell_release.h" 8 | #include "mcell_species.h" 9 | #include "mcell_viz.h" 10 | 11 | void test_api(MCELL_STATE *state); 12 | -------------------------------------------------------------------------------- /src/triangle_overlap.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2006-2017 by 4 | * The Salk Institute for Biological Studies and 5 | * Pittsburgh Supercomputing Center, Carnegie Mellon University 6 | * 7 | * Use of this source code is governed by an MIT-style 8 | * license that can be found in the LICENSE file or at 9 | * https://opensource.org/licenses/MIT. 10 | * 11 | ******************************************************************************/ 12 | 13 | #pragma once 14 | 15 | #include "mcell_structs.h" 16 | 17 | int coplanar_tri_overlap(struct wall* w1, struct wall* w2); 18 | -------------------------------------------------------------------------------- /src/version.txt: -------------------------------------------------------------------------------- 1 | 4.1.0 2 | -------------------------------------------------------------------------------- /src/version_info.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2006-2025 by 4 | * The Salk Institute for Biological Studies and 5 | * Pittsburgh Supercomputing Center, Carnegie Mellon University 6 | * 7 | * Use of this source code is governed by an MIT-style 8 | * license that can be found in the LICENSE file or at 9 | * https://opensource.org/licenses/MIT. 10 | * 11 | ******************************************************************************/ 12 | 13 | #pragma once 14 | 15 | #include 16 | 17 | /* MCell version as a string */ 18 | extern char const mcell_version[]; 19 | 20 | /* Write the credits to a file handle */ 21 | void print_credits(FILE *f); 22 | 23 | /* Write the version info to a file handle */ 24 | void print_version(FILE *f); 25 | 26 | /* Write the version info to a file handle */ 27 | void print_full_version(FILE *f); 28 | -------------------------------------------------------------------------------- /src/viz_output.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2006-2017 by 4 | * The Salk Institute for Biological Studies and 5 | * Pittsburgh Supercomputing Center, Carnegie Mellon University 6 | * 7 | * Use of this source code is governed by an MIT-style 8 | * license that can be found in the LICENSE file or at 9 | * https://opensource.org/licenses/MIT. 10 | * 11 | ******************************************************************************/ 12 | 13 | #pragma once 14 | 15 | #define ASCII_VIZ_EXTERNAL_SPECIES_NAME 16 | 17 | #include "mcell_structs.h" 18 | 19 | /* Header file for visualization output routines */ 20 | 21 | int update_frame_data_list(struct volume *world, 22 | struct viz_output_block *vizblk); 23 | 24 | int init_frame_data_list(struct volume *world, struct viz_output_block *vizblk); 25 | 26 | int finalize_viz_output(struct volume *world, struct viz_output_block *vizblk); 27 | -------------------------------------------------------------------------------- /src/volume_output.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2006-2017 by 4 | * The Salk Institute for Biological Studies and 5 | * Pittsburgh Supercomputing Center, Carnegie Mellon University 6 | * 7 | * Use of this source code is governed by an MIT-style 8 | * license that can be found in the LICENSE file or at 9 | * https://opensource.org/licenses/MIT. 10 | * 11 | ******************************************************************************/ 12 | 13 | #pragma once 14 | 15 | #include "mcell_structs.h" 16 | 17 | int update_volume_output(struct volume *wrld, struct volume_output_item *vo); 18 | int output_volume_output_item(struct volume *wrld, char const *filename, 19 | struct volume_output_item *vo); 20 | -------------------------------------------------------------------------------- /src/ylwrapfix: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | OUTFILE="$3" 4 | SRCDIR=`dirname $0` 5 | YLWRAP_REAL="${SRCDIR}/ylwrap" 6 | if test -f "${OUTFILE}"; then 7 | cp -f "${OUTFILE}" "${OUTFILE}.tmp" 8 | else 9 | touch "${OUTFILE}.tmp" 10 | fi 11 | 12 | "${YLWRAP_REAL}" "$@" || exit 1 13 | if test -f "${OUTFILE}" && cmp -s "${OUTFILE}" "${OUTFILE}.tmp"; then 14 | echo "Not prepending source dir ${SRCDIR} (from $0)" 15 | else 16 | mv -f "${OUTFILE}" "${OUTFILE}.tmp" 17 | echo "Prepending source dir ${SRCDIR} (from $0)" 18 | SRCDIR2=`echo "${SRCDIR}" | sed 's/@/\\@/'` 19 | cat "${OUTFILE}.tmp" | sed "s@#line *\([0-9]\+\) *\"\([^ ]*\.[ly]\)\"@#line \1 \"${SRCDIR2}\/\2\"@" > "${OUTFILE}" 20 | fi 21 | rm -f "${OUTFILE}.tmp" 22 | -------------------------------------------------------------------------------- /src4/grid_position.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2020 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | #ifndef SRC4_GRID_POSITION_H_ 13 | #define SRC4_GRID_POSITION_H_ 14 | 15 | #include "defines.h" 16 | 17 | namespace MCell { 18 | 19 | class Partition; 20 | class GridPos; 21 | 22 | namespace GridPosition { 23 | 24 | Vec2 find_closest_position(const Partition& p, const GridPos& gp1, const GridPos& gp2); 25 | 26 | } // namespace GridPosition 27 | } // namespace MCell 28 | 29 | 30 | #endif // SRC4_GRID_POSITION_H_ 31 | -------------------------------------------------------------------------------- /src4/mcell4_iface_for_mcell3.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2020 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | #ifndef SRC4_MCELL4_IFACE_FOR_MCELL3_H_ 13 | #define SRC4_MCELL4_IFACE_FOR_MCELL3_H_ 14 | 15 | #include "mcell_structs_shared.h" 16 | 17 | bool mcell4_convert_mcell3_volume(struct volume* s); 18 | bool mcell4_run_simulation(const bool dump_initial_state, const bool dump_with_geometry = false); 19 | void mcell4_convert_to_data_model(const bool only_for_viz); 20 | void mcell4_delete_world(); 21 | 22 | #endif // SRC4_MCELL4_IFACE_FOR_MCELL3_H_ 23 | -------------------------------------------------------------------------------- /src4/wall_overlap.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2006-2017,2020 by 4 | * The Salk Institute for Biological Studies and 5 | * Pittsburgh Supercomputing Center, Carnegie Mellon University 6 | * 7 | * Use of this source code is governed by an MIT-style 8 | * license that can be found in the LICENSE file or at 9 | * https://opensource.org/licenses/MIT. 10 | * 11 | ******************************************************************************/ 12 | 13 | #ifndef SRC4_WALL_OVERLAP_H_ 14 | #define SRC4_WALL_OVERLAP_H_ 15 | 16 | #include "defines.h" 17 | 18 | namespace MCell { 19 | class Wall; 20 | 21 | namespace WallOverlap { 22 | 23 | // rand_vec is a value of three random values used when sorting walls for overlap detection 24 | // (TODO: not completely sure why a random value is needed there) 25 | bool check_for_overlapped_walls(Partition& p, const Vec3& rand_vec); 26 | 27 | } // namespace WallOverlap 28 | } // namespace MCell 29 | 30 | #endif // SRC4_WALL_OVERLAP_H_ 31 | -------------------------------------------------------------------------------- /src4/wall_utils.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2020 by 4 | * The Salk Institute for Biological Studies and 5 | * Pittsburgh Supercomputing Center, Carnegie Mellon University 6 | * 7 | * Use of this source code is governed by an MIT-style 8 | * license that can be found in the LICENSE file or at 9 | * https://opensource.org/licenses/MIT. 10 | * 11 | ******************************************************************************/ 12 | 13 | #ifndef SRC4_WALL_UTILS_H_ 14 | #define SRC4_WALL_UTILS_H_ 15 | 16 | namespace MCell { 17 | 18 | class Partition; 19 | class Wall; 20 | struct Vec3; 21 | 22 | namespace WallUtils { 23 | 24 | // only the needed functions for now 25 | 26 | static int wall_in_box( 27 | const Partition& p, 28 | const Wall& w, 29 | const Vec3& llf, const Vec3& urb 30 | ); 31 | 32 | 33 | } // namespace WallUtil 34 | 35 | } // namespace MCell 36 | 37 | #endif // SRC4_WALL_UTILS_H_ 38 | 39 | -------------------------------------------------------------------------------- /utils/bng_analyzer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.4) 2 | 3 | project(bng_analyzer) 4 | 5 | include_directories( 6 | "${CMAKE_SOURCE_DIR}" 7 | "${CMAKE_CURRENT_SOURCE_DIR}/../../../libbng/" 8 | ) 9 | 10 | include_directories( 11 | SYSTEM 12 | ${CMAKE_CURRENT_SOURCE_DIR}/../../../libbng/libs/ 13 | ${CMAKE_CURRENT_SOURCE_DIR}/../../../libbng/libs/sparsehash/src 14 | ) 15 | 16 | if (NOT WIN32) 17 | add_definitions(-std=c++14) 18 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall ") 19 | endif() 20 | 21 | if (NOT TARGET libbng) 22 | add_subdirectory( 23 | ${CMAKE_CURRENT_SOURCE_DIR}/../../../libbng/bng 24 | ${CMAKE_CURRENT_BINARY_DIR}/libs/bng 25 | ) 26 | endif() 27 | 28 | set(SOURCE_FILES 29 | bng_analyzer.cpp 30 | nfsim_species_unifier.cpp 31 | ) 32 | 33 | set(ALL_SOURCES 34 | ${SOURCE_FILES} 35 | ) 36 | 37 | add_executable(${PROJECT_NAME} 38 | ${ALL_SOURCES} 39 | ) 40 | 41 | target_link_libraries(${PROJECT_NAME} 42 | libbng 43 | ) -------------------------------------------------------------------------------- /utils/bngl/example_inputs/voltage.dat: -------------------------------------------------------------------------------- 1 | 0.000000 0 2 | 0.000030 3 3 | 0.000060 6 4 | 0.000090 9 5 | 0.000120 12 6 | 0.000150 15 7 | 0.000180 18 8 | 0.000210 21 9 | -------------------------------------------------------------------------------- /utils/data_model_to_pymcell/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.4) 2 | 3 | project(data_model_to_pymcell) 4 | 5 | include_directories( 6 | ${CMAKE_SOURCE_DIR} 7 | ${CMAKE_CURRENT_SOURCE_DIR}/../.. 8 | ${CMAKE_CURRENT_SOURCE_DIR}/../../libs/jsoncpp/include 9 | ) 10 | 11 | set(CMAKE_CXX_STANDARD 17) 12 | include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/libs/ ${CMAKE_SOURCE_DIR}/libs/sparsehash/src) 13 | 14 | set(SOURCE_FILES 15 | data_model_to_pymcell.cpp 16 | mcell4_generator.cpp 17 | python_generator.cpp 18 | bngl_generator.cpp 19 | generator_utils.cpp 20 | data_model_geometry.cpp 21 | ../../libmcell/api/api_utils.cpp 22 | ../../libmcell/api/python_export_utils.cpp 23 | ) 24 | 25 | set(ALL_SOURCES 26 | ${SOURCE_FILES} 27 | ) 28 | 29 | add_executable(${PROJECT_NAME} 30 | ${ALL_SOURCES} 31 | ) 32 | 33 | add_dependencies(data_model_to_pymcell version_h) 34 | 35 | target_link_libraries(${PROJECT_NAME} 36 | jsoncpp_lib libmcell ${VTK_LIBRARIES} libbng 37 | ) 38 | -------------------------------------------------------------------------------- /utils/data_model_to_pymcell/data_model_geometry.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * 3 | * Copyright (C) 2021 by 4 | * The Salk Institute for Biological Studies 5 | * 6 | * Use of this source code is governed by an MIT-style 7 | * license that can be found in the LICENSE file or at 8 | * https://opensource.org/licenses/MIT. 9 | * 10 | ******************************************************************************/ 11 | 12 | #ifndef UTILS_DATA_MODEL_GEOMETRY_H_ 13 | #define UTILS_DATA_MODEL_GEOMETRY_H_ 14 | 15 | #include "json/json.h" 16 | 17 | namespace MCell { 18 | 19 | // throws ConversionError if computation was not successful (may possibly throw other exceptions) 20 | void compute_volume_and_area(Json::Value& model_object, double& volume, double& area); 21 | 22 | } // namespace MCell 23 | 24 | #endif /* UTILS_DATA_MODEL_GEOMETRY_H_ */ 25 | -------------------------------------------------------------------------------- /utils/mcell4_runner/run_remotely.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Example: 4 | # first 'cd' to the directory with your model then run: 5 | # run_remotely.sh $USER@:/home/$USER/tmp/my_model /mcell4_runner.py . "model.py -s 1:10:1" 6 | 7 | 8 | USAGE=\ 9 | "$1 - remote machine with user and working directory e.g. user@a.server.com:/home/user/tmp\n"\ 10 | "$2 - local path to mcell4_runner.py script (including the script name)\n"\ 11 | "$3 - directory with model\n"\ 12 | "$4 - arguments for mcell4_runner.py script (enclosed in quotes)\n" 13 | 14 | if [ "$#" != "4" ]; then 15 | echo "Error: expected 4 arguments:\n $USAGE" 16 | exit 1 17 | fi 18 | 19 | DST=$1 20 | RUNNER_PY=$2 21 | SRC=$3 22 | ARGS=$4 23 | 24 | # copy model directory 25 | rsync --delete -arv $SRC $DST || exit 1 26 | 27 | # copy script 28 | rsync --delete -arv $2 $DST || exit 1 29 | 30 | URL=`echo $DST | cut -d: -f1` 31 | DIR=`echo $DST | cut -d: -f2` 32 | CMD="conda activate py35; cd $DIR; nohup python mcell4_runner.py $4" 33 | ssh $URL $CMD 34 | -------------------------------------------------------------------------------- /utils/pybind11_build_example/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14) 2 | project(mcell) 3 | 4 | set(PYBIND11_PYTHON_VERSION 3.5) 5 | find_package(Python3 ${PYBIND11_PYTHON_VERSION} EXACT REQUIRED COMPONENTS Interpreter Development) 6 | message("-- Python3 include dirs are ${Python3_INCLUDE_DIRS}") 7 | include_directories(${Python3_INCLUDE_DIRS}) 8 | 9 | add_subdirectory(${CMAKE_SOURCE_DIR}/../../libs/pybind11 ${CMAKE_CURRENT_BINARY_DIR}/libs/pybind11) 10 | 11 | pybind11_add_module(mcell MODULE 12 | test.cpp 13 | ) 14 | -------------------------------------------------------------------------------- /utils/pybind11_build_example/import_mcell.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append("build") 3 | 4 | print("before import") 5 | import mcell 6 | print("after import") 7 | --------------------------------------------------------------------------------