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
- Evolution tools
- Documentation for Systematics
- Systematics
- Taxon Specifics
- General Systematics Data
- Using the Systematics Manager
- emp.hpp
- General Purpose Debugging Tools
- Empirical vectors and arrays
- Empirical asserts
- Empirical Warnings
- Empirical pointers
- API
- 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
- API
- ArgManager.hpp
operator==()ArgSpecArgManagerPhonyNameDueToError::ArgManager()PhonyNameDueToError::ArgManager()PhonyNameDueToError::~ArgManager()PhonyNameDueToError::UseArg()PhonyNameDueToError::UseArg()PhonyNameDueToError::UseFlag()PhonyNameDueToError::PrintHelp()PhonyNameDueToError::HasUnknown()PhonyNameDueToError::TestUnknown()PhonyNameDueToError::ProcessConfigOptions()PhonyNameDueToError::parent_tPhonyNameDueToError::arg_namesPhonyNameDueToError::arg_descs
- ConfigManager.hpp
- FlagManager.hpp
- SettingCombos.hpp
- SettingsManager.hpp
- command_line.hpp
- config.hpp
- config_utils.hpp
- config_web_interface.hpp
- ArgManager.hpp
- API
- Control
- Data Collection and Recording Tools
- Data structures
- API
- BloomFilter.hpp
- Bool.hpp
- Cache.hpp
- DynamicString.hpp
- Graph.hpp
- IndexMap.hpp
- QueueCache.hpp
- RobinHoodMap.hpp
- SmallFifoMap.hpp
- SmallVector.hpp
- StaticIndexMap.hpp
- StaticVector.hpp
- StringMap.hpp
- TimeQueue.hpp
- TypeMap.hpp
- UnorderedIndexMap.hpp
- Vector.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
- Deprecated
- Evolve
- 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_TriggerOnLexicaseSelect
- World_structure.hpp
- API
- Functional
- Games
- Geometry
- Hardware
- In_progress
- IO
- API
- ANSI.hpp
Apply()MakeBold()MakeFaint()MakeItalic()MakeUnderline()MakeSlowBlink()MakeBlink()MakeReverse()MakeStrike()MakeColor()MakeBlack()MakeRed()MakeGreen()MakeYellow()MakeBlue()MakeMagenta()MakeCyan()MakeWhite()MakeBrightBlack()MakeBrightRed()MakeBrightGreen()MakeBrightYellow()MakeBrightBlue()MakeBrightMagenta()MakeBrightCyan()MakeBrightWhite()MakeBGColor()MakeBlackBG()MakeRedBG()MakeGreenBG()MakeYellowBG()MakeBlueBG()MakeMagentaBG()MakeCyanBG()MakeWhiteBG()MakeBrightBlackBG()MakeBrightRedBG()MakeBrightGreenBG()MakeBrightYellowBG()MakeBrightBlueBG()MakeBrightMagentaBG()MakeBrightCyanBG()MakeBrightWhiteBG()ResetBoldFaintItalicUnderlineSlowBlinkBlinkReverseStrikeNoBoldNoItalicNoUnderlineNoBlinkNoReverseNoStrikeBlackRedGreenYellowBlueMagentaCyanWhiteDefaultColorBlackBGRedBGGreenBGYellowBGBlueBGMagentaBGCyanBGWhiteBGDefaultBGColorBrightBlackBrightRedBrightGreenBrightYellowBrightBlueBrightMagentaBrightCyanBrightWhiteBrightBlackBGBrightRedBGBrightGreenBGBrightYellowBGBrightBlueBGBrightMagentaBGBrightCyanBGBrightWhiteBG
- CPPFile.hpp
- ContiguousStream.hpp
- File.hpp
- MemoryIStream.hpp
- NullStream.hpp
- StreamManager.hpp
- ascii_utils.hpp
- io_utils.hpp
- serialize.hpp
- serialize_macros.hpp
- ANSI.hpp
- API
- 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
- ComboSet.hpp
- Distribution.hpp
- DistributionSet.hpp
- Fraction.hpp
- Random.hpp
- Random_MSWS.hpp
- Random_Xorshift.hpp
- Random_Xoshiro256pp.hpp
- Range.hpp
- RangeSet.hpp
- combos.hpp
- constants.hpp
- distances.hpp
- info_theory.hpp
- math.hpp
MakeSequenceArray()Mod()Mod()Sgn()Abs()FloorDivide()RoundedDivide()RoundedDivide()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
SelectRandom()Shuffle()Shuffle()ShuffleRange()GetPermutation()Choose()Choose()RandomBitVector()RandomDoubleVector()RandomUIntVector()RandomVector()RandomizeBitVector()RandomizeVector()CountRngTouches()UnbiasedDivide()UnbiasedDivide()RandProbabilityLowProbabilityHighProbabilityBufferedProbability
- sequence_utils.hpp
- spatial_stats.hpp
- stats.hpp
- API
- Meta
- API
- 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_indexdependent_falseAdaptFunctiontIntMathtIntMath
- reflection.hpp
- type_traits.hpp
has_any_voidhas_only_voidhas_no_voidhas_any_null_pointerhas_only_null_pointerhas_no_null_pointerhas_any_integralhas_only_integralhas_no_integralhas_any_floating_pointhas_only_floating_pointhas_no_floating_pointhas_any_arrayhas_only_arrayhas_no_arrayhas_any_enumhas_only_enumhas_no_enumhas_any_unionhas_only_unionhas_no_unionhas_any_classhas_only_classhas_no_classhas_any_functionhas_only_functionhas_no_functionhas_any_pointerhas_only_pointerhas_no_pointerhas_any_lvalue_referencehas_only_lvalue_referencehas_no_lvalue_referencehas_any_rvalue_referencehas_only_rvalue_referencehas_no_rvalue_referencehas_any_member_object_pointerhas_only_member_object_pointerhas_no_member_object_pointerhas_any_member_function_pointerhas_only_member_function_pointerhas_no_member_function_pointerhas_any_fundamentalhas_only_fundamentalhas_no_fundamentalhas_any_arithmetichas_only_arithmetichas_no_arithmetichas_any_scalarhas_only_scalarhas_no_scalarhas_any_objecthas_only_objecthas_no_objecthas_any_compoundhas_only_compoundhas_no_compoundhas_any_referencehas_only_referencehas_no_referencehas_any_member_pointerhas_only_member_pointerhas_no_member_pointerhas_any_consthas_only_consthas_no_consthas_any_volatilehas_only_volatilehas_no_volatilehas_any_trivialhas_only_trivialhas_no_trivialhas_any_trivially_copyablehas_only_trivially_copyablehas_no_trivially_copyablehas_any_standard_layouthas_only_standard_layouthas_no_standard_layouthas_any_emptyhas_only_emptyhas_no_emptyhas_any_polymorphichas_only_polymorphichas_no_polymorphichas_any_abstracthas_only_abstracthas_no_abstracthas_any_finalhas_only_finalhas_no_finalhas_any_aggregatehas_only_aggregatehas_no_aggregatehas_any_signedhas_only_signedhas_no_signedhas_any_unsignedhas_only_unsignedhas_no_unsignedhas_any_bounded_arrayhas_only_bounded_arrayhas_no_bounded_arrayhas_any_unbounded_arrayhas_only_unbounded_arrayhas_no_unbounded_arrayremove_std_function_telement_tis_pointerremove_ptr_type_tremove_pointer_tuint_bit_count_tmin_uint_typeint_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()StateBitCount()variadic_contains_vvariadic_index_of_vhas_trait_anyhas_trait_anyhas_trait_allhas_trait_allhas_trait_noneremove_std_function_typeremove_std_function_typeelement_typeelement_typeis_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_pairvariadic_containsvariadic_concatvariadic_filtervariadic_remove_duplicatesvariadic_unionvariadic_unionvariadic_intersectionvariadic_intersectionvariadic_index_of
- API
- Polyfill
- Prefab
- Scholar
- Serialize
- Testing
- Text
- Other Tools
- API
- MemoryFactory.hpp
- SolveState.hpp
- StaticString.hpp
- String.hpp
MakeString()MakeEscaped()MakeEscaped()MakeCSVSafe()MakeWebSafe()MakeLiteral()MakeLiteral()MakeLiteral()MakeCharFromLiteral()MakeStringFromLiteral()MakeIntFromLiteral()MakeFromLiteral()MakeUpper()MakeLower()MakeTitleCase()PascalToCaps()MakeCount()MakeRoman()MakeList()MakeArgList()MakeEnglishList()MakeEnglishList()MakeQuotedList()MakeFormatted()MakeRepeat()MakeTrimFront()MakeTrimBack()MakeTrimmed()MakeCompressed()MakeFiltered()MakeRemoveChars()MakeSlugify()Join()MakeCount()MakeEnglishList()Stringhash
- TypeTracker.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_NoStrike()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
- CheckBox.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