Empirical – A library of tools for scientific software development
- Authors:
Charles Ofria, Emily Dolson, Alex Lalejini, Jacob Fenton, Matthew Andres Moreno
- GitHub:
Empirical is a library of tools for scientific software development with an emphasis on being able to build web interfaces using Mozilla’s Emscripten compiler. The project goal is to improve the accessibility and reproducibility of the computational research.
Empirical is a C++ project though it uses Python for development infrastructure.
The developer documentation is for contributing to the Empirical project and the user documentation is for those wanting to incorporate the Empirical library into their own projects.
Contents:
Getting Started
Using Empirical
- General Purpose Debugging Tools
- Bits
- API
- BitArray.hpp
- BitMatrix.hpp
- BitSet.hpp
- BitVector.hpp
- Bits.hpp
- Bits_Data.hpp
- bitset_utils.hpp
bits_field_tNumBitFields()BitFieldToString()BitFieldsToString()UIntMaskFirst()UIntMaskFirst()count_bits()find_bit()find_last_bit()pop_bit()MaskLow()MaskHigh()MaskUsed()ReverseBits()RotateBitsLeft()RotateBitsLeft()RotateBitsRight()RotateBitsRight()CountBits()NUM_FIELD_BITSByteCount
- API
- Compiler
- Config
- Control
- Data Collection and Recording Tools
- Data Tools API
- AnnotatedType.hpp
- DataFile.hpp
- DataInterface.hpp
- DataLayout.hpp
- DataLog.hpp
- DataManager.hpp
- DataMap.hpp
- DataNode.hpp
- Datum.hpp
- MemoryImage.hpp
- SimpleParser.hpp
SimpleParserSimpleParser::PhonyNameDueToError::map_tSimpleParser::PhonyNameDueToError::arg_tSimpleParser::PhonyNameDueToError::fun_tSimpleParser::PhonyNameDueToError::value_tSimpleParser::PhonyNameDueToError::SymbolTable()SimpleParser::PhonyNameDueToError::MakeDatumAccessor()SimpleParser::PhonyNameDueToError::AsFunction()SimpleParser::PhonyNameDueToError::layout
- Trait.hpp
- VarMap.hpp
- Data Tools API
- Data structures
- API
- BloomFilter.hpp
- Bool.hpp
- Cache.hpp
- DynamicString.hpp
- Graph.hpp
- IndexMap.hpp
- IndexSet.hpp
- QueueCache.hpp
- SmallFifoMap.hpp
- SmallVector.hpp
- StringMap.hpp
- TimeQueue.hpp
- TypeMap.hpp
- UnorderedIndexMap.hpp
- graph_utils.hpp
- hash_utils.hpp
- map_utils.hpp
- ra_map.hpp
- ra_set.hpp
- reference_vector.hpp
- set_utils.hpp
- span_utils.hpp
- tuple_struct.hpp
- tuple_utils.hpp
- valsort_map.hpp
- vector_utils.hpp
PopFront()InsertAt()Append()Concat()ToVector()ToVector()ToMap()ToUMap()FindValue()RemoveValue()RemoveAt()RemoveAt()RemoveDuplicates()Has()Count()Print()FindEval()FindIndex()FindMinIndex()FindMaxIndex()FindMin()FindMax()FindIntersect()Sum()Product()Sort()Scale()Slice()Flatten()Transpose()NRange()BuildRange()tree_left()tree_right()tree_parent()Heapify()Heapify()HeapExtract()HeapInsert()
- API
- Debug
- Evolution tools
- Phylotracklib (Systematics Manager)
- API
- NK.hpp
- NK-const.hpp
- OEE.hpp
- OrgInterface.hpp
- Resource.hpp
- StateGrid.hpp
- Systematics.hpp
- SystematicsAnalysis.hpp
- World.hpp
- World_iterator.hpp
- World_output.hpp
- World_reflect.hpp
- World_select.hpp
EliteSelect()RandomSelect()TournamentSelect()LocalTournamentSelect()RouletteSelect()EMPCall_TriggerOnLexicaseSelect()EMPCall_TriggerOnLexicaseSelect()TriggerOnLexicaseSelect()LexicaseSelect()OptimizedLexicaseSelect()EcoSelect()EcoSelect()ignore_semicolon_to_follow_TriggerOnLexicaseSelectWorld
- World_structure.hpp
- Functional
- Games
- Geometry
- Hardware
- In_progress
- IO
- Matching
- API
- MatchBin.hpp
- MatchDepository.hpp
- matchbin_metrics.hpp
StreakMetricExactStreakDistribution_ConstructOnFirstUse()BaseMetricHammingMetricHashMetricAbsDiffMetricNextUpMetricAsymmetricWrapMetricAsymmetricNoWrapMetricSymmetricWrapMetricSymmetricNoWrapMetricHammingCumuMetricApproxSingleStreakMetricApproxDualStreakMetricExactStreakDistributionExactDualStreakMetricExactSingleStreakMetricCacheModSlideModHardStartModAntiModPowModLogModUnifModMeanDimModEuclideanDimModMinDimModHarmonicDimModFlatMod
- matchbin_regulators.hpp
- matchbin_selectors.hpp
- matchbin_utils.hpp
- API
- Math
- API
- CombinedBinomialDistribution.hpp
- Distribution.hpp
- DistributionSet.hpp
- Fraction.hpp
- Random.hpp
- Range.hpp
- RangeSet.hpp
- combos.hpp
- constants.hpp
- distances.hpp
- info_theory.hpp
- math.hpp
Mod()Mod()Sgn()Abs()FloorDivide()RoundedDivide()RoundedDivide()UnbiasedDivide()UnbiasedDivide()ToRange()Min()Min()Max()Max()MinRef()MinRef()MaxRef()MaxRef()Log2()Log()Ln()Log10()Square()Pow2()IntPow()Pow()Exp()IntLog2()Min()Min()Max()NextPowerOf2()IsPowerOf2()Factorial()Toggle()AllTrue()AllTrue()AnyTrue()AnyTrue()GCD()LCM()
- random_utils.hpp
- sequence_utils.hpp
- spatial_stats.hpp
- stats.hpp
- API
- Meta
- API
- ConceptWrapper.hpp
- FunInfo.hpp
- TypeID.hpp
- TypePack.hpp
- ValPack.hpp
- macro_math.hpp
- macros.hpp
- meta.hpp
first_typesecond_typethird_typefourth_typepack_idlast_typesfinae_decoytype_decoydecoy_tbool_decoyint_decoyAdaptTemplateAdaptTemplate_Arg1DoNothing()BuildObjVector1()BuildObjVector2()BuildObjVector3()BuildObjVector4()BuildObjVector1()BuildObjVector2()BuildObjVector3()BuildObjVector4()BuildObjVector()has_type()count_type()get_type_index()has_unique_first_type()has_unique_types()test_type_exist()test_type_value()test_type()TruncateCall()GetSize()run_and_ignoretype_indextype_indextype_indextype_indextype_indextype_indexShowTypedependent_falsePlaceholderTypeAdaptFunctiontIntMathtIntMath
- reflection.hpp
- type_traits.hpp
IsIterableremove_std_function_telement_tis_pointerremove_ptr_type_tremove_pointer_tuint_bit_count_tint_bit_count_tmatch_const_tvariadic_concat_tvariadic_filter_tvariadic_remove_duplicates_tvariadic_union_tvariadic_intersection_tis_ptr_type_v()is_ptr_type_v()remove_ptr_value()variadic_contains_vvariadic_index_of_vPtrvectorHasToStringHasToStringHasToDoubleHasToDoubleis_std_functionis_std_functionremove_std_function_typeremove_std_function_typeelement_typeelement_typeis_emp_vectoris_emp_vectoris_spanis_spanis_ptr_typeis_ptr_typeis_ptr_typeis_ptr_typeremove_ptr_typeremove_ptr_typeremove_ptr_typeremove_ptr_typeuint_bit_countuint_bit_countuint_bit_countuint_bit_countuint_bit_countint_bit_countint_bit_countint_bit_countint_bit_countint_bit_countmatch_constmatch_constptr_pairptr_pairptr_pairptr_pairis_invocablevariadic_containsvariadic_containsvariadic_concatvariadic_concatvariadic_filtervariadic_filtervariadic_remove_duplicatesvariadic_remove_duplicatesvariadic_unionvariadic_unionvariadic_unionvariadic_intersectionvariadic_intersectionvariadic_intersectionvariadic_index_ofvariadic_index_of
- API
- Polyfill
- Prefab
- Scholar
- Testing
- Text
- Other Tools
- API
- MemoryFactory.hpp
- SolveState.hpp
- StaticString.hpp
- String.hpp
MakeString()MakeString()MakeEscaped()MakeEscaped()MakeCSVSafe()MakeWebSafe()MakeLiteral()MakeLiteral()MakeLiteral()MakeFromLiteral_Char()MakeFromLiteral_String()MakeFromLiteral()MakeUpper()MakeLower()MakeTitleCase()MakeCount()MakeRoman()MakeEnglishList()MakeFormatted()MakeRepeat()MakeTrimFront()MakeTrimBack()MakeTrimmed()MakeCompressed()MakeRemoveChars()MakeSlugify()Join()MakeCount()MakeFormatted()Stringhash
- TypeTracker.hpp
- attrs.hpp
- char_utils.hpp
CharSetCharSetRange()WhitespaceCharSet()UpperCharSet()LowerCharSet()LetterCharSet()DigitCharSet()AlphanumericCharSet()IDCharSet()PunctuationCharSet()EscapeCodeCharSet()is_whitespace()is_upper_letter()is_lower_letter()is_letter()is_digit()is_alphanumeric()is_idchar()is_punctuation()is_escape_code()is_one_of()is_valid()is_valid()ToEscapeChar()CharSetBase
- hash_namify.hpp
- keyname_utils.hpp
- string_utils.hpp
string_vec_tempty_string()count()is_literal_char()is_literal_string()diagnose_literal_string()is_composed_of()has_whitespace()has_nonwhitespace()has_upper_letter()has_lower_letter()has_letter()has_digit()has_alphanumeric()has_char_at()has_one_of_at()has_digit_at()has_letter_at()is_lower()is_upper()is_digits()is_number()is_alphanumeric()is_whitespace()is_identifier()has_one_of()is_valid()has_prefix()find_quote_match()find_paren_match()find()find_all()find_all()find_any_of_from()find_any_of()find_id()find_non_whitespace()to_escaped_string()to_escaped_string()to_web_safe_string()url_encode()url_decode()to_literal()to_literal()to_literal()from_literal_char()from_literal_string()to_upper()to_lower()to_titlecase()to_roman_numeral()trim_whitespace()compress_whitespace()remove_whitespace()remove_punctuation()remove_chars()slugify()combine_strings()to_english_list()transform_strings()quote_strings()quote_strings()to_quoted_list()string_pop_if_char()string_pop_fixed()string_get_range()string_pop()string_get()string_pop()string_get()string_pop_to()string_get_to()string_pop_word()string_get_word()string_pop_line()string_get_line()string_pop_quote()string_uint_size()string_pop_uint()string_get_uint()left_justify()right_justify()justify()replace_vars()replace_macro()view_string()view_string()view_string()view_string_front()view_string_back()view_string_range()view_string_to()pad_front()pad_back()repeat()slice()slice()view_slices()view_slices()slice_assign()ViewCSV()ViewNestedBlock()ToString()ToString()to_string()to_string()from_string()from_string()from_strings()from_string()join()ANSI_ESC()ANSI_Reset()ANSI_Bold()ANSI_Faint()ANSI_Italic()ANSI_Underline()ANSI_SlowBlink()ANSI_Blink()ANSI_Reverse()ANSI_Strike()ANSI_NoBold()ANSI_NoItalic()ANSI_NoUnderline()ANSI_NoBlink()ANSI_NoReverse()ANSI_Black()ANSI_Red()ANSI_Green()ANSI_Yellow()ANSI_Blue()ANSI_Magenta()ANSI_Cyan()ANSI_White()ANSI_DefaultColor()ANSI_BlackBG()ANSI_RedBG()ANSI_GreenBG()ANSI_YellowBG()ANSI_BlueBG()ANSI_MagentaBG()ANSI_CyanBG()ANSI_WhiteBG()ANSI_DefaultBGColor()ANSI_BrightBlack()ANSI_BrightRed()ANSI_BrightGreen()ANSI_BrightYellow()ANSI_BrightBlue()ANSI_BrightMagenta()ANSI_BrightCyan()ANSI_BrightWhite()ANSI_BrightBlackBG()ANSI_BrightRedBG()ANSI_BrightGreenBG()ANSI_BrightYellowBG()ANSI_BrightBlueBG()ANSI_BrightMagentaBG()ANSI_BrightCyanBG()ANSI_BrightWhiteBG()to_ansi_bold()to_ansi_italic()to_ansi_underline()to_ansi_blink()to_ansi_reverse()next_pos()
- timing.hpp
- unique.hpp
- value_utils.hpp
- API
- Web Tools (for use with Emscripten)
- D3 Data Visualization Tools
- API
- Animate.hpp
- Attributes.hpp
- Button.hpp
- Canvas.hpp
- CanvasAction.hpp
- CanvasShape.hpp
- Div.hpp
- DocuExtras.hpp
- Document.hpp
- Element.hpp
- FileInput.hpp
- Font.hpp
- Image.hpp
- Input.hpp
- JSWrap.hpp
- KeypressManager.hpp
- Listeners.hpp
- NodeDomShim.hpp
- RawImage.hpp
- Selector.hpp
- Style.hpp
- Table.hpp
- Text.hpp
- TextArea.hpp
- TextFeed.hpp
- Tween.hpp
- UrlParams.hpp
- Widget.hpp
- WidgetExtras.hpp
- canvas_utils.hpp
- color_map.hpp
- commands.hpp
- emfunctions.hpp
- events.hpp
- init.hpp
- js_utils.hpp
- web.hpp
Bibliography