Copy disabled (too large)
Download .txt
Showing preview only (24,148K chars total). Download the full file to get everything.
Repository: MesserLab/SLiM
Branch: master
Commit: 4f77dd527b81
Files: 1314
Total size: 22.8 MB
Directory structure:
gitextract_mptrfmw2/
├── .gitattributes
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ └── issue.md
│ └── workflows/
│ └── tests.yml
├── .gitignore
├── .travis.yml
├── CMakeLists.txt
├── CONTENTS.txt
├── CONTRIBUTING.md
├── EidosSLiMTests/
│ ├── EidosTests.mm
│ ├── Info.plist
│ └── SLiMTests.mm
├── EidosScribe/
│ ├── Base.lproj/
│ │ ├── EidosAboutWindow.xib
│ │ ├── EidosConsoleWindow.xib
│ │ ├── EidosHelpWindow.xib
│ │ └── MainMenu.xib
│ ├── EidosAppDelegate.h
│ ├── EidosAppDelegate.mm
│ ├── EidosCocoaExtra.h
│ ├── EidosCocoaExtra.mm
│ ├── EidosConsoleTextView.h
│ ├── EidosConsoleTextView.mm
│ ├── EidosConsoleTextViewDelegate.h
│ ├── EidosConsoleWindowController.h
│ ├── EidosConsoleWindowController.mm
│ ├── EidosConsoleWindowControllerDelegate.h
│ ├── EidosHelpClasses.rtf
│ ├── EidosHelpController.h
│ ├── EidosHelpController.mm
│ ├── EidosHelpFunctions.rtf
│ ├── EidosHelpOperators.rtf
│ ├── EidosHelpStatements.rtf
│ ├── EidosHelpTypes.rtf
│ ├── EidosPrettyprinter.h
│ ├── EidosPrettyprinter.mm
│ ├── EidosScribe-Info.plist
│ ├── EidosScribe.entitlements
│ ├── EidosScribe_multi-Info.plist
│ ├── EidosScribe_multi.entitlements
│ ├── EidosTextView.h
│ ├── EidosTextView.mm
│ ├── EidosTextViewDelegate.h
│ ├── EidosValueWrapper.h
│ ├── EidosValueWrapper.mm
│ ├── EidosVariableBrowserController.h
│ ├── EidosVariableBrowserController.mm
│ ├── EidosVariableBrowserControllerDelegate.h
│ ├── Images.xcassets/
│ │ └── AppIcon.appiconset/
│ │ └── Contents.json
│ └── main.m
├── LICENSE
├── PARALLEL
├── QtSLiM/
│ ├── QtSLiM.pro
│ ├── QtSLiMAbout.cpp
│ ├── QtSLiMAbout.h
│ ├── QtSLiMAbout.ui
│ ├── QtSLiMAppDelegate.cpp
│ ├── QtSLiMAppDelegate.h
│ ├── QtSLiMChromosomeWidget.cpp
│ ├── QtSLiMChromosomeWidget.h
│ ├── QtSLiMChromosomeWidget_GL.cpp
│ ├── QtSLiMChromosomeWidget_QT.cpp
│ ├── QtSLiMConsoleTextEdit.cpp
│ ├── QtSLiMConsoleTextEdit.h
│ ├── QtSLiMDebugOutputWindow.cpp
│ ├── QtSLiMDebugOutputWindow.h
│ ├── QtSLiMDebugOutputWindow.ui
│ ├── QtSLiMEidosConsole.cpp
│ ├── QtSLiMEidosConsole.h
│ ├── QtSLiMEidosConsole.ui
│ ├── QtSLiMEidosConsole_glue.cpp
│ ├── QtSLiMEidosPrettyprinter.cpp
│ ├── QtSLiMEidosPrettyprinter.h
│ ├── QtSLiMExtras.cpp
│ ├── QtSLiMExtras.h
│ ├── QtSLiMFindPanel.cpp
│ ├── QtSLiMFindPanel.h
│ ├── QtSLiMFindPanel.ui
│ ├── QtSLiMFindRecipe.cpp
│ ├── QtSLiMFindRecipe.h
│ ├── QtSLiMFindRecipe.ui
│ ├── QtSLiMGraphView.cpp
│ ├── QtSLiMGraphView.h
│ ├── QtSLiMGraphView_1DPopulationSFS.cpp
│ ├── QtSLiMGraphView_1DPopulationSFS.h
│ ├── QtSLiMGraphView_1DSampleSFS.cpp
│ ├── QtSLiMGraphView_1DSampleSFS.h
│ ├── QtSLiMGraphView_2DPopulationSFS.cpp
│ ├── QtSLiMGraphView_2DPopulationSFS.h
│ ├── QtSLiMGraphView_2DSampleSFS.cpp
│ ├── QtSLiMGraphView_2DSampleSFS.h
│ ├── QtSLiMGraphView_AgeDistribution.cpp
│ ├── QtSLiMGraphView_AgeDistribution.h
│ ├── QtSLiMGraphView_CustomPlot.cpp
│ ├── QtSLiMGraphView_CustomPlot.h
│ ├── QtSLiMGraphView_FitnessOverTime.cpp
│ ├── QtSLiMGraphView_FitnessOverTime.h
│ ├── QtSLiMGraphView_FixationTimeHistogram.cpp
│ ├── QtSLiMGraphView_FixationTimeHistogram.h
│ ├── QtSLiMGraphView_FrequencyTrajectory.cpp
│ ├── QtSLiMGraphView_FrequencyTrajectory.h
│ ├── QtSLiMGraphView_LifetimeReproduction.cpp
│ ├── QtSLiMGraphView_LifetimeReproduction.h
│ ├── QtSLiMGraphView_LossTimeHistogram.cpp
│ ├── QtSLiMGraphView_LossTimeHistogram.h
│ ├── QtSLiMGraphView_MultispeciesPopSizeOverTime.cpp
│ ├── QtSLiMGraphView_MultispeciesPopSizeOverTime.h
│ ├── QtSLiMGraphView_PopFitnessDist.cpp
│ ├── QtSLiMGraphView_PopFitnessDist.h
│ ├── QtSLiMGraphView_PopSizeOverTime.cpp
│ ├── QtSLiMGraphView_PopSizeOverTime.h
│ ├── QtSLiMGraphView_PopulationVisualization.cpp
│ ├── QtSLiMGraphView_PopulationVisualization.h
│ ├── QtSLiMGraphView_SubpopFitnessDists.cpp
│ ├── QtSLiMGraphView_SubpopFitnessDists.h
│ ├── QtSLiMHaplotypeManager.cpp
│ ├── QtSLiMHaplotypeManager.h
│ ├── QtSLiMHaplotypeManager_GL.cpp
│ ├── QtSLiMHaplotypeManager_QT.cpp
│ ├── QtSLiMHaplotypeOptions.cpp
│ ├── QtSLiMHaplotypeOptions.h
│ ├── QtSLiMHaplotypeOptions.ui
│ ├── QtSLiMHaplotypeProgress.cpp
│ ├── QtSLiMHaplotypeProgress.h
│ ├── QtSLiMHaplotypeProgress.ui
│ ├── QtSLiMHelpWindow.cpp
│ ├── QtSLiMHelpWindow.h
│ ├── QtSLiMHelpWindow.ui
│ ├── QtSLiMIndividualsWidget.cpp
│ ├── QtSLiMIndividualsWidget.h
│ ├── QtSLiMIndividualsWidget_GL.cpp
│ ├── QtSLiMIndividualsWidget_QT.cpp
│ ├── QtSLiMOpenGL.cpp
│ ├── QtSLiMOpenGL.h
│ ├── QtSLiMOpenGL_Emulation.h
│ ├── QtSLiMPopulationTable.cpp
│ ├── QtSLiMPopulationTable.h
│ ├── QtSLiMPreferences.cpp
│ ├── QtSLiMPreferences.h
│ ├── QtSLiMPreferences.ui
│ ├── QtSLiMScriptTextEdit.cpp
│ ├── QtSLiMScriptTextEdit.h
│ ├── QtSLiMSyntaxHighlighting.cpp
│ ├── QtSLiMSyntaxHighlighting.h
│ ├── QtSLiMTablesDrawer.cpp
│ ├── QtSLiMTablesDrawer.h
│ ├── QtSLiMTablesDrawer.ui
│ ├── QtSLiMVariableBrowser.cpp
│ ├── QtSLiMVariableBrowser.h
│ ├── QtSLiMVariableBrowser.ui
│ ├── QtSLiMWindow.cpp
│ ├── QtSLiMWindow.h
│ ├── QtSLiMWindow.ui
│ ├── QtSLiMWindow_glue.cpp
│ ├── QtSLiM_AppIcon.icns
│ ├── QtSLiM_DocIcon.icns
│ ├── QtSLiM_Info.plist
│ ├── QtSLiM_Plot.cpp
│ ├── QtSLiM_Plot.h
│ ├── QtSLiM_SLiMgui.cpp
│ ├── QtSLiM_SLiMgui.h
│ ├── buttons.qrc
│ ├── buttons_DARK.qrc
│ ├── help/
│ │ ├── EidosHelpClasses.html
│ │ ├── EidosHelpFunctions.html
│ │ ├── EidosHelpOperators.html
│ │ ├── EidosHelpStatements.html
│ │ ├── EidosHelpTypes.html
│ │ ├── SLiMHelpCallbacks.html
│ │ ├── SLiMHelpClasses.html
│ │ └── SLiMHelpFunctions.html
│ ├── help.qrc
│ ├── icons.qrc
│ ├── main.cpp
│ ├── recipes/
│ │ ├── Recipe 10.1 - Temporally varying selection.txt
│ │ ├── Recipe 10.2 - Spatially varying selection.txt
│ │ ├── Recipe 10.3.1 - Fitness as a function of genomic background, Epistasis I.txt
│ │ ├── Recipe 10.3.1 - Fitness as a function of genomic background, Epistasis II.txt
│ │ ├── Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection I.txt
│ │ ├── Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection II.txt
│ │ ├── Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection III.txt
│ │ ├── Recipe 10.4.2 - Fitness as a function of population composition, Cultural effects on fitness.txt
│ │ ├── Recipe 10.4.3 - Fitness as a function of population composition, Kin selection and the green-beard effect.txt
│ │ ├── Recipe 10.5 - Changing selection coefficients with setSelectionCoeff().txt
│ │ ├── Recipe 10.6 - Varying the dominance coefficient among mutations I.txt
│ │ ├── Recipe 10.6 - Varying the dominance coefficient among mutations II.txt
│ │ ├── Recipe 11.1 - Assortative mating.txt
│ │ ├── Recipe 11.2 - Sequential mate search I.txt
│ │ ├── Recipe 11.2 - Sequential mate search II.txt
│ │ ├── Recipe 11.3 - Gametophytic self-incompatibility.txt
│ │ ├── Recipe 12.1 - Social learning of cultural traits.txt
│ │ ├── Recipe 12.2 - Lethal epistasis I.txt
│ │ ├── Recipe 12.2 - Lethal epistasis II.txt
│ │ ├── Recipe 12.3 - Simulating gene drive.txt
│ │ ├── Recipe 12.4 - Suppressing hermaphroditic selfing.txt
│ │ ├── Recipe 12.5 - Tracking separate sexes in script.txt
│ │ ├── Recipe 13.1 - Polygenic selection.txt
│ │ ├── Recipe 13.2 - A simple model of variable QTL effect sizes.txt
│ │ ├── Recipe 13.3 - A model of discrete QTL effects across multiple chromosomes.txt
│ │ ├── Recipe 13.4 - A quantitative genetics model with heritability.txt
│ │ ├── Recipe 13.5 - A QTL-based model with two quantitative phenotypic traits and pleiotropy.txt
│ │ ├── Recipe 13.6 - A variety of fitness functions I (stabilizing selection).txt
│ │ ├── Recipe 13.6 - A variety of fitness functions II (directional selection).txt
│ │ ├── Recipe 13.6 - A variety of fitness functions III (disruptive selection).txt
│ │ ├── Recipe 13.6 - A variety of fitness functions IV (truncation selection).txt
│ │ ├── Recipe 13.7 - Negative frequency-dependence on a quantitative trait.txt
│ │ ├── Recipe 14.1 - Relatedness, inbreeding, and heterozygosity.txt
│ │ ├── Recipe 14.10 - Modeling transposable elements.txt
│ │ ├── Recipe 14.11 - Modeling opposite ends of a chromosome I.txt
│ │ ├── Recipe 14.11 - Modeling opposite ends of a chromosome II.txt
│ │ ├── Recipe 14.12 - Visualizing ancestry and admixture with mutation() callbacks.txt
│ │ ├── Recipe 14.13 - Modeling biallelic loci with a mutation() callback I.txt
│ │ ├── Recipe 14.13 - Modeling biallelic loci with a mutation() callback II.txt
│ │ ├── Recipe 14.14 - Modeling biallelic loci in script.txt
│ │ ├── Recipe 14.15 - Using runs of homozygosity (ROH) to track inbreeding.txt
│ │ ├── Recipe 14.16 - Visualizing linkage disequilibrium.txt
│ │ ├── Recipe 14.2 - Mortality-based fitness I.txt
│ │ ├── Recipe 14.2 - Mortality-based fitness II.txt
│ │ ├── Recipe 14.2 - Mortality-based fitness III.txt
│ │ ├── Recipe 14.3 - Reading initial simulation state from an MS output file I.txt
│ │ ├── Recipe 14.3 - Reading initial simulation state from an MS output file II.txt
│ │ ├── Recipe 14.4 - Modeling chromosomal inversions with a recombination() callback.txt
│ │ ├── Recipe 14.5 - Estimating model parameters with ABC.txt
│ │ ├── Recipe 14.6 - Tracking local ancestry along the chromosome.txt
│ │ ├── Recipe 14.7 - Live plotting with R using system().txt
│ │ ├── Recipe 14.8 - Using mutation rate variation to model varying functional density.txt
│ │ ├── Recipe 14.9 - Modeling microsatellites.txt
│ │ ├── Recipe 15.1 - A minimal nonWF model.txt
│ │ ├── Recipe 15.10 - Recording a pedigree.txt
│ │ ├── Recipe 15.11 - Dynamic population structure in nonWF models.txt
│ │ ├── Recipe 15.12 - Implementing a Wright-Fisher model with a nonWF model I.txt
│ │ ├── Recipe 15.12 - Implementing a Wright-Fisher model with a nonWF model II.txt
│ │ ├── Recipe 15.13 - Range expansion in a stepping-stone model I.txt
│ │ ├── Recipe 15.13 - Range expansion in a stepping-stone model II.txt
│ │ ├── Recipe 15.14 - Logistic population growth with the Beverton-Holt model.txt
│ │ ├── Recipe 15.2 - Age structure (a life table model).txt
│ │ ├── Recipe 15.3 - Handling all reproduction at once with big bang reproduction.txt
│ │ ├── Recipe 15.4 - Monogamous mating and variation in litter size.txt
│ │ ├── Recipe 15.5 - Beneficial mutations and absolute fitness.txt
│ │ ├── Recipe 15.6 - A metapopulation extinction-colonization model.txt
│ │ ├── Recipe 15.7 - Habitat choice.txt
│ │ ├── Recipe 15.8 - Evolutionary rescue after environmental change.txt
│ │ ├── Recipe 15.9 - Litter size and parental investment.txt
│ │ ├── Recipe 16.1 - Pollen flow.txt
│ │ ├── Recipe 16.10 - Modeling pseudo-autosomal regions (PARs) with addMultiRecombinant().txt
│ │ ├── Recipe 16.11 - Life-long monogamous mating.txt
│ │ ├── Recipe 16.2 - Following a pedigree.txt
│ │ ├── Recipe 16.3 - Modeling clonal haploid bacteria with horizontal gene transfer.txt
│ │ ├── Recipe 16.4 - Alternation of generations.txt
│ │ ├── Recipe 16.5 - Meiotic drive.txt
│ │ ├── Recipe 16.6 - Sperm storage with a survival() callback.txt
│ │ ├── Recipe 16.7 - Tracking separate sexes in script, nonWF style.txt
│ │ ├── Recipe 16.8 - Modeling haplodiploidy with addRecombinant().txt
│ │ ├── Recipe 16.9 - Complex multi-chromosome inheritance with addMultiRecombinant().txt
│ │ ├── Recipe 17.1 - A simple 2D continuous-space model.txt
│ │ ├── Recipe 17.10 - A simple biogeographic landscape model.txt
│ │ ├── Recipe 17.11 - Local adaptation on a heterogeneous landscape map.txt
│ │ ├── Recipe 17.12 - Periodic spatial boundaries.txt
│ │ ├── Recipe 17.13 - Density-dependent fecundity with summarizeIndividuals().txt
│ │ ├── Recipe 17.14 - Directed dispersal with the SpatialMap class.txt
│ │ ├── Recipe 17.15 - Spatial competition and spatial mate choice in a nonWF model.txt
│ │ ├── Recipe 17.16 - A spatial model with carrying-capacity density.txt
│ │ ├── Recipe 17.17 - A spatial epidemiological S-I-R model.txt
│ │ ├── Recipe 17.18 - A sexual, age-structured spatial model.txt
│ │ ├── Recipe 17.19 - Modeling indirect competition mediated by resource availability.txt
│ │ ├── Recipe 17.2 - Spatial competition.txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions I (stopping boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions II (reflecting boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions III (absorbing boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions IV (reprising boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions V (dispersal kernels).txt
│ │ ├── Recipe 17.4 - Mate choice with a spatial kernel.txt
│ │ ├── Recipe 17.5 - Mate choice with a nearest-neighbor search.txt
│ │ ├── Recipe 17.6 - Divergence due to phenotypic competition with an interaction() callback.txt
│ │ ├── Recipe 17.7 - Modeling phenotype as a spatial dimension.txt
│ │ ├── Recipe 17.8 - Sympatric speciation facilitated by assortative mating.txt
│ │ ├── Recipe 17.9 - Speciation due to spatial variation in selection.txt
│ │ ├── Recipe 18.1 - A minimal tree-seq model.txt
│ │ ├── Recipe 18.10 - Adding a neutral burn-in after simulation with recapitation I.txt
│ │ ├── Recipe 18.10 - Adding a neutral burn-in after simulation with recapitation II.py
│ │ ├── Recipe 18.11 - Optimizing tree-sequence simplification.txt
│ │ ├── Recipe 18.2 - Overlaying neutral mutations.py
│ │ ├── Recipe 18.3 - Simulation conditional upon fixation of a sweep, preserving ancestry I.txt
│ │ ├── Recipe 18.3 - Simulation conditional upon fixation of a sweep, preserving ancestry II.txt
│ │ ├── Recipe 18.4 - Detecting the dip in diversity (analyzing tree heights in Python) I.txt
│ │ ├── Recipe 18.4 - Detecting the dip in diversity (analyzing tree heights in Python) II.py
│ │ ├── Recipe 18.5 - Mapping admixture (analyzing ancestry in Python) I.txt
│ │ ├── Recipe 18.5 - Mapping admixture (analyzing ancestry in Python) II.py
│ │ ├── Recipe 18.6 - Measuring the coalescence time of a model I.txt
│ │ ├── Recipe 18.6 - Measuring the coalescence time of a model II.txt
│ │ ├── Recipe 18.7 - Analyzing selection coefficients in Python with tskit I.txt
│ │ ├── Recipe 18.7 - Analyzing selection coefficients in Python with tskit II.py
│ │ ├── Recipe 18.8 - Starting a hermaphroditic WF model with a coalescent history I.py
│ │ ├── Recipe 18.8 - Starting a hermaphroditic WF model with a coalescent history II.txt
│ │ ├── Recipe 18.8 - Starting a hermaphroditic WF model with a coalescent history III.py
│ │ ├── Recipe 18.9 - Starting a sexual nonWF model with a coalescent history I.py
│ │ ├── Recipe 18.9 - Starting a sexual nonWF model with a coalescent history II.txt
│ │ ├── Recipe 19.1 - A simple neutral nucleotide-based model.txt
│ │ ├── Recipe 19.10 - Varying the mutation rate along the chromosome in a nucleotide-based model.txt
│ │ ├── Recipe 19.11 - Modeling GC-biased gene conversion (gBGC).txt
│ │ ├── Recipe 19.12 - Reading VCF files to create nucleotide-based SNPs.txt
│ │ ├── Recipe 19.13 - Tree-sequence recording and nucleotide-based models I.txt
│ │ ├── Recipe 19.13 - Tree-sequence recording and nucleotide-based models II.py
│ │ ├── Recipe 19.13 - Tree-sequence recording and nucleotide-based models III.py
│ │ ├── Recipe 19.14 - Modeling identity by state (IBS) (uniquing mutations with a mutation() callback).txt
│ │ ├── Recipe 19.15 - Modeling identity by state (IBS) (uniquing back-mutations to the ancestral state).txt
│ │ ├── Recipe 19.2 - Reading an ancestral nucleotide sequence from a FASTA file.txt
│ │ ├── Recipe 19.3 - Sequence output from nucleotide-based models.txt
│ │ ├── Recipe 19.4 - Back-mutations, independent mutational lineages, and VCF output.txt
│ │ ├── Recipe 19.5 - Modeling elevated CpG mutation rates and equilibrium nucleotide frequencies.txt
│ │ ├── Recipe 19.6 - A nucleotide-based model with introduced non-nucleotide-based mutations.txt
│ │ ├── Recipe 19.7 - Using standard SLiM fitness effects with nucleotides (modeling synonymous sites).txt
│ │ ├── Recipe 19.8 - Defining sequence-based fitness effects at the nucleotide level.txt
│ │ ├── Recipe 19.9 - Defining sequence-based fitness effects at the amino acid level.txt
│ │ ├── Recipe 20.1 - A simple multispecies model.txt
│ │ ├── Recipe 20.2 - A two-species model.txt
│ │ ├── Recipe 20.3 - A deterministic host-parasitoid model.txt
│ │ ├── Recipe 20.4 - An individual-based host-parasitoid model I.txt
│ │ ├── Recipe 20.4 - An individual-based host-parasitoid model II.txt
│ │ ├── Recipe 20.5 - A continuous-space host-parasitoid model.txt
│ │ ├── Recipe 20.6 - A coevolutionary host-parasitoid trait-matching model.txt
│ │ ├── Recipe 20.7 - A coevolutionary host-parasite matching-allele model.txt
│ │ ├── Recipe 20.8 - Within-host reproduction in a host-pathogen model.txt
│ │ ├── Recipe 4.1 - A basic neutral simulation.txt
│ │ ├── Recipe 4.1.10 - Using symbolic constants for model parameters.txt
│ │ ├── Recipe 4.2.1 - Basic output, Entire population.txt
│ │ ├── Recipe 4.2.2 - Basic output, Random population sample.txt
│ │ ├── Recipe 4.2.3 - Basic output, Sampling individuals for output.txt
│ │ ├── Recipe 4.2.4 - Basic output, Substitutions.txt
│ │ ├── Recipe 4.2.5 - Basic output, Automatic logging with LogFile.txt
│ │ ├── Recipe 4.2.6 - Basic output, Custom output with Eidos.txt
│ │ ├── Recipe 5.1.1 - Subpopulation size, Instantaneous changes.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth I.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth II.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth III.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth IV.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth V.txt
│ │ ├── Recipe 5.1.4 - Subpopulation size, Cyclical changes.txt
│ │ ├── Recipe 5.1.5 - Subpopulation size, Context-dependent changes (Muller's Ratchet).txt
│ │ ├── Recipe 5.2.1 - Population structure, Adding subpopulations.txt
│ │ ├── Recipe 5.2.2 - Population structure, Removing subpopulations.txt
│ │ ├── Recipe 5.2.3 - Population structure, Splitting subpopulations.txt
│ │ ├── Recipe 5.2.4 - Population structure, Joining subpopulations.txt
│ │ ├── Recipe 5.3.1 - Migration and admixture, A linear stepping-stone model.txt
│ │ ├── Recipe 5.3.2 - Migration and admixture, A non-spatial metapopulation.txt
│ │ ├── Recipe 5.3.3 - Migration and admixture, A two-dimensional subpopulation matrix.txt
│ │ ├── Recipe 5.3.4 - Migration and admixture, A random, sparse spatial metapopulation.txt
│ │ ├── Recipe 5.3.5 - Migration and admixture, Reading a migration matrix from a file.txt
│ │ ├── Recipe 5.4 - The Gravel et al. (2011) model of human evolution I.txt
│ │ ├── Recipe 5.4 - The Gravel et al. (2011) model of human evolution II.txt
│ │ ├── Recipe 5.5 - Rescaling population sizes to improve simulation performance I.txt
│ │ ├── Recipe 5.5 - Rescaling population sizes to improve simulation performance II.txt
│ │ ├── Recipe 6.1 - Genomic structure, Part I (Mutation types and fitness effects).txt
│ │ ├── Recipe 6.2 - Genomic structure, Part II (Genomic element types).txt
│ │ ├── Recipe 6.3 - Genomic structure, Part III (Chromosome organization).txt
│ │ ├── Recipe 6.4 - Genomic structure, Part IV (Custom display colors in SLiMgui).txt
│ │ ├── Recipe 8.1.1 - Reproduction, Enabling separate sexes.txt
│ │ ├── Recipe 8.1.2 - Reproduction, Sex ratios I.txt
│ │ ├── Recipe 8.1.2 - Reproduction, Sex ratios II.txt
│ │ ├── Recipe 8.1.3 - Reproduction, Selfing in hermaphroditic populations.txt
│ │ ├── Recipe 8.1.4 - Reproduction, Cloning I.txt
│ │ ├── Recipe 8.1.4 - Reproduction, Cloning II.txt
│ │ ├── Recipe 8.2.1 - Recombination, Making a random recombination map.txt
│ │ ├── Recipe 8.2.2 - Recombination, Reading a recombination map from a file.txt
│ │ ├── Recipe 8.2.3 - Recombination, Unlinked loci.txt
│ │ ├── Recipe 8.2.4 - Recombination, Gene conversion.txt
│ │ ├── Recipe 8.3.1 - Multiple diploid autosomes.txt
│ │ ├── Recipe 8.3.2 - Clonal haploids and chromosome types.txt
│ │ ├── Recipe 8.3.3 - Haploids with recombination.txt
│ │ ├── Recipe 8.3.4 - Sex-chromosome evolution and null haplosomes.txt
│ │ ├── Recipe 8.3.5 - Modeling the full human genome.txt
│ │ ├── Recipe 8.3.6 - A model of bryophytes with UV sex determination.txt
│ │ ├── Recipe 8.3.7 - Output from multiple-chromosome models.txt
│ │ ├── Recipe 9.1 - Introducing adaptive mutations.txt
│ │ ├── Recipe 9.10 - Tracking the fate of background mutations.txt
│ │ ├── Recipe 9.11 - Effective population size versus census population size.txt
│ │ ├── Recipe 9.12 - Observing the site frequency spectrum (SFS) during selective sweeps.txt
│ │ ├── Recipe 9.2 - Making sweeps conditional on fixation.txt
│ │ ├── Recipe 9.3 - Making sweeps conditional on establishment.txt
│ │ ├── Recipe 9.4 - Partial sweeps.txt
│ │ ├── Recipe 9.5.1 - A soft sweep from recurrent de novo mutations in a large population.txt
│ │ ├── Recipe 9.5.2 - A soft sweep with a fixed de novo mutation schedule.txt
│ │ ├── Recipe 9.5.3 - A soft sweep with a random de novo mutation schedule.txt
│ │ ├── Recipe 9.6.1 - A sweep from standing variation at a random locus.txt
│ │ ├── Recipe 9.6.2 - A sweep from standing variation at a predetermined locus.txt
│ │ ├── Recipe 9.7 - Adaptive introgression.txt
│ │ ├── Recipe 9.8 - Fixation probabilities under Hill-Robertson interference.txt
│ │ ├── Recipe 9.9 - Keeping a reference to a sweep mutation.txt
│ │ └── _README.txt
│ └── recipes.qrc
├── README.md
├── SLiM.pro
├── SLiM.spec
├── SLiM.xcodeproj/
│ ├── project.pbxproj
│ ├── project.xcworkspace/
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata/
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── WorkspaceSettings.xcsettings
│ └── xcshareddata/
│ └── xcschemes/
│ ├── EidosScribe.xcscheme
│ ├── EidosScribe_multi.xcscheme
│ ├── SLiM.xcscheme
│ ├── SLiM_multi.xcscheme
│ ├── SLiMguiLegacy.xcscheme
│ ├── SLiMguiLegacy_multi.xcscheme
│ ├── eidos.xcscheme
│ └── eidos_multi.xcscheme
├── SLiMgui/
│ ├── AppDelegate.h
│ ├── AppDelegate.mm
│ ├── Base.lproj/
│ │ ├── AboutWindow.xib
│ │ ├── FindRecipePanel.xib
│ │ ├── GraphAxisRescaleSheet.xib
│ │ ├── GraphBarRescaleSheet.xib
│ │ ├── GraphWindow.xib
│ │ ├── HelpWindow.xib
│ │ ├── MainMenu.xib
│ │ ├── ProfileReport.xib
│ │ ├── SLiMWindow.xib
│ │ ├── ScriptModSheet.xib
│ │ ├── ScriptMod_AddGenomicElement.xib
│ │ ├── ScriptMod_AddGenomicElementType.xib
│ │ ├── ScriptMod_AddMutationType.xib
│ │ ├── ScriptMod_AddRecombinationRate.xib
│ │ ├── ScriptMod_AddSexConfiguration.xib
│ │ ├── ScriptMod_AddSubpop.xib
│ │ ├── ScriptMod_ChangeCloning.xib
│ │ ├── ScriptMod_ChangeMigration.xib
│ │ ├── ScriptMod_ChangeSelfing.xib
│ │ ├── ScriptMod_ChangeSexRatio.xib
│ │ ├── ScriptMod_ChangeSubpopSize.xib
│ │ ├── ScriptMod_OutputFixedMutations.xib
│ │ ├── ScriptMod_OutputFullPopulation.xib
│ │ ├── ScriptMod_OutputSubpopSample.xib
│ │ ├── ScriptMod_RemoveSubpop.xib
│ │ ├── ScriptMod_SplitSubpop.xib
│ │ └── TipsWindow.xib
│ ├── ChromosomeView.h
│ ├── ChromosomeView.mm
│ ├── CocoaExtra.h
│ ├── CocoaExtra.mm
│ ├── FindRecipeController.h
│ ├── FindRecipeController.mm
│ ├── GraphView.h
│ ├── GraphView.mm
│ ├── GraphView_FitnessOverTime.h
│ ├── GraphView_FitnessOverTime.mm
│ ├── GraphView_MutationFixationTimeHistogram.h
│ ├── GraphView_MutationFixationTimeHistogram.mm
│ ├── GraphView_MutationFrequencySpectra.h
│ ├── GraphView_MutationFrequencySpectra.mm
│ ├── GraphView_MutationFrequencyTrajectory.h
│ ├── GraphView_MutationFrequencyTrajectory.mm
│ ├── GraphView_MutationLossTimeHistogram.h
│ ├── GraphView_MutationLossTimeHistogram.mm
│ ├── GraphView_PopulationVisualization.h
│ ├── GraphView_PopulationVisualization.mm
│ ├── Images.xcassets/
│ │ └── AppIcon.appiconset/
│ │ └── Contents.json
│ ├── PopulationView.h
│ ├── PopulationView.mm
│ ├── Recipes/
│ │ ├── Recipe 10.1 - Temporally varying selection.txt
│ │ ├── Recipe 10.2 - Spatially varying selection.txt
│ │ ├── Recipe 10.3.1 - Fitness as a function of genomic background, Epistasis I.txt
│ │ ├── Recipe 10.3.1 - Fitness as a function of genomic background, Epistasis II.txt
│ │ ├── Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection I.txt
│ │ ├── Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection II.txt
│ │ ├── Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection III.txt
│ │ ├── Recipe 10.4.2 - Fitness as a function of population composition, Cultural effects on fitness.txt
│ │ ├── Recipe 10.4.3 - Fitness as a function of population composition, Kin selection and the green-beard effect.txt
│ │ ├── Recipe 10.5 - Changing selection coefficients with setSelectionCoeff().txt
│ │ ├── Recipe 10.6 - Varying the dominance coefficient among mutations I.txt
│ │ ├── Recipe 10.6 - Varying the dominance coefficient among mutations II.txt
│ │ ├── Recipe 11.1 - Assortative mating.txt
│ │ ├── Recipe 11.2 - Sequential mate search I.txt
│ │ ├── Recipe 11.2 - Sequential mate search II.txt
│ │ ├── Recipe 11.3 - Gametophytic self-incompatibility.txt
│ │ ├── Recipe 12.1 - Social learning of cultural traits.txt
│ │ ├── Recipe 12.2 - Lethal epistasis I.txt
│ │ ├── Recipe 12.2 - Lethal epistasis II.txt
│ │ ├── Recipe 12.3 - Simulating gene drive.txt
│ │ ├── Recipe 12.4 - Suppressing hermaphroditic selfing.txt
│ │ ├── Recipe 12.5 - Tracking separate sexes in script.txt
│ │ ├── Recipe 13.1 - Polygenic selection.txt
│ │ ├── Recipe 13.2 - A simple model of variable QTL effect sizes.txt
│ │ ├── Recipe 13.3 - A model of discrete QTL effects across multiple chromosomes.txt
│ │ ├── Recipe 13.4 - A quantitative genetics model with heritability.txt
│ │ ├── Recipe 13.5 - A QTL-based model with two quantitative phenotypic traits and pleiotropy.txt
│ │ ├── Recipe 13.6 - A variety of fitness functions I (stabilizing selection).txt
│ │ ├── Recipe 13.6 - A variety of fitness functions II (directional selection).txt
│ │ ├── Recipe 13.6 - A variety of fitness functions III (disruptive selection).txt
│ │ ├── Recipe 13.6 - A variety of fitness functions IV (truncation selection).txt
│ │ ├── Recipe 13.7 - Negative frequency-dependence on a quantitative trait.txt
│ │ ├── Recipe 14.1 - Relatedness, inbreeding, and heterozygosity.txt
│ │ ├── Recipe 14.10 - Modeling transposable elements.txt
│ │ ├── Recipe 14.11 - Modeling opposite ends of a chromosome I.txt
│ │ ├── Recipe 14.11 - Modeling opposite ends of a chromosome II.txt
│ │ ├── Recipe 14.12 - Visualizing ancestry and admixture with mutation() callbacks.txt
│ │ ├── Recipe 14.13 - Modeling biallelic loci with a mutation() callback I.txt
│ │ ├── Recipe 14.13 - Modeling biallelic loci with a mutation() callback II.txt
│ │ ├── Recipe 14.14 - Modeling biallelic loci in script.txt
│ │ ├── Recipe 14.15 - Using runs of homozygosity (ROH) to track inbreeding.txt
│ │ ├── Recipe 14.16 - Visualizing linkage disequilibrium.txt
│ │ ├── Recipe 14.2 - Mortality-based fitness I.txt
│ │ ├── Recipe 14.2 - Mortality-based fitness II.txt
│ │ ├── Recipe 14.2 - Mortality-based fitness III.txt
│ │ ├── Recipe 14.3 - Reading initial simulation state from an MS output file I.txt
│ │ ├── Recipe 14.3 - Reading initial simulation state from an MS output file II.txt
│ │ ├── Recipe 14.4 - Modeling chromosomal inversions with a recombination() callback.txt
│ │ ├── Recipe 14.5 - Estimating model parameters with ABC.txt
│ │ ├── Recipe 14.6 - Tracking local ancestry along the chromosome.txt
│ │ ├── Recipe 14.7 - Live plotting with R using system().txt
│ │ ├── Recipe 14.8 - Using mutation rate variation to model varying functional density.txt
│ │ ├── Recipe 14.9 - Modeling microsatellites.txt
│ │ ├── Recipe 15.1 - A minimal nonWF model.txt
│ │ ├── Recipe 15.10 - Recording a pedigree.txt
│ │ ├── Recipe 15.11 - Dynamic population structure in nonWF models.txt
│ │ ├── Recipe 15.12 - Implementing a Wright-Fisher model with a nonWF model I.txt
│ │ ├── Recipe 15.12 - Implementing a Wright-Fisher model with a nonWF model II.txt
│ │ ├── Recipe 15.13 - Range expansion in a stepping-stone model I.txt
│ │ ├── Recipe 15.13 - Range expansion in a stepping-stone model II.txt
│ │ ├── Recipe 15.14 - Logistic population growth with the Beverton-Holt model.txt
│ │ ├── Recipe 15.2 - Age structure (a life table model).txt
│ │ ├── Recipe 15.3 - Handling all reproduction at once with big bang reproduction.txt
│ │ ├── Recipe 15.4 - Monogamous mating and variation in litter size.txt
│ │ ├── Recipe 15.5 - Beneficial mutations and absolute fitness.txt
│ │ ├── Recipe 15.6 - A metapopulation extinction-colonization model.txt
│ │ ├── Recipe 15.7 - Habitat choice.txt
│ │ ├── Recipe 15.8 - Evolutionary rescue after environmental change.txt
│ │ ├── Recipe 15.9 - Litter size and parental investment.txt
│ │ ├── Recipe 16.1 - Pollen flow.txt
│ │ ├── Recipe 16.10 - Modeling pseudo-autosomal regions (PARs) with addMultiRecombinant().txt
│ │ ├── Recipe 16.11 - Life-long monogamous mating.txt
│ │ ├── Recipe 16.2 - Following a pedigree.txt
│ │ ├── Recipe 16.3 - Modeling clonal haploid bacteria with horizontal gene transfer.txt
│ │ ├── Recipe 16.4 - Alternation of generations.txt
│ │ ├── Recipe 16.5 - Meiotic drive.txt
│ │ ├── Recipe 16.6 - Sperm storage with a survival() callback.txt
│ │ ├── Recipe 16.7 - Tracking separate sexes in script, nonWF style.txt
│ │ ├── Recipe 16.8 - Modeling haplodiploidy with addRecombinant().txt
│ │ ├── Recipe 16.9 - Complex multi-chromosome inheritance with addMultiRecombinant().txt
│ │ ├── Recipe 17.1 - A simple 2D continuous-space model.txt
│ │ ├── Recipe 17.10 - A simple biogeographic landscape model.txt
│ │ ├── Recipe 17.11 - Local adaptation on a heterogeneous landscape map.txt
│ │ ├── Recipe 17.12 - Periodic spatial boundaries.txt
│ │ ├── Recipe 17.13 - Density-dependent fecundity with summarizeIndividuals().txt
│ │ ├── Recipe 17.14 - Directed dispersal with the SpatialMap class.txt
│ │ ├── Recipe 17.15 - Spatial competition and spatial mate choice in a nonWF model.txt
│ │ ├── Recipe 17.16 - A spatial model with carrying-capacity density.txt
│ │ ├── Recipe 17.17 - A spatial epidemiological S-I-R model.txt
│ │ ├── Recipe 17.18 - A sexual, age-structured spatial model.txt
│ │ ├── Recipe 17.19 - Modeling indirect competition mediated by resource availability.txt
│ │ ├── Recipe 17.2 - Spatial competition.txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions I (stopping boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions II (reflecting boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions III (absorbing boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions IV (reprising boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions V (dispersal kernels).txt
│ │ ├── Recipe 17.4 - Mate choice with a spatial kernel.txt
│ │ ├── Recipe 17.5 - Mate choice with a nearest-neighbor search.txt
│ │ ├── Recipe 17.6 - Divergence due to phenotypic competition with an interaction() callback.txt
│ │ ├── Recipe 17.7 - Modeling phenotype as a spatial dimension.txt
│ │ ├── Recipe 17.8 - Sympatric speciation facilitated by assortative mating.txt
│ │ ├── Recipe 17.9 - Speciation due to spatial variation in selection.txt
│ │ ├── Recipe 18.1 - A minimal tree-seq model.txt
│ │ ├── Recipe 18.10 - Adding a neutral burn-in after simulation with recapitation I.txt
│ │ ├── Recipe 18.10 - Adding a neutral burn-in after simulation with recapitation II.py
│ │ ├── Recipe 18.11 - Optimizing tree-sequence simplification.txt
│ │ ├── Recipe 18.2 - Overlaying neutral mutations.py
│ │ ├── Recipe 18.3 - Simulation conditional upon fixation of a sweep, preserving ancestry I.txt
│ │ ├── Recipe 18.3 - Simulation conditional upon fixation of a sweep, preserving ancestry II.txt
│ │ ├── Recipe 18.4 - Detecting the dip in diversity (analyzing tree heights in Python) I.txt
│ │ ├── Recipe 18.4 - Detecting the dip in diversity (analyzing tree heights in Python) II.py
│ │ ├── Recipe 18.5 - Mapping admixture (analyzing ancestry in Python) I.txt
│ │ ├── Recipe 18.5 - Mapping admixture (analyzing ancestry in Python) II.py
│ │ ├── Recipe 18.6 - Measuring the coalescence time of a model I.txt
│ │ ├── Recipe 18.6 - Measuring the coalescence time of a model II.txt
│ │ ├── Recipe 18.7 - Analyzing selection coefficients in Python with tskit I.txt
│ │ ├── Recipe 18.7 - Analyzing selection coefficients in Python with tskit II.py
│ │ ├── Recipe 18.8 - Starting a hermaphroditic WF model with a coalescent history I.py
│ │ ├── Recipe 18.8 - Starting a hermaphroditic WF model with a coalescent history II.txt
│ │ ├── Recipe 18.8 - Starting a hermaphroditic WF model with a coalescent history III.py
│ │ ├── Recipe 18.9 - Starting a sexual nonWF model with a coalescent history I.py
│ │ ├── Recipe 18.9 - Starting a sexual nonWF model with a coalescent history II.txt
│ │ ├── Recipe 19.1 - A simple neutral nucleotide-based model.txt
│ │ ├── Recipe 19.10 - Varying the mutation rate along the chromosome in a nucleotide-based model.txt
│ │ ├── Recipe 19.11 - Modeling GC-biased gene conversion (gBGC).txt
│ │ ├── Recipe 19.12 - Reading VCF files to create nucleotide-based SNPs.txt
│ │ ├── Recipe 19.13 - Tree-sequence recording and nucleotide-based models I.txt
│ │ ├── Recipe 19.13 - Tree-sequence recording and nucleotide-based models II.py
│ │ ├── Recipe 19.13 - Tree-sequence recording and nucleotide-based models III.py
│ │ ├── Recipe 19.14 - Modeling identity by state (IBS) (uniquing mutations with a mutation() callback).txt
│ │ ├── Recipe 19.15 - Modeling identity by state (IBS) (uniquing back-mutations to the ancestral state).txt
│ │ ├── Recipe 19.2 - Reading an ancestral nucleotide sequence from a FASTA file.txt
│ │ ├── Recipe 19.3 - Sequence output from nucleotide-based models.txt
│ │ ├── Recipe 19.4 - Back-mutations, independent mutational lineages, and VCF output.txt
│ │ ├── Recipe 19.5 - Modeling elevated CpG mutation rates and equilibrium nucleotide frequencies.txt
│ │ ├── Recipe 19.6 - A nucleotide-based model with introduced non-nucleotide-based mutations.txt
│ │ ├── Recipe 19.7 - Using standard SLiM fitness effects with nucleotides (modeling synonymous sites).txt
│ │ ├── Recipe 19.8 - Defining sequence-based fitness effects at the nucleotide level.txt
│ │ ├── Recipe 19.9 - Defining sequence-based fitness effects at the amino acid level.txt
│ │ ├── Recipe 20.1 - A simple multispecies model.txt
│ │ ├── Recipe 20.2 - A two-species model.txt
│ │ ├── Recipe 20.3 - A deterministic host-parasitoid model.txt
│ │ ├── Recipe 20.4 - An individual-based host-parasitoid model I.txt
│ │ ├── Recipe 20.4 - An individual-based host-parasitoid model II.txt
│ │ ├── Recipe 20.5 - A continuous-space host-parasitoid model.txt
│ │ ├── Recipe 20.6 - A coevolutionary host-parasitoid trait-matching model.txt
│ │ ├── Recipe 20.7 - A coevolutionary host-parasite matching-allele model.txt
│ │ ├── Recipe 20.8 - Within-host reproduction in a host-pathogen model.txt
│ │ ├── Recipe 4.1 - A basic neutral simulation.txt
│ │ ├── Recipe 4.1.10 - Using symbolic constants for model parameters.txt
│ │ ├── Recipe 4.2.1 - Basic output, Entire population.txt
│ │ ├── Recipe 4.2.2 - Basic output, Random population sample.txt
│ │ ├── Recipe 4.2.3 - Basic output, Sampling individuals for output.txt
│ │ ├── Recipe 4.2.4 - Basic output, Substitutions.txt
│ │ ├── Recipe 4.2.5 - Basic output, Automatic logging with LogFile.txt
│ │ ├── Recipe 4.2.6 - Basic output, Custom output with Eidos.txt
│ │ ├── Recipe 5.1.1 - Subpopulation size, Instantaneous changes.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth I.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth II.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth III.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth IV.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth V.txt
│ │ ├── Recipe 5.1.4 - Subpopulation size, Cyclical changes.txt
│ │ ├── Recipe 5.1.5 - Subpopulation size, Context-dependent changes (Muller's Ratchet).txt
│ │ ├── Recipe 5.2.1 - Population structure, Adding subpopulations.txt
│ │ ├── Recipe 5.2.2 - Population structure, Removing subpopulations.txt
│ │ ├── Recipe 5.2.3 - Population structure, Splitting subpopulations.txt
│ │ ├── Recipe 5.2.4 - Population structure, Joining subpopulations.txt
│ │ ├── Recipe 5.3.1 - Migration and admixture, A linear stepping-stone model.txt
│ │ ├── Recipe 5.3.2 - Migration and admixture, A non-spatial metapopulation.txt
│ │ ├── Recipe 5.3.3 - Migration and admixture, A two-dimensional subpopulation matrix.txt
│ │ ├── Recipe 5.3.4 - Migration and admixture, A random, sparse spatial metapopulation.txt
│ │ ├── Recipe 5.3.5 - Migration and admixture, Reading a migration matrix from a file.txt
│ │ ├── Recipe 5.4 - The Gravel et al. (2011) model of human evolution I.txt
│ │ ├── Recipe 5.4 - The Gravel et al. (2011) model of human evolution II.txt
│ │ ├── Recipe 5.5 - Rescaling population sizes to improve simulation performance I.txt
│ │ ├── Recipe 5.5 - Rescaling population sizes to improve simulation performance II.txt
│ │ ├── Recipe 6.1 - Genomic structure, Part I (Mutation types and fitness effects).txt
│ │ ├── Recipe 6.2 - Genomic structure, Part II (Genomic element types).txt
│ │ ├── Recipe 6.3 - Genomic structure, Part III (Chromosome organization).txt
│ │ ├── Recipe 6.4 - Genomic structure, Part IV (Custom display colors in SLiMgui).txt
│ │ ├── Recipe 8.1.1 - Reproduction, Enabling separate sexes.txt
│ │ ├── Recipe 8.1.2 - Reproduction, Sex ratios I.txt
│ │ ├── Recipe 8.1.2 - Reproduction, Sex ratios II.txt
│ │ ├── Recipe 8.1.3 - Reproduction, Selfing in hermaphroditic populations.txt
│ │ ├── Recipe 8.1.4 - Reproduction, Cloning I.txt
│ │ ├── Recipe 8.1.4 - Reproduction, Cloning II.txt
│ │ ├── Recipe 8.2.1 - Recombination, Making a random recombination map.txt
│ │ ├── Recipe 8.2.2 - Recombination, Reading a recombination map from a file.txt
│ │ ├── Recipe 8.2.3 - Recombination, Unlinked loci.txt
│ │ ├── Recipe 8.2.4 - Recombination, Gene conversion.txt
│ │ ├── Recipe 8.3.1 - Multiple diploid autosomes.txt
│ │ ├── Recipe 8.3.2 - Clonal haploids and chromosome types.txt
│ │ ├── Recipe 8.3.3 - Haploids with recombination.txt
│ │ ├── Recipe 8.3.4 - Sex-chromosome evolution and null haplosomes.txt
│ │ ├── Recipe 8.3.5 - Modeling the full human genome.txt
│ │ ├── Recipe 8.3.6 - A model of bryophytes with UV sex determination.txt
│ │ ├── Recipe 8.3.7 - Output from multiple-chromosome models.txt
│ │ ├── Recipe 9.1 - Introducing adaptive mutations.txt
│ │ ├── Recipe 9.10 - Tracking the fate of background mutations.txt
│ │ ├── Recipe 9.11 - Effective population size versus census population size.txt
│ │ ├── Recipe 9.12 - Observing the site frequency spectrum (SFS) during selective sweeps.txt
│ │ ├── Recipe 9.2 - Making sweeps conditional on fixation.txt
│ │ ├── Recipe 9.3 - Making sweeps conditional on establishment.txt
│ │ ├── Recipe 9.4 - Partial sweeps.txt
│ │ ├── Recipe 9.5.1 - A soft sweep from recurrent de novo mutations in a large population.txt
│ │ ├── Recipe 9.5.2 - A soft sweep with a fixed de novo mutation schedule.txt
│ │ ├── Recipe 9.5.3 - A soft sweep with a random de novo mutation schedule.txt
│ │ ├── Recipe 9.6.1 - A sweep from standing variation at a random locus.txt
│ │ ├── Recipe 9.6.2 - A sweep from standing variation at a predetermined locus.txt
│ │ ├── Recipe 9.7 - Adaptive introgression.txt
│ │ ├── Recipe 9.8 - Fixation probabilities under Hill-Robertson interference.txt
│ │ ├── Recipe 9.9 - Keeping a reference to a sweep mutation.txt
│ │ └── _README.txt
│ ├── SLiMDocument.h
│ ├── SLiMDocument.mm
│ ├── SLiMDocumentController.h
│ ├── SLiMDocumentController.mm
│ ├── SLiMHelpCallbacks.rtf
│ ├── SLiMHelpClasses.rtf
│ ├── SLiMHelpFunctions.rtf
│ ├── SLiMPDFDocument.h
│ ├── SLiMPDFDocument.mm
│ ├── SLiMPDFView.h
│ ├── SLiMPDFView.mm
│ ├── SLiMPDFWindow.xib
│ ├── SLiMPDFWindowController.h
│ ├── SLiMPDFWindowController.mm
│ ├── SLiMWindowController.h
│ ├── SLiMWindowController.mm
│ ├── SLiMgui.entitlements
│ ├── SLiMguiLegacy-Info.plist
│ ├── SLiMguiLegacy_multi-Info.plist
│ ├── SLiMguiLegacy_multi.entitlements
│ ├── Tip_END.rtfd/
│ │ ├── Pasted Graphic.tiff
│ │ └── TXT.rtf
│ ├── Tips/
│ │ ├── Tip 1 optclick for help.rtfd/
│ │ │ ├── Pasted Graphic 5.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 10 generation textfield.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic 2.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 11 chromosome subrange.rtfd/
│ │ │ ├── Pasted Graphic 2.tiff
│ │ │ ├── Pasted Graphic 3.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 12 see script object text.rtfd/
│ │ │ ├── Pasted Graphic 2.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 13 speed slider.rtfd/
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 14 console window.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 15 variable browser.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic 2.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 16 chromosome muttypes.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic 2.tiff
│ │ │ ├── Pasted Graphic 4.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 17 population display options.rtfd/
│ │ │ ├── Pasted Graphic 6.tiff
│ │ │ ├── Pasted Graphic 7.tiff
│ │ │ ├── Pasted Graphic 8.tiff
│ │ │ ├── Pasted Graphic 9.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 18 profiling simulations.rtfd/
│ │ │ └── TXT.rtf
│ │ ├── Tip 19 chromosome haplotypes.rtfd/
│ │ │ └── TXT.rtf
│ │ ├── Tip 2 autogen script.rtfd/
│ │ │ ├── Pasted Graphic 2.tiff
│ │ │ ├── Pasted Graphic 3.tiff
│ │ │ ├── Pasted Graphic 4.tiff
│ │ │ ├── Pasted Graphic 5.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 20 script prettyprinting.rtfd/
│ │ │ └── TXT.rtf
│ │ ├── Tip 21 MutationType DFE visualization.rtfd/
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 3 see prototypes.rtfd/
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 4 code completion.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic 4.tiff
│ │ │ ├── Pasted Graphic 5.tiff
│ │ │ ├── Pasted Graphic 6.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 5 config chromosome view.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 6 fast recipe access.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 7 comment in out.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 8 shift left right.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ └── Tip 9 help by title or content.rtfd/
│ │ ├── Pasted Graphic 1.tiff
│ │ └── TXT.rtf
│ ├── TipsWindowController.h
│ ├── TipsWindowController.m
│ ├── main.m
│ ├── plot.h
│ ├── plot.mm
│ ├── slim_gui.h
│ └── slim_gui.mm
├── TO_DO
├── VERSIONS
├── cmake/
│ ├── AboutTheseModules.cmake
│ ├── GetGitRevisionDescription.cmake
│ ├── GetGitRevisionDescription.cmake.in
│ ├── GitSHA1.cpp.in
│ ├── GitSHA1.h
│ ├── GitSHA1_Xcode.cpp
│ ├── GitSHA1_qmake.cpp
│ ├── LICENSE_1_0.txt
│ ├── README.markdown
│ ├── _README.txt
│ └── toolchain-mingw64.cmake
├── codecov.yml
├── core/
│ ├── chromosome.cpp
│ ├── chromosome.h
│ ├── community.cpp
│ ├── community.h
│ ├── community_eidos.cpp
│ ├── core.pro
│ ├── genomic_element.cpp
│ ├── genomic_element.h
│ ├── genomic_element_type.cpp
│ ├── genomic_element_type.h
│ ├── haplosome.cpp
│ ├── haplosome.h
│ ├── individual.cpp
│ ├── individual.h
│ ├── interaction_type.cpp
│ ├── interaction_type.h
│ ├── log_file.cpp
│ ├── log_file.h
│ ├── main.cpp
│ ├── mutation.cpp
│ ├── mutation.h
│ ├── mutation_run.cpp
│ ├── mutation_run.h
│ ├── mutation_type.cpp
│ ├── mutation_type.h
│ ├── polymorphism.cpp
│ ├── polymorphism.h
│ ├── population.cpp
│ ├── population.h
│ ├── slim_eidos_block.cpp
│ ├── slim_eidos_block.h
│ ├── slim_functions.cpp
│ ├── slim_functions.h
│ ├── slim_globals.cpp
│ ├── slim_globals.h
│ ├── slim_test.cpp
│ ├── slim_test.h
│ ├── slim_test_core.cpp
│ ├── slim_test_genetics.cpp
│ ├── slim_test_other.cpp
│ ├── slim_test_parallel.h
│ ├── sparse_vector.cpp
│ ├── sparse_vector.h
│ ├── spatial_kernel.cpp
│ ├── spatial_kernel.h
│ ├── spatial_map.cpp
│ ├── spatial_map.h
│ ├── species.cpp
│ ├── species.h
│ ├── species_eidos.cpp
│ ├── subpopulation.cpp
│ ├── subpopulation.h
│ ├── substitution.cpp
│ └── substitution.h
├── data/
│ ├── applications/
│ │ └── org.messerlab.slimgui.desktop
│ ├── metainfo/
│ │ ├── org.messerlab.slimgui.appdata.xml
│ │ └── org.messerlab.slimgui.metainfo.xml
│ └── mime/
│ └── packages/
│ └── org.messerlab.slimgui-mime.xml
├── debian/
│ ├── changelog
│ ├── compat
│ ├── control
│ ├── copyright
│ ├── rules
│ ├── slimsim.install
│ └── source/
│ └── format
├── eidos/
│ ├── eidos.pro
│ ├── eidos_ast_node.cpp
│ ├── eidos_ast_node.h
│ ├── eidos_beep.cpp
│ ├── eidos_beep.h
│ ├── eidos_call_signature.cpp
│ ├── eidos_call_signature.h
│ ├── eidos_class_DataFrame.cpp
│ ├── eidos_class_DataFrame.h
│ ├── eidos_class_Dictionary.cpp
│ ├── eidos_class_Dictionary.h
│ ├── eidos_class_Image.cpp
│ ├── eidos_class_Image.h
│ ├── eidos_class_Object.cpp
│ ├── eidos_class_Object.h
│ ├── eidos_class_TestElement.cpp
│ ├── eidos_class_TestElement.h
│ ├── eidos_functions.cpp
│ ├── eidos_functions.h
│ ├── eidos_functions_colors.cpp
│ ├── eidos_functions_distributions.cpp
│ ├── eidos_functions_files.cpp
│ ├── eidos_functions_math.cpp
│ ├── eidos_functions_matrices.cpp
│ ├── eidos_functions_other.cpp
│ ├── eidos_functions_stats.cpp
│ ├── eidos_functions_strings.cpp
│ ├── eidos_functions_values.cpp
│ ├── eidos_globals.cpp
│ ├── eidos_globals.h
│ ├── eidos_interpreter.cpp
│ ├── eidos_interpreter.h
│ ├── eidos_intrusive_ptr.h
│ ├── eidos_object_pool.h
│ ├── eidos_openmp.h
│ ├── eidos_property_signature.cpp
│ ├── eidos_property_signature.h
│ ├── eidos_rng.cpp
│ ├── eidos_rng.h
│ ├── eidos_script.cpp
│ ├── eidos_script.h
│ ├── eidos_simd.h
│ ├── eidos_sorting.cpp
│ ├── eidos_sorting.h
│ ├── eidos_sorting.inc
│ ├── eidos_symbol_table.cpp
│ ├── eidos_symbol_table.h
│ ├── eidos_test.cpp
│ ├── eidos_test.h
│ ├── eidos_test_builtins.h
│ ├── eidos_test_functions_math.cpp
│ ├── eidos_test_functions_other.cpp
│ ├── eidos_test_functions_statistics.cpp
│ ├── eidos_test_functions_vector.cpp
│ ├── eidos_test_operators_arithmetic.cpp
│ ├── eidos_test_operators_comparison.cpp
│ ├── eidos_test_operators_other.cpp
│ ├── eidos_test_parallel.h
│ ├── eidos_tinycolormap.h
│ ├── eidos_token.cpp
│ ├── eidos_token.h
│ ├── eidos_type_interpreter.cpp
│ ├── eidos_type_interpreter.h
│ ├── eidos_type_table.cpp
│ ├── eidos_type_table.h
│ ├── eidos_value.cpp
│ ├── eidos_value.h
│ ├── json.hpp
│ ├── json_fwd.hpp
│ ├── lodepng.cpp
│ ├── lodepng.h
│ ├── pcg_extras.hpp
│ ├── pcg_random.hpp
│ ├── robin_hood.h
│ └── sleef/
│ ├── LICENSE
│ ├── SLEEF_HEADER_GENERATION.md
│ ├── generate_arm_sleef.sh
│ ├── generate_avx2_sleef.sh
│ ├── sleef_config.h
│ ├── sleefinline_advsimd.h
│ └── sleefinline_avx2.h
├── eidos_multi.entitlements
├── eidos_zlib/
│ ├── ChangeLog
│ ├── README
│ ├── adler32.c
│ ├── compress.c
│ ├── crc32.c
│ ├── crc32.h
│ ├── deflate.c
│ ├── deflate.h
│ ├── eidos_zlib.pro
│ ├── gzguts.h
│ ├── gzlib.c
│ ├── gzwrite.c
│ ├── trees.c
│ ├── trees.h
│ ├── zconf.h
│ ├── zlib.h
│ ├── zutil.c
│ └── zutil.h
├── eidostool/
│ └── main.cpp
├── gsl/
│ ├── AUTHORS
│ ├── COPYING
│ ├── README
│ ├── THANKS
│ ├── _README
│ ├── blas/
│ │ ├── blas.c
│ │ ├── gsl_blas.h
│ │ └── gsl_blas_types.h
│ ├── block/
│ │ ├── gsl_block.h
│ │ ├── gsl_block_double.h
│ │ ├── gsl_check_range.h
│ │ ├── init.c
│ │ └── init_source.inc
│ ├── build.h
│ ├── cblas/
│ │ ├── cblas.h
│ │ ├── daxpy.c
│ │ ├── ddot.c
│ │ ├── dgemv.c
│ │ ├── dtrmv.c
│ │ ├── dtrsv.c
│ │ ├── error_cblas.h
│ │ ├── error_cblas_l2.h
│ │ ├── gsl_cblas.h
│ │ ├── source_axpy_r.h
│ │ ├── source_dot_r.h
│ │ ├── source_gemv_r.h
│ │ ├── source_trmv_r.h
│ │ ├── source_trsv_r.h
│ │ └── xerbla.c
│ ├── cdf/
│ │ ├── beta_inc.inc
│ │ ├── gauss.c
│ │ ├── gaussinv.c
│ │ ├── gsl_cdf.h
│ │ ├── rat_eval.h
│ │ └── tdist.c
│ ├── complex/
│ │ ├── gsl_complex.h
│ │ ├── gsl_complex_math.h
│ │ ├── inline.c
│ │ └── math.c
│ ├── config.h
│ ├── err/
│ │ ├── error.c
│ │ ├── gsl_message.h
│ │ ├── message.c
│ │ └── stream.c
│ ├── gsl.pro
│ ├── gsl_errno.h
│ ├── gsl_inline.h
│ ├── gsl_machine.h
│ ├── gsl_math.h
│ ├── gsl_minmax.h
│ ├── gsl_nan.h
│ ├── gsl_pow_int.h
│ ├── gsl_precision.h
│ ├── gsl_types.h
│ ├── gsl_version.h
│ ├── interpolation/
│ │ ├── accel.c
│ │ ├── akima.c
│ │ ├── bicubic.c
│ │ ├── bilinear.c
│ │ ├── cspline.c
│ │ ├── gsl_interp.h
│ │ ├── gsl_interp2d.h
│ │ ├── gsl_spline.h
│ │ ├── gsl_spline2d.h
│ │ ├── inline.c
│ │ ├── integ_eval.h
│ │ ├── interp.c
│ │ ├── interp2d.c
│ │ ├── linear.c
│ │ ├── spline.c
│ │ └── spline2d.c
│ ├── linalg/
│ │ ├── cholesky.c
│ │ ├── gsl_linalg.h
│ │ ├── lu.c
│ │ ├── tridiag.c
│ │ └── tridiag.h
│ ├── matrix/
│ │ ├── copy.c
│ │ ├── copy_source.inc
│ │ ├── gsl_matrix.h
│ │ ├── gsl_matrix_double.h
│ │ ├── init.c
│ │ ├── init_source.inc
│ │ ├── matrix.c
│ │ ├── rowcol.c
│ │ ├── rowcol_source.inc
│ │ ├── submatrix.c
│ │ ├── submatrix_source.inc
│ │ ├── swap.c
│ │ ├── swap_source.inc
│ │ └── view.h
│ ├── permutation/
│ │ ├── gsl_permutation.h
│ │ ├── gsl_permute.h
│ │ ├── gsl_permute_double.h
│ │ ├── gsl_permute_matrix.h
│ │ ├── gsl_permute_matrix_double.h
│ │ ├── gsl_permute_vector.h
│ │ ├── gsl_permute_vector_double.h
│ │ ├── init.c
│ │ ├── permutation.c
│ │ ├── permute.c
│ │ └── permute_source.inc
│ ├── randist/
│ │ ├── beta.c
│ │ ├── binomial_tpe.c
│ │ ├── cauchy.c
│ │ ├── chisq.c
│ │ ├── dirichlet.c
│ │ ├── discrete.c
│ │ ├── exponential.c
│ │ ├── fdist.c
│ │ ├── gamma.c
│ │ ├── gauss.c
│ │ ├── gausszig.c
│ │ ├── geometric.c
│ │ ├── gsl_randist.h
│ │ ├── laplace.c
│ │ ├── lognormal.c
│ │ ├── multinomial.c
│ │ ├── mvgauss.c
│ │ ├── nbinomial.c
│ │ ├── poisson.c
│ │ ├── shuffle.c
│ │ ├── tdist.c
│ │ └── weibull.c
│ ├── rng/
│ │ ├── gsl_rng.h
│ │ ├── inline.c
│ │ ├── mt.c
│ │ ├── rng.c
│ │ └── taus.c
│ ├── specfunc/
│ │ ├── beta.c
│ │ ├── cheb_eval.inc
│ │ ├── chebyshev.h
│ │ ├── check.h
│ │ ├── elementary.c
│ │ ├── erfc.c
│ │ ├── error.h
│ │ ├── eval.h
│ │ ├── exp.c
│ │ ├── expint.c
│ │ ├── gamma.c
│ │ ├── gamma_inc.c
│ │ ├── gsl_sf_elementary.h
│ │ ├── gsl_sf_erf.h
│ │ ├── gsl_sf_exp.h
│ │ ├── gsl_sf_expint.h
│ │ ├── gsl_sf_gamma.h
│ │ ├── gsl_sf_log.h
│ │ ├── gsl_sf_pow_int.h
│ │ ├── gsl_sf_psi.h
│ │ ├── gsl_sf_result.h
│ │ ├── gsl_sf_trig.h
│ │ ├── gsl_sf_zeta.h
│ │ ├── log.c
│ │ ├── pow_int.c
│ │ ├── psi.c
│ │ ├── trig.c
│ │ └── zeta.c
│ ├── sys/
│ │ ├── coerce.c
│ │ ├── fdiv.c
│ │ ├── gsl_sys.h
│ │ ├── infnan.c
│ │ ├── minmax.c
│ │ └── pow_int.c
│ ├── templates_off.h
│ ├── templates_on.h
│ └── vector/
│ ├── copy.c
│ ├── copy_source.inc
│ ├── gsl_vector.h
│ ├── gsl_vector_double.h
│ ├── init.c
│ ├── init_source.inc
│ ├── oper.c
│ ├── oper_source.inc
│ ├── vector.c
│ ├── view.c
│ ├── view.h
│ └── view_source.inc
├── simd_benchmarks/
│ ├── README.md
│ ├── SIMD_BUILD_FLAGS.md
│ ├── benchmark_all_kernels.slim
│ ├── dnorm_benchmark.eidos
│ ├── run_benchmarks.sh
│ ├── simd_benchmark.eidos
│ ├── sleef_benchmark.slim
│ └── slim_benchmark.slim
├── slim_multi.entitlements
├── sonar-project.properties
├── treerec/
│ ├── _README
│ ├── implementation.md
│ ├── tests/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── conda-requirements.txt
│ │ ├── conftest.py
│ │ ├── environment.yml
│ │ ├── init.slim
│ │ ├── init_marked_mutations.slim
│ │ ├── pip-requirements.txt
│ │ ├── recipe_specs.py
│ │ ├── test_consistency.py
│ │ ├── test_metadata_schemas.py
│ │ ├── test_recipes/
│ │ │ ├── dont_test_recapitation.py
│ │ │ ├── dont_test_recapitation.slim
│ │ │ ├── test_000_ancestral_marks.slim
│ │ │ ├── test_000_ongoing_muts.slim
│ │ │ ├── test_000_sexual_WF.slim
│ │ │ ├── test_000_sexual_nonwf.slim
│ │ │ ├── test_000_simple_nonwf.slim
│ │ │ ├── test_000_withdraw_indivs.slim
│ │ │ ├── test_002_quick_neutral.slim
│ │ │ ├── test_004 simple sexual A.slim
│ │ │ ├── test_005 simple sexual X.slim
│ │ │ ├── test_006 simple sexual Y.slim
│ │ │ ├── test_007 cloning and selfing.slim
│ │ │ ├── test_008 cyclical subpop.slim
│ │ │ ├── test_009 linear island.slim
│ │ │ ├── test_013 gene conversion.slim
│ │ │ ├── test_024 gene drive.slim
│ │ │ ├── test_038 pure cloning.slim
│ │ │ ├── test_039 pure selfing.slim
│ │ │ ├── test_040 pure cloning sexual.slim
│ │ │ ├── test_042 haploid clonals.slim
│ │ │ ├── test_097 modeling nucleotides.slim
│ │ │ ├── test_1610_modeling pseudo-autosomal regions.slim
│ │ │ ├── test_169_complex multi-chromosome inheritance.slim
│ │ │ ├── test_831_multiple diploid autosomes.slim
│ │ │ ├── test_832_clonal haploids and chromosome types.slim
│ │ │ ├── test_833_haploids with recombination.slim
│ │ │ ├── test_834_sex-chromosome evolution and null haplosomes.slim
│ │ │ ├── test_836_output from multiple-chromosome models.slim
│ │ │ ├── test_____H-_chromosome.slim
│ │ │ ├── test_____all_the_chromosome_types.slim
│ │ │ ├── test_____all_the_chromosomes.slim
│ │ │ ├── test_____ancestral_marks.slim
│ │ │ ├── test_____multipops.slim
│ │ │ ├── test_____no_generations.slim
│ │ │ ├── test_____pop_names_nondefault.slim
│ │ │ ├── test_____pop_names_pX.slim
│ │ │ ├── test_____remember_individuals.slim
│ │ │ ├── test_____retain_and_remember_individuals.slim
│ │ │ ├── test_____retain_individuals_nonWF.slim
│ │ │ ├── test_____retain_individuals_nonWF_unary.slim
│ │ │ ├── test_____retain_individuals_unary.slim
│ │ │ ├── test_____sexual_WF.slim
│ │ │ ├── test_____sexual_nonwf.slim
│ │ │ ├── test_____simple_none.slim
│ │ │ ├── test_____simple_nonwf.slim
│ │ │ ├── test_____simple_not_perm.slim
│ │ │ ├── test_____simple_perm.slim
│ │ │ └── test_____withdraw_indivs.slim
│ │ └── test_specific_recipes.py
│ └── tskit/
│ ├── convert.c
│ ├── convert.h
│ ├── core.c
│ ├── core.h
│ ├── genotypes.c
│ ├── genotypes.h
│ ├── haplotype_matching.c
│ ├── haplotype_matching.h
│ ├── kastore/
│ │ ├── kastore.c
│ │ └── kastore.h
│ ├── stats.c
│ ├── stats.h
│ ├── tables.c
│ ├── tables.h
│ ├── text_input.c
│ ├── text_input.h
│ ├── trees.c
│ ├── trees.h
│ └── tskit.pro
└── windows_compat/
├── gnulib/
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── aclocal.m4
│ ├── build-aux/
│ │ ├── compile
│ │ ├── config.guess
│ │ ├── config.sub
│ │ ├── depcomp
│ │ ├── install-sh
│ │ └── missing
│ ├── config.h.in
│ ├── configure
│ ├── configure.ac
│ ├── gllib/
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── _Noreturn.h
│ │ ├── arg-nonnull.h
│ │ ├── c++defs.h
│ │ ├── cdefs.h
│ │ ├── errno.in.h
│ │ ├── execinfo.c
│ │ ├── execinfo.in.h
│ │ ├── fd-hook.c
│ │ ├── fd-hook.h
│ │ ├── getdelim.c
│ │ ├── gethostname.c
│ │ ├── getline.c
│ │ ├── gettimeofday.c
│ │ ├── libc-config.h
│ │ ├── limits.in.h
│ │ ├── msvc-inval.c
│ │ ├── msvc-inval.h
│ │ ├── msvc-nothrow.c
│ │ ├── msvc-nothrow.h
│ │ ├── random.c
│ │ ├── random_r.c
│ │ ├── sockets.c
│ │ ├── sockets.h
│ │ ├── stdalign.in.h
│ │ ├── stddef.in.h
│ │ ├── stdint.in.h
│ │ ├── stdio.in.h
│ │ ├── stdlib.in.h
│ │ ├── sys_resource.in.h
│ │ ├── sys_socket.c
│ │ ├── sys_socket.in.h
│ │ ├── sys_stat.in.h
│ │ ├── sys_time.in.h
│ │ ├── sys_types.in.h
│ │ ├── sys_uio.in.h
│ │ ├── sys_utsname.in.h
│ │ ├── time.in.h
│ │ ├── time_r.c
│ │ ├── uname.c
│ │ ├── unistd.c
│ │ ├── unistd.in.h
│ │ ├── w32sock.h
│ │ └── warn-on-use.h
│ └── glm4/
│ ├── 00gnulib.m4
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── __inline.m4
│ ├── absolute-header.m4
│ ├── errno_h.m4
│ ├── execinfo.m4
│ ├── extensions.m4
│ ├── extern-inline.m4
│ ├── getdelim.m4
│ ├── gethostname.m4
│ ├── getline.m4
│ ├── gettimeofday.m4
│ ├── gnulib-common.m4
│ ├── include_next.m4
│ ├── limits-h.m4
│ ├── msvc-inval.m4
│ ├── msvc-nothrow.m4
│ ├── multiarch.m4
│ ├── off_t.m4
│ ├── pid_t.m4
│ ├── random.m4
│ ├── random_r.m4
│ ├── socketlib.m4
│ ├── sockets.m4
│ ├── socklen.m4
│ ├── sockpfaf.m4
│ ├── ssize_t.m4
│ ├── std-gnu11.m4
│ ├── stdalign.m4
│ ├── stddef_h.m4
│ ├── stdint.m4
│ ├── stdio_h.m4
│ ├── stdlib_h.m4
│ ├── sys_resource_h.m4
│ ├── sys_socket_h.m4
│ ├── sys_stat_h.m4
│ ├── sys_time_h.m4
│ ├── sys_types_h.m4
│ ├── sys_uio_h.m4
│ ├── sys_utsname_h.m4
│ ├── time_h.m4
│ ├── time_r.m4
│ ├── uname.m4
│ ├── unistd_h.m4
│ ├── warn-on-use.m4
│ ├── wchar_t.m4
│ ├── wint_t.m4
│ └── zzgnulib.m4
└── notes.txt
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
# see http://robots.thoughtbot.com/xcode-and-git-bridging-the-gap
*.pbxproj binary merge=union
================================================
FILE: .github/ISSUE_TEMPLATE/issue.md
================================================
---
name: Issue
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
Hi! Please don't ask questions about how to use SLiM on GitHub; instead, please go to the slim-discuss mailing list at https://groups.google.com/g/slim-discuss. If you have a bug report or feature request, on the other hand, you have found the right place. Please provide any information that will allow us to reproduce the bug, including a complete SLiM script (if appropriate) that is self-contained, with all defined constants set up in script rather than needing to be passed on the command line. If the script requires any external files to run, please attach those too, or provide a link to where they can be downloaded.
For more guidance on how to file a good bug report, you might read "Ten simple rules for reporting a bug" (https://doi.org/10.1371/journal.pcbi.1010540).
Incidentally, if you are a new SLiM user and have not yet done the SLiM Workshop, it is highly recommended to get through the initial learning curve. It is available for free online at http://benhaller.com/workshops/workshops.html.
================================================
FILE: .github/workflows/tests.yml
================================================
name: tests
on:
# Run tests on every push to the main branch,
# on every pull request, and once a week (every monday at 05:00)
push:
pull_request:
schedule:
- cron: "0 5 * * 1"
jobs:
canceller:
runs-on: ubuntu-latest
steps:
- name: Cancel previous runs
uses: styfle/cancel-workflow-action@0.12.1
coverage:
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository == 'messerlab/slim')
runs-on: ubuntu-24.04
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Set up GCC
run: |
sudo apt-get install gcc-12 g++-12 && \
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-12 100 \
--slave /usr/bin/g++ g++ /usr/bin/g++-12
- name: Build with coverage
run: |
mkdir Coverage && cd Coverage && \
cmake -DCMAKE_BUILD_TYPE=Debug -DCOVERAGE=ON .. && \
make -j 2 && \
env CTEST_OUTPUT_ON_FAILURE=1 make test
- name: Generate coverage report
run: |
sudo apt-get update && \
sudo apt-get install -y lcov && \
lcov --gcov-tool gcov-12 --ignore-errors gcov,mismatch --rc geninfo_unexecuted_blocks=1 --capture --directory Coverage --output-file coverage.info && \
lcov --gcov-tool gcov-12 --ignore-errors gcov,mismatch,unused --remove coverage.info '/usr/*' '*/gsl/*' '*/eidos_zlib/*' --output-file coverage.info
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.info
fail_ci_if_error: true
tests-Unix-CLI:
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository == 'messerlab/slim')
strategy:
fail-fast: false
matrix:
include:
# Ubuntu with the oldest supported GCC
# BCH 2/12/2025: Ubuntu 22.04 is being discontinued, shifting forward
- { os: ubuntu-22.04, gcc: 9, python: 3.9 }
- { os: ubuntu-24.04, gcc: 12, python: 3.12 }
# macOS, oldest supported version
# (macos-10.15, macos-11, macos-12, and macos-13 were removed by GitHub)
- { os: macos-14, python: 3.9 }
# macOS, newest supported version
- { os: macos-26, python: 3.13 }
runs-on: ${{ matrix.os }}
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Setup Miniforge
uses: conda-incubator/setup-miniconda@v3
with:
miniforge-version: latest
activate-environment: anaconda-client-env
python-version: ${{ matrix.python }}
- name: Get Date
id: get-date
run: echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT
shell: bash
- name: Cache Conda env
uses: actions/cache@v3
with:
path: ${{ env.CONDA }}/envs
key:
conda-${{ runner.os }}--python-${{ matrix.python }}--${{ runner.arch }}--${{
steps.get-date.outputs.today }}-${{
hashFiles('treerec/tests/environment.yml') }}-${{ env.CACHE_NUMBER}}
env:
# Increase this value to reset cache if
# treerec/tests/environment.yml has not changed
CACHE_NUMBER: 0
id: cache
- name: Update environment
run: conda env update -n anaconda-client-env -f treerec/tests/environment.yml
if: steps.cache.outputs.cache-hit != 'true'
- name: Workaround for gcc-11
if: startsWith(matrix.os, 'ubuntu') && matrix.gcc == 11
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo apt-get update -y
- name: Set up default GCC (in Ubuntu)
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt-get install gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }} && \
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-${{ matrix.gcc }} 100 \
--slave /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.gcc }}
- name: Build and test (Debug)
run: |
mkdir Debug && \
cd Debug && \
cmake -DCMAKE_BUILD_TYPE=Debug .. && \
make -j 2 && \
# Show any output from the test program whenever the test fails
env CTEST_OUTPUT_ON_FAILURE=1 make test
- name: Build and test (Release)
run: |
mkdir Release && \
cd Release && \
cmake -DCMAKE_BUILD_TYPE=Release .. && \
make -j 2 && \
# Show any output from the test program whenever the test fails
env CTEST_OUTPUT_ON_FAILURE=1 make test
- name: Treesequence tests
shell: bash -el {0}
run: |
conda activate anaconda-client-env && \
export PATH=$PATH:$PWD/Release && \
echo $PATH && \
cd treerec/tests && python -m pytest -xv
tests-Windows-CLI:
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository == 'messerlab/slim')
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- { sys: mingw64, env: x86_64, python: 3.9 }
- { sys: ucrt64, env: ucrt-x86_64, python: 3.9 }
defaults:
run:
shell: msys2 {0}
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Setup MSYS2 ${{matrix.sys}}
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
update: true
install: >-
git
base-devel
msys2-devel
mingw-w64-${{matrix.env}}-toolchain
mingw-w64-${{matrix.env}}-cmake
- name: Setup Miniforge
uses: conda-incubator/setup-miniconda@v3
with:
miniforge-version: latest
activate-environment: anaconda-client-env
auto-update-conda: true
python-version: ${{ matrix.python }}
- name: Get Date
id: get-date
run: echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_OUTPUT
shell: bash
- name: Cache Conda env
uses: actions/cache@v3
env:
# Increase this value to reset cache if treerec/tests/environment.yml has not changed
CACHE_NUMBER: 0
with:
# Use faster GNU tar
enableCrossOsArchive: true
path: D:\conda_pkgs_dir
key:
conda-${{ runner.os }}--python-${{ matrix.python }}--${{ runner.arch }}--${{
steps.get-date.outputs.today }}-${{
hashFiles('treerec/tests/environment.yml') }}-${{ env.CACHE_NUMBER}}
id: cache
- uses: conda-incubator/setup-miniconda@v3
with:
activate-environment: anaconda-client-env
environment-file: treerec/tests/environment.yml
pkgs-dirs: D:\conda_pkgs_dir
- name: Update environment
shell: bash -el {0}
run: conda env update -n anaconda-client-env -f treerec/tests/environment.yml
if: steps.cache.outputs.cache-hit != 'true'
- name: Build and test (Debug)
run: |
cd windows_compat/gnulib && \
touch --date="`date`" aclocal.m4 Makefile.am configure configure.ac config.h.in Makefile.in && \
cd ../.. && \
mkdir Debug && \
cd Debug && \
cmake -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug .. && \
make -j 2 && \
# Show any output from the test program whenever the test fails
env CTEST_OUTPUT_ON_FAILURE=1 make test
- name: Build and test (Release)
run: |
cd windows_compat/gnulib && \
touch --date="`date`" aclocal.m4 Makefile.am configure configure.ac config.h.in Makefile.in && \
cd ../.. && \
mkdir Release && \
cd Release && \
cmake -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release .. && \
make -j 2 && \
# Show any output from the test program whenever the test fails
env CTEST_OUTPUT_ON_FAILURE=1 make test
- name: Treesequence tests
shell: bash -el {0}
run: |
conda activate anaconda-client-env && \
export PATH=$PATH:$PWD/Release && \
echo $PATH && \
cd treerec/tests && python -m pytest -xv
tests-Unix-GUI:
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository == 'messerlab/slim')
strategy:
fail-fast: false
matrix:
include:
# BCH 2/12/2025: Ubuntu 22.04 is being discontinued, shifting forward
# Ubuntu 22.04 with the oldest supported Qt5 and GCC.
- { os: ubuntu-22.04, qt: 5.9.5, gcc: 9 }
# Ubuntu 22.04 with last official LTS Qt5 and GCC.
- { os: ubuntu-22.04, qt: 5.15.2, gcc: 12 }
# Ubuntu 24.04 with the most recent Qt6 and GCC.
- { os: ubuntu-22.04, qt: 6.8.2, gcc: 12 }
# macos-12 and macos-13 were removed by GitHub,
# so we can't CI with Qt 5.X on macOS any more, oh well
# old macOS with last official LTS Qt5
#- { os: macos-13, qt: 5.15.2 }
# old macOS ARM64 with older Qt6
- { os: macos-14, qt: 6.7.3 }
# macOS Intel with older Qt6
- { os: macos-15-intel, qt: 6.7.3 }
# new macOS with a very recent Qt6
- { os: macos-26, qt: 6.9.2 }
runs-on: ${{ matrix.os }}
env:
CXXFLAGS: -D NO_QT_VERSION_ERROR
defaults:
run:
shell: bash
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Workaround for gcc-11
if: startsWith(matrix.os, 'ubuntu') && matrix.gcc == 11
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo apt-get update -y
- name: Set up default GCC (in Ubuntu)
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt-get install gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }} && \
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-${{ matrix.gcc }} 100 \
--slave /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.gcc }}
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: ${{ matrix.qt }}
- name: Release build with SLiMGUI
run: |
mkdir Release && \
cd Release && \
cmake -D BUILD_SLIMGUI=ON -DCMAKE_BUILD_TYPE=Release .. && \
make -j 2 && \
# Show any output from the test program whenever the test fails
env CTEST_OUTPUT_ON_FAILURE=1 make test
tests-Windows-GUI:
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository == 'messerlab/slim')
strategy:
fail-fast: false
matrix:
include:
- { sys: mingw64, env: x86_64 }
- { sys: ucrt64, env: ucrt-x86_64 }
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Setup MSYS2 ${{matrix.sys}}
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
update: true
install: >-
git
base-devel
msys2-devel
mingw-w64-${{matrix.env}}-toolchain
mingw-w64-${{matrix.env}}-cmake
mingw-w64-${{matrix.env}}-qt5-base
- name: Release build
run: |
cd . && \
cd windows_compat/gnulib && \
touch --date="`date`" aclocal.m4 Makefile.am configure configure.ac config.h.in Makefile.in && \
cd ../.. && \
mkdir Release && \
cd Release && \
cmake -G"MSYS Makefiles" -DBUILD_SLIMGUI=ON -DCMAKE_BUILD_TYPE=Release .. && \
make -j 2 && \
# Show any output from the test program whenever the test fails
env CTEST_OUTPUT_ON_FAILURE=1 make test
tests-windows-latest-pacman:
if: github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository == 'messerlab/slim')
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- { sys: mingw64, env: x86_64 }
- { sys: ucrt64, env: ucrt-x86_64 }
defaults:
run:
shell: msys2 {0}
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Setup MSYS2 ${{matrix.sys}}
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
update: true
install: >-
mingw-w64-${{matrix.env}}-slim-simulator
- name: Test
run: |
eidos -testEidos
slim -testEidos
slim -testSLiM
================================================
FILE: .gitignore
================================================
#########################
# .gitignore file for Xcode4 and Xcode5 Source projects
#
# Apple bugs, waiting for Apple to fix/respond:
#
# 15564624 - what does the xccheckout file in Xcode5 do? Where's the documentation?
#
# Version 2.3
# For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects
#
# 2014 updates:
# - appended non-standard items DISABLED by default (uncomment if you use those tools)
# - removed the edit that an SO.com moderator made without bothering to ask me
# - researched CocoaPods .lock more carefully, thanks to Gokhan Celiker
# 2013 updates:
# - fixed the broken "save personal Schemes"
# - added line-by-line explanations for EVERYTHING (some were missing)
#
# NB: if you are storing "built" products, this WILL NOT WORK,
# and you should use a different .gitignore (or none at all)
# This file is for SOURCE projects, where there are many extra
# files that we want to exclude
#
#########################
#####
# OS X temporary files that should never be committed
#
# c.f. http://www.westwind.com/reference/os-x/invisibles.html
.DS_Store
# c.f. http://www.westwind.com/reference/os-x/invisibles.html
.Trashes
# c.f. http://www.westwind.com/reference/os-x/invisibles.html
*.swp
#
# *.lock - this is used and abused by many editors for many different things.
# For the main ones I use (e.g. Eclipse), it should be excluded
# from source-control, but YMMV.
# (lock files are usually local-only file-synchronization on the local FS that should NOT go in git)
# c.f. the "OPTIONAL" section at bottom though, for tool-specific variations!
*.lock
#
# profile - REMOVED temporarily (on double-checking, I can't find it in OS X docs?)
#profile
####
# Xcode temporary files that should never be committed
#
# NB: NIB/XIB files still exist even on Storyboard projects, so we want this...
*~.nib
####
# Xcode build files -
#
# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "DerivedData"
DerivedData/
# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "build"
build/
#####
# Xcode private settings (window sizes, bookmarks, breakpoints, custom executables, smart groups)
#
# This is complicated:
#
# SOMETIMES you need to put this file in version control.
# Apple designed it poorly - if you use "custom executables", they are
# saved in this file.
# 99% of projects do NOT use those, so they do NOT want to version control this file.
# ..but if you're in the 1%, comment out the line "*.pbxuser"
# .pbxuser: http://lists.apple.com/archives/xcode-users/2004/Jan/msg00193.html
*.pbxuser
# .mode1v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html
*.mode1v3
# .mode2v3: http://lists.apple.com/archives/xcode-users/2007/Oct/msg00465.html
*.mode2v3
# .perspectivev3: http://stackoverflow.com/questions/5223297/xcode-projects-what-is-a-perspectivev3-file
*.perspectivev3
# NB: also, whitelist the default ones, some projects need to use these
!default.pbxuser
!default.mode1v3
!default.mode2v3
!default.perspectivev3
####
# Xcode 4 - semi-personal settings
#
#
# OPTION 1: ---------------------------------
# throw away ALL personal settings (including custom schemes!
# - unless they are "shared")
#
# NB: this is exclusive with OPTION 2 below
xcuserdata
# OPTION 2: ---------------------------------
# get rid of ALL personal settings, but KEEP SOME OF THEM
# - NB: you must manually uncomment the bits you want to keep
#
# NB: this *requires* git v1.8.2 or above; you may need to upgrade to latest OS X,
# or manually install git over the top of the OS X version
# NB: this is exclusive with OPTION 1 above
#
#xcuserdata/**/*
# (requires option 2 above): Personal Schemes
#
#!xcuserdata/**/xcschemes/*
####
# XCode 4 workspaces - more detailed
#
# Workspaces are important! They are a core feature of Xcode - don't exclude them :)
#
# Workspace layout is quite spammy. For reference:
#
# /(root)/
# /(project-name).xcodeproj/
# project.pbxproj
# /project.xcworkspace/
# contents.xcworkspacedata
# /xcuserdata/
# /(your name)/xcuserdatad/
# UserInterfaceState.xcuserstate
# /xcsshareddata/
# /xcschemes/
# (shared scheme name).xcscheme
# /xcuserdata/
# /(your name)/xcuserdatad/
# (private scheme).xcscheme
# xcschememanagement.plist
#
#
####
# Xcode 4 - Deprecated classes
#
# Allegedly, if you manually "deprecate" your classes, they get moved here.
#
# We're using source-control, so this is a "feature" that we do not want!
*.moved-aside
####
# OPTIONAL: Some well-known tools that people use side-by-side with Xcode / iOS development
#
# NB: I'd rather not include these here, but gitignore's design is weak and doesn't allow
# modular gitignore: you have to put EVERYTHING in one file.
#
# COCOAPODS:
#
# c.f. http://guides.cocoapods.org/using/using-cocoapods.html#what-is-a-podfilelock
# c.f. http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
#!Podfile.lock
#
# RUBY:
#
# c.f. http://yehudakatz.com/2010/12/16/clarifying-the-roles-of-the-gemspec-and-gemfile/
#
#!Gemfile.lock
#
# IDEA:
#
#.idea
#
# TEXTMATE:
#
# -- UNVERIFIED: c.f. http://stackoverflow.com/a/50283/153422
#
#tm_build_errors
####
# UNKNOWN: recommended by others, but I can't discover what these files are
#
# Community suggestions (unverified, no evidence available - DISABLED by default)
#
# 1. Xcode 5 - VCS file
#
# "The data in this file not represent state of your project.
# If you'll leave this file in git - you will have merge conflicts during
# pull your cahnges to other's repo"
#
*.xccheckout
####
# My Own
#
# This keeps a built executable of slim, or a bin directory, from getting added
slim
bin
####
# SonarCloud cruft
bw-output
.scannerwork
####
# Qt cruft from here on down
# C++ objects and libs
*.slo
*.lo
*.o
*.a
*.la
*.lai
*.so
*.dll
*.dylib
# Qt-es
object_script.*.Release
object_script.*.Debug
*_plugin_import.cpp
/.qmake.cache
/.qmake.stash
*.pro.user
*.pro.user.*
*.qbs.user
*.qbs.user.*
*.moc
moc_*.cpp
moc_*.h
qrc_*.cpp
ui_*.h
*.qmlc
*.jsc
Makefile*
*build-*
!windows_compat/gnulib/build-aux
!windows_compat/gnulib/Makefile*
!windows_compat/gnulib/gllib/Makefile*
!windows_compat/gnulib/glm4/Makefile*
## gnulib
windows_compat/gnulib/autom4te.cache
windows_compat/gnulib/configure~
# Qt unit tests
target_wrapper.*
# QtCreator
*.autosave
# QtCreator Qml
*.qmlproject.user
*.qmlproject.user.*
# QtCreator CMake
CMakeLists.txt.user*
# QtCreator 4.8< compilation database
compile_commands.json
# QtCreator local machine specific files for imported projects
*creator.user*
# VSCode
.vscode
================================================
FILE: .travis.yml
================================================
# the Qt stuff is adapted from https://github.com/VioletGiraffe/file-commander/blob/master/.travis.yml
# there seems to be no simple solution to building Qt5 apps on travis; you have to install all this stuff
language: cpp
matrix:
include:
- os: osx
osx_image: xcode9.4
compiler: clang
- os: linux
dist: xenial
compiler: gcc
before_install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
# C++17
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test; fi
install:
# C++17
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo add-apt-repository -y ppa:beineri/opt-qt-5.12.3-xenial; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qy update; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -qq g++-8 gcc-8; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 90; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 90; fi
# Qt5
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install qt5; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew link --force qt5; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export QMAKE=/usr/local/bin/qmake; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PATH=/usr/local/opt/qt5/bin:$PATH; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -qq qt512-meta-minimal; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -qq libx11-xcb-dev libglu1-mesa-dev; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export QMAKE=/opt/qt512/bin/qmake; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export PATH=/opt/qt512/bin/:$PATH; fi
# set up build directories for Release and Debug builds and run cmake in each; "make" should then work
# note that we start out in /home/travis/build/MesserLab/SLiM here, and end in /home/travis/build/MesserLab
before_script:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then gcc --version; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then g++ --version; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then clang --version; fi
- cd ..
- mkdir Release
- cd Release
- cmake -D BUILD_SLIMGUI=ON -D CMAKE_BUILD_TYPE=Release ../SLiM
- cd ..
- mkdir Debug
- cd Debug
- cmake -D BUILD_SLIMGUI=ON -D CMAKE_BUILD_TYPE=Debug ../SLiM
- cd ..
# build using make, then run Eidos and SLiM tests; do for each of Release and Debug
# builds can take more than 10 minutes so we use travis_wait
script:
- cd Release
- travis_wait make VERBOSE=1 -j 5 eidos
- travis_wait make VERBOSE=1 -j 5 slim
- travis_wait make VERBOSE=1 -j 5 SLiMgui
- ./eidos -testEidos
- ./slim -testEidos
- ./slim -testSLiM
- cd ../Debug
- travis_wait make VERBOSE=1 -j 5 eidos
- travis_wait make VERBOSE=1 -j 5 slim
- travis_wait make VERBOSE=1 -j 5 SLiMgui
- ./eidos -testEidos
- ./slim -testEidos
- ./slim -testSLiM
# test only the master branch for now; add other branches as needed
branches:
only:
- master
# notify me by email after all builds
notifications:
email:
on_success: always
on_failure: always
================================================
FILE: CMakeLists.txt
================================================
# To use CMake to build SLiM, create a new subdirectory alongside your source directory (assumed here
# to be named SLiM), e.g., "build", then run the following commands:
#
# cd build
# cmake ../SLiM
# make -j10
#
# This will make a Release build, with optimization and without debugging symbols, by default.
# The built executables will be placed in the build directory upon successful completion. The optional
# -j argument specifies the number of threads to use for the build, which should be a value related
# to the number of cores available on your machine (typically less than or equal to the number of cores).
#
# You can also explicitly make a Release build; this is typically done in a directory named "Release"
# instead of "build":
#
# mkdir Release
# cd Release
# cmake -D CMAKE_BUILD_TYPE=Release ../SLiM
# make
#
# Or you can make a Debug build (without optimization, with debugging symbols):
#
# mkdir Debug
# cd Debug
# cmake -D CMAKE_BUILD_TYPE=Debug ../SLiM
# make
#
# To build the Qt5-based GUI, make sure you have the Qt5 Widgets, Core, and Gui libraries installed,
# then configure with:
# cd build
# cmake -D BUILD_SLIMGUI=ON ../SLiM
# make -j10
#
# In all cases the concept is the same: make a build directory of some name, cd into it, run cmake
# to set up the build (with a CMAKE_BUILD_TYPE flag if desired, otherwise Release will be used by
# default), then run make to actually do the build. This setup (1) keeps all build products out of
# your source tree, which is generally a good idea, and (2) allows you to have both Release and
# Debug builds going simultaneously.
#
# You can do "make VERBOSE=1" instead of just "make" to see the full command lines used. There are
# also various targets defined by cmake for make, such as "slim", "eidos", "clean", "all", etc. To
# rebuild all of cmake's internal caches etc. (which is generally a good idea after a "git pull",
# for example, or after the addition or removal of source files), the simplest thing is generally
# to touch the CMakeLists.txt file in the source tree top-level directory:
#
# touch ../SLiM/CMakeLists.txt
#
# Then you can just do "make"; cmake will automatically be re-run by make since the CMakeLists.txt
# file has changed.
# This syntax sets the minimum version to 2.8.12, for compatibility with very old installs, but
# sets the "policy max" to 4.0. It's hard to tell from the CMake doc whether the "policy" changes
# that actually signs us up for matter (wow, CMake is complicated!); but we're not doing anything
# fancy, so it's hard to imagine it matters. Be careful to add the 4.0 policy max everywhere that
# cmake_minimum_required is set. BCH 4/12/2025
cmake_minimum_required (VERSION 2.8.12...4.0 FATAL_ERROR)
# clang-tidy support (for internal development); must come before the project() line
# note that the hard-coded paths below will need to be fixed for other platforms
option(TIDY "Run clang-tidy on SLiM (for development)" OFF)
if(TIDY)
# cmake_minimum_required(VERSION 3.6...4.0 FATAL_ERROR)
if(CMAKE_VERSION VERSION_LESS "3.6")
message(FATAL_ERROR "To use the clang-tidy wrapper TIDY in this project you will need a version of CMake at least as new as 3.6.")
endif()
message(STATUS "TIDY is ${TIDY}; building with clang-tidy (for development)")
set(CMAKE_C_COMPILER "/opt/local/libexec/llvm-17/bin/clang")
set(CMAKE_CXX_COMPILER "/opt/local/libexec/llvm-17/bin/clang++")
find_program(CLANG_TIDY_EXE NAMES "clang-tidy" PATHS "/opt/local/libexec/llvm-17/bin/" NO_DEFAULT_PATH REQUIRED)
set(CLANG_TIDY_COMMAND "${CLANG_TIDY_EXE}" "-checks=-*,modernize-*,-modernize-redundant-void-arg,-modernize-use-trailing-return-type,-modernize-use-auto,-modernize-avoid-c-arrays,-modernize-use-equals-default,-modernize-deprecated-headers,-modernize-use-nullptr,-modernize-return-braced-init-list,-modernize-use-using,bugprone-*,-bugprone-narrowing-conversions,-bugprone-easily-swappable-parameters,-bugprone-reserved-identifier,-bugprone-suspicious-include,performance-*,-performance-avoid-endl,-performance-inefficient-string-concatenation")
message(STATUS "+++ clang-tidy is at ${CLANG_TIDY_EXE}")
message(STATUS "+++ CLANG_TIDY_COMMAND is ${CLANG_TIDY_COMMAND}")
endif()
# cppcheck support (for internal development)
# for now this processes one file at a time; there is an alternative approach that
# outputs a project file with CMAKE_EXPORT_COMPILE_COMMANDS and then runs cppcheck
# on that, but I'm not sure how to do it within cmake so for now I'm punting on it
option(CPPCHECK "Run cppcheck on SLiM (for development)" OFF)
if(CPPCHECK)
if(CMAKE_VERSION VERSION_LESS "3.10")
message(FATAL_ERROR "To use the cppcheck wrapper CPPCHECK in this project you will need a version of CMake at least as new as 3.10.")
endif()
find_program(CPPCHECK_EXECUTABLE cppcheck)
if (CPPCHECK_EXECUTABLE)
message(STATUS "CPPCHECK is ${CPPCHECK}; building with cppcheck (for development)")
set(CPPCHECK_COMMAND "${CPPCHECK_EXECUTABLE}" "--enable=all;--suppress=missingIncludeSystem;--suppress=syntaxError;--suppress=unmatchedSuppression;--inline-suppr;--std=c++11;--quiet;--suppress=*:robin_hood.h;--suppress=*:lodepng.cpp;--suppress=*:pcg_extras.hpp;--suppress=*:pcg_random.hpp;--suppress=checkersReport;--suppress=*:eidos_openmp.h;--suppress=unusedFunction")
message(STATUS "+++ cppcheck is at ${CPPCHECK_EXECUTABLE}")
message(STATUS "+++ CPPCHECK_COMMAND is ${CPPCHECK_COMMAND}")
else()
message(FATAL_ERROR "The CPPCHECK option could be enabled because the cppcheck command could not be found.")
endif()
endif()
# Support a COVERAGE flag for Codecov; see the GitHub Actions YAML file for the use of this
option(COVERAGE "Enable code coverage" OFF)
if(COVERAGE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
endif()
project(SLiM)
if(WIN32)
include(ExternalProject)
endif()
#
# BUILD OPTIONS
#
# Make a Release build by default
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif(NOT CMAKE_BUILD_TYPE)
# Add "-D BUILD_SLIMGUI=ON" to the CMake command to build SLiMgui
# This requires that Qt, a widget framework, is installed
option(BUILD_SLIMGUI "Build the Qt-based GUI for SLiM" OFF)
# Add "-D ASAN=ON" to the CMake command to build with ASan runtime checking
option(ASAN "Build with ASan runtime checking" OFF)
# Add "-D UBSAN=ON" to the CMake command to build with ASan runtime checking
option(UBSAN "Build with UBSan runtime checking" OFF)
# Add "-D PARALLEL=ON" to the CMake command to make a parallel (multi-threaded) build
# This is supported only for the command-line tools, not for SLiMgui; do not set BUILD_SLIMGUI
option(PARALLEL "Build parallel versions of eidos and slim" OFF)
if(PARALLEL)
# BCH 12/4/2023: Parallel SLiM is presently unreleased and unsupported. Caveat lector.
message(FATAL_ERROR "Multithreaded SLiM is not released, not thoroughly tested, and generally not yet ready for prime time. It is not recommended for end-user use, especially not for 'production' runs, and the documentation for it is not yet public. Please do not ask for any kind of support for this feature if you choose to experiment with it." )
endif(PARALLEL)
# Add "-D PROFILE=ON" to the CMake command to make a build of command-line slim with runtime profiling
# This makes SLiM slower, so it is not for production use. It may be set ON only for Release builds.
option(PROFILE "Build slim for runtime profiling" OFF)
# Add "-D BUILD_NATIVE=ON" to build natively for the build machine's architecture
# this can result in better optimization, but the executable will only run on the build machine,
# so it should only be enabled when you are building on the same machine you will do your runs on
option(BUILD_NATIVE "Build native for the build machine" OFF)
# Add "-D BUILD_LTO=ON" to enable link-time optimization; this may improve performance slightly,
# but fails (see issue #33) on some machines with incompatible toolchains (so then don't enable it)
option(BUILD_LTO "Build with link-time optimization" OFF)
# obtain the Git commit SHA-1; see ./cmake/_README.txt and https://stackoverflow.com/a/4318642/2752221
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
include(GetGitRevisionDescription)
get_git_head_revision(GIT_REFSPEC GIT_SHA1)
#message(STATUS "GIT_SHA1 is ${GIT_SHA1}")
# Use the flags below for [all / Debug / Release] builds; these flags are built in to cmake
# Note that -fno-math-errno is deliberately set for C++ (for eidos and slim) but not for C (for gsl, eidos_zlib, kastore, tables)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -Wno-attributes -Wunused-label -Wimplicit -Wunused-variable -Wunused-value -Wno-pragmas -Wempty-body -Wshadow -Wparentheses -Wmissing-prototypes -Wswitch -Wpointer-sign -Wsign-compare -Wstrict-prototypes -Wno-sign-conversion -Wuninitialized")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-attributes -Wunused-label -Wunused-variable -Wunused-value -Wno-pragmas -Wempty-body -Wshadow -Wparentheses -Wswitch -Wsign-compare -Wno-sign-conversion -Wuninitialized -fno-math-errno")
# Add -march=native if requested
if(BUILD_NATIVE)
message(STATUS "BUILD_NATIVE is ${BUILD_NATIVE}; building native (for this machine only)")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
endif()
# Windows specific flags and variables
if(WIN32)
set(CMAKE_CXX_STANDARD_LIBRARIES "-static-libgcc -static-libstdc++ -lwsock32 -lws2_32 ${CMAKE_CXX_STANDARD_LIBRARIES}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive")
set(GNULIB_NAMESPACE_SOURCES "${PROJECT_SOURCE_DIR}/core/chromosome.cpp"
"${PROJECT_SOURCE_DIR}/core/haplosome.cpp"
"${PROJECT_SOURCE_DIR}/core/individual.cpp"
"${PROJECT_SOURCE_DIR}/core/population.cpp"
"${PROJECT_SOURCE_DIR}/core/slim_globals.cpp"
"${PROJECT_SOURCE_DIR}/core/slim_sim_eidos.cpp"
"${PROJECT_SOURCE_DIR}/core/slim_sim.cpp"
"${PROJECT_SOURCE_DIR}/core/species.cpp"
"${PROJECT_SOURCE_DIR}/core/species_eidos.cpp"
"${PROJECT_SOURCE_DIR}/core/subpopulation.cpp"
"${PROJECT_SOURCE_DIR}/eidos/eidos_functions_files.cpp"
"${PROJECT_SOURCE_DIR}/eidos/eidos_functions_other.cpp"
"${PROJECT_SOURCE_DIR}/eidos/eidos_globals.cpp"
"${PROJECT_SOURCE_DIR}/eidos/eidos_class_DataFrame.cpp"
"${PROJECT_SOURCE_DIR}/QtSLiM/QtSLiMAbout.cpp"
"${PROJECT_SOURCE_DIR}/QtSLiM/QtSLiMAppDelegate.cpp"
"${PROJECT_SOURCE_DIR}/QtSLiM/QtSLiMFindRecipe.cpp"
"${PROJECT_SOURCE_DIR}/QtSLiM/QtSLiMGraphView.cpp"
"${PROJECT_SOURCE_DIR}/QtSLiM/QtSLiMHaplotypeOptions.cpp"
"${PROJECT_SOURCE_DIR}/QtSLiM/QtSLiMHelpWindow.cpp"
"${PROJECT_SOURCE_DIR}/QtSLiM/QtSLiMScriptTextEdit.cpp"
"${PROJECT_SOURCE_DIR}/QtSLiM/QtSLiMVariableBrowser.cpp"
"${PROJECT_SOURCE_DIR}/QtSLiM/QtSLiMWindow.cpp")
endif()
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -Og -DDEBUG=1")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -Og -DDEBUG=1")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
# Build with ASan enabled if requested
if(ASAN)
message(STATUS "ASAN is ${ASAN}")
add_compile_options(-fsanitize=address -fno-omit-frame-pointer) # -fno-omit-frame-pointer for better stack traces
add_link_options(-fsanitize=address)
else()
message(STATUS "ASAN is ${ASAN}; use -DASAN=ON to enable ASan run-time checking")
endif(ASAN)
# Build with UBSan enabled if requested
if(UBSAN)
message(STATUS "UBSAN is ${UBSAN}")
add_compile_options(-fsanitize=undefined -fno-omit-frame-pointer) # -fno-omit-frame-pointer for better stack traces
add_link_options(-fsanitize=undefined)
else()
message(STATUS "UBSAN is ${UBSAN}; use -DUBSAN=ON to enable UBSan run-time checking")
endif(UBSAN)
# Report whether the build is parallel or not
if(PARALLEL)
# -Xclang is also needed on macOS; it is not set here since macOS builds are done in Xcode
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
link_directories(/usr/local/lib/)
message(STATUS "PARALLEL is ${PARALLEL}")
else()
# At least for now, I don't want to advertise the existence of this flag
#message(STATUS "PARALLEL is ${PARALLEL}; use -DPARALLEL=ON to enable OpenMP parallelization")
endif(PARALLEL)
# Report whether the build has runtime profiling support or not
if(PROFILE)
# compile flags for this get set at the end of this script
message(STATUS "PROFILE is ${PROFILE}")
else()
# At least for now, I don't want to advertise the existence of this flag
#message(STATUS "PROFILE is ${PROFILE}; use -PROFILE=ON to enable runtime profiling")
endif(PROFILE)
# Report the build type and SLiMgui build status
message(STATUS "CMAKE_BUILD_TYPE is ${CMAKE_BUILD_TYPE}")
if(BUILD_SLIMGUI)
message(STATUS "BUILD_SLIMGUI is ${BUILD_SLIMGUI}")
else()
message(STATUS "BUILD_SLIMGUI is ${BUILD_SLIMGUI}; use -DBUILD_SLIMGUI=ON to enable building SLiMgui")
endif()
# Windows compat
if(WIN32)
set(GNU_DIR ${CMAKE_CURRENT_BINARY_DIR}/libgnu-prefix/src/libgnu-build)
set(GNU_STATIC_LIB ${GNU_DIR}/gllib/libgnu.a)
set(GNU_INCLUDES ${GNU_DIR}/gllib)
file(MAKE_DIRECTORY ${GNU_INCLUDES})
ExternalProject_Add(libgnu
SOURCE_DIR ${PROJECT_SOURCE_DIR}/windows_compat/gnulib
CONFIGURE_COMMAND ${PROJECT_SOURCE_DIR}/windows_compat/gnulib/configure
BUILD_COMMAND ${MAKE}
BUILD_BYPRODUCTS ${GNU_STATIC_LIB})
add_library(gnu STATIC IMPORTED GLOBAL)
add_dependencies(gnu libgnu)
set_target_properties(gnu PROPERTIES IMPORTED_LOCATION ${GNU_STATIC_LIB})
set_target_properties(gnu PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${GNU_INCLUDES})
set_target_properties(gnu PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES ${GNU_INCLUDES})
endif()
# Do link-time optimization with -flto if requested and supported
if(BUILD_LTO)
include(CheckCXXCompilerFlag)
include(CheckCCompilerFlag)
CHECK_CXX_COMPILER_FLAG(-flto CXX_SUPPORTS_FLTO)
CHECK_C_COMPILER_FLAG(-flto C_SUPPORTS_FLTO)
if(CXX_SUPPORTS_FLTO AND C_SUPPORTS_FLTO)
message(STATUS "BUILD_LTO is ${BUILD_LTO}; building with link-time optimization")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flto")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -flto")
else()
message(AUTHOR_WARNING "BUILD_LTO is ${BUILD_LTO} but -flto is not supported by the compiler")
endif()
endif()
#
# SIMD SUPPORT (independent of OpenMP)
#
# Option to disable SIMD entirely
option(USE_SIMD "Enable SIMD optimizations (SSE4.2/AVX2 on x86_64, NEON on ARM64)" ON)
# Check architecture
# CMAKE_SYSTEM_PROCESSOR is "x86_64" on Intel Macs and Linux x86_64, "arm64"/"aarch64" on ARM
set(IS_X86_64 FALSE)
set(IS_ARM64 FALSE)
if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64|amd64|i686|i386")
set(IS_X86_64 TRUE)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64|aarch64|ARM64")
set(IS_ARM64 TRUE)
endif()
if(USE_SIMD AND NOT WIN32 AND IS_X86_64)
include(CheckCXXCompilerFlag)
# Check for AVX2 support
check_cxx_compiler_flag("-mavx2" COMPILER_SUPPORTS_AVX2)
check_cxx_compiler_flag("-msse4.2" COMPILER_SUPPORTS_SSE42)
check_cxx_compiler_flag("-mfma" COMPILER_SUPPORTS_FMA)
if(COMPILER_SUPPORTS_AVX2)
message(STATUS "SIMD: AVX2 support detected")
add_compile_definitions(EIDOS_HAS_AVX2=1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2")
if(COMPILER_SUPPORTS_FMA)
message(STATUS "SIMD: FMA support detected")
add_compile_definitions(EIDOS_HAS_FMA=1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfma")
endif()
elseif(COMPILER_SUPPORTS_SSE42)
message(STATUS "SIMD: SSE4.2 support detected (no AVX2)")
add_compile_definitions(EIDOS_HAS_SSE42=1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.2")
else()
message(STATUS "SIMD: No x86 SIMD support detected, using scalar fallback")
endif()
elseif(USE_SIMD AND NOT WIN32 AND IS_ARM64)
# ARM64 NEON is always available on ARM64, no compiler flag needed
message(STATUS "SIMD: ARM64 NEON support enabled")
add_compile_definitions(EIDOS_HAS_NEON=1)
elseif(USE_SIMD AND NOT WIN32)
message(STATUS "SIMD: Unknown architecture (${CMAKE_SYSTEM_PROCESSOR}), using scalar fallback")
elseif(USE_SIMD AND WIN32)
# Windows SIMD detection - MinGW uses GCC, so we can use the same flags as Linux
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag("-mavx2" COMPILER_SUPPORTS_AVX2_WIN)
check_cxx_compiler_flag("-mfma" COMPILER_SUPPORTS_FMA_WIN)
if(COMPILER_SUPPORTS_AVX2_WIN)
message(STATUS "SIMD: AVX2 support detected (Windows/MinGW)")
add_compile_definitions(EIDOS_HAS_AVX2=1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mavx2")
if(COMPILER_SUPPORTS_FMA_WIN)
message(STATUS "SIMD: FMA support detected (Windows/MinGW)")
add_compile_definitions(EIDOS_HAS_FMA=1)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfma")
endif()
else()
message(STATUS "SIMD: No AVX2 support on Windows/MinGW, using scalar fallback")
endif()
else()
# MSVC path - not currently used but could be added in the future
message(STATUS "SIMD: MSVC SIMD detection not yet implemented, using scalar fallback")
endif()
else()
message(STATUS "SIMD: Disabled by user")
endif()
# GSL - adding /usr/local/include so all targets that use GSL_INCLUDES get omp.h
set(TARGET_NAME_GSL gsl)
file(GLOB_RECURSE GSL_SOURCES ${PROJECT_SOURCE_DIR}/gsl/*.c ${PROJECT_SOURCE_DIR}/gsl/*/*.c)
set(GSL_INCLUDES ${PROJECT_SOURCE_DIR}/gsl ${PROJECT_SOURCE_DIR}/gsl/specfunc ${PROJECT_SOURCE_DIR}/gsl/blas ${PROJECT_SOURCE_DIR}/gsl/rng ${PROJECT_SOURCE_DIR}/gsl/cdf ${PROJECT_SOURCE_DIR}/gsl/vector ${PROJECT_SOURCE_DIR}/gsl/err ${PROJECT_SOURCE_DIR}/gsl/sys ${PROJECT_SOURCE_DIR}/gsl/randist ${PROJECT_SOURCE_DIR}/gsl/matrix ${PROJECT_SOURCE_DIR}/gsl/cblas ${PROJECT_SOURCE_DIR}/gsl/complex ${PROJECT_SOURCE_DIR}/gsl/block ${PROJECT_SOURCE_DIR}/gsl/interpolation ${PROJECT_SOURCE_DIR}/gsl/linalg ${PROJECT_SOURCE_DIR}/gsl/permutation /usr/local/include)
add_library(${TARGET_NAME_GSL} STATIC ${GSL_SOURCES})
target_include_directories(${TARGET_NAME_GSL} PUBLIC ${GSL_INCLUDES})
# ZLIB
set(TARGET_NAME_ZLIB eidos_zlib)
file(GLOB_RECURSE ZLIB_SOURCES ${PROJECT_SOURCE_DIR}/eidos_zlib/*.c)
set(ZLIB_INCLUDES ${PROJECT_SOURCE_DIR}/eidos_zlib)
add_library(${TARGET_NAME_ZLIB} STATIC ${ZLIB_SOURCES})
target_include_directories(${TARGET_NAME_ZLIB} PUBLIC)
# KASTORE
set(TARGET_NAME_KASTORE kastore)
file(GLOB_RECURSE KASTORE_SOURCES ${PROJECT_SOURCE_DIR}/treerec/tskit/kastore/*.c)
set(KASTORE_INCLUDES ${PROJECT_SOURCE_DIR}/treerec/tskit/kastore)
add_library(${TARGET_NAME_KASTORE} STATIC ${KASTORE_SOURCES})
target_include_directories(${TARGET_NAME_KASTORE} PUBLIC)
# TSKIT
set(TARGET_NAME_TSKIT tables)
file(GLOB_RECURSE TABLE_SOURCES ${PROJECT_SOURCE_DIR}/treerec/tskit/*.c)
set(TSKIT_INCLUDES ${PROJECT_SOURCE_DIR}/treerec)
add_library(${TARGET_NAME_TSKIT} STATIC ${TABLE_SOURCES})
target_include_directories(${TARGET_NAME_TSKIT} PRIVATE ${GSL_INCLUDES} ${KASTORE_INCLUDES})
target_include_directories(${TARGET_NAME_TSKIT} PUBLIC ${KASTORE_INCLUDES} ${TSKIT_INCLUDES})
if(WIN32)
target_link_libraries(${TARGET_NAME_TSKIT} PUBLIC gnu)
endif()
# SLIM
if(PARALLEL)
set(TARGET_NAME_SLIM slim_multi)
else()
set(TARGET_NAME_SLIM slim)
endif(PARALLEL)
file(GLOB_RECURSE SLIM_SOURCES ${PROJECT_SOURCE_DIR}/core/*.cpp ${PROJECT_SOURCE_DIR}/eidos/*.cpp)
# use the Git commit SHA-1 obtained above
configure_file("${PROJECT_SOURCE_DIR}/cmake/GitSHA1.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/GitSHA1.cpp" @ONLY)
list(APPEND SLIM_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/GitSHA1.cpp" ${PROJECT_SOURCE_DIR}/cmake/GitSHA1.h)
add_executable(${TARGET_NAME_SLIM} ${SLIM_SOURCES})
target_include_directories(${TARGET_NAME_SLIM} PRIVATE ${GSL_INCLUDES} "${PROJECT_SOURCE_DIR}/core" "${PROJECT_SOURCE_DIR}/eidos")
target_link_libraries(${TARGET_NAME_SLIM} PUBLIC gsl eidos_zlib tables)
if(PARALLEL)
# linking in the OpenMP library is maybe automatic with gcc?
#target_link_libraries(${TARGET_NAME_SLIM} PUBLIC omp)
endif()
if(WIN32)
set_source_files_properties(${SLIM_SOURCES} PROPERTIES COMPILE_FLAGS "-include config.h")
set_source_files_properties(${GNULIB_NAMESPACE_SOURCES} TARGET_DIRECTORY slim PROPERTIES COMPILE_FLAGS "-include config.h -DGNULIB_NAMESPACE=gnulib")
target_include_directories(${TARGET_NAME_SLIM} BEFORE PUBLIC ${GNU_DIR})
target_link_libraries(${TARGET_NAME_SLIM} PUBLIC gnu PRIVATE bcrypt)
endif()
# EIDOS
if(PARALLEL)
set(TARGET_NAME_EIDOS eidos_multi)
else()
set(TARGET_NAME_EIDOS eidos)
endif(PARALLEL)
file(GLOB_RECURSE EIDOS_SOURCES ${PROJECT_SOURCE_DIR}/eidos/*.cpp ${PROJECT_SOURCE_DIR}/eidostool/*.cpp)
add_executable(${TARGET_NAME_EIDOS} ${EIDOS_SOURCES})
target_include_directories(${TARGET_NAME_EIDOS} PRIVATE ${GSL_INCLUDES} "${PROJECT_SOURCE_DIR}/eidos")
target_link_libraries(${TARGET_NAME_EIDOS} PUBLIC gsl eidos_zlib tables)
if(PARALLEL)
# linking in the OpenMP library is maybe automatic with gcc?
#target_link_libraries(${TARGET_NAME_EIDOS} PUBLIC omp)
endif()
if(WIN32)
set_source_files_properties(${EIDOS_SOURCES} PROPERTIES COMPILE_FLAGS "-include config.h")
set_source_files_properties(${GNULIB_NAMESPACE_SOURCES} TARGET_DIRECTORY slim eidos PROPERTIES COMPILE_FLAGS "-include config.h -DGNULIB_NAMESPACE=gnulib")
target_include_directories(${TARGET_NAME_EIDOS} BEFORE PUBLIC ${GNU_DIR})
target_link_libraries(${TARGET_NAME_EIDOS} PUBLIC gnu PRIVATE bcrypt)
endif()
if(PARALLEL)
install(TARGETS slim_multi eidos_multi DESTINATION bin)
else()
install(TARGETS slim eidos DESTINATION bin)
endif(PARALLEL)
# SLiMgui -- this can be enabled with the -DBUILD_SLIMGUI=ON option to cmake
if(BUILD_SLIMGUI)
cmake_minimum_required (VERSION 3.1.0...4.0 FATAL_ERROR)
set(TARGET_NAME_SLIMGUI SLiMgui)
find_package(OpenGL REQUIRED)
# Default to Qt6 if available, fall back to Qt5; this defines QT_VERSION_MAJOR to be either 5 or 6
# This is complicated slightly by the modules needed differing between Qt5 and Qt6
# see https://doc.qt.io/qt-6/cmake-qt5-and-qt6-compatibility.html
# I found that find_package(QT NAMES Qt6 Qt5 ...) was behaving oddly, so I shifted to the below
find_package(Qt6 COMPONENTS Core Gui Widgets OpenGLWidgets)
if(Qt6_FOUND)
set(QT_VERSION_MAJOR 6)
message(STATUS "Found Qt6 (${Qt6_VERSION}) at ${QT6_INSTALL_PREFIX}")
else()
find_package(Qt5 COMPONENTS Core Gui Widgets)
if(Qt5_FOUND)
set(QT_VERSION_MAJOR 5)
message(STATUS "Could not find Qt6; if this is unexpected, you may wish to set Qt6_DIR and/or CMAKE_PREFIX_PATH")
message(STATUS "Found Qt5 (${Qt5_VERSION}) at ${Qt5_DIR}")
# note that on macOS, Qt5 has only the x86_64 architecture, so if you are on macOS-arm64 your build will fail
# you can supply -D CMAKE_OSX_ARCHITECTURES="x86_64" at the command line and it should build for x86_64
else()
message(FATAL_ERROR "Could not find Qt5 or Qt6; you may wish to set Qt6_DIR, Qt5_DIR, and/or CMAKE_PREFIX_PATH")
endif()
endif()
# a useful bit of debugging code that prints all defined variables
#get_cmake_property(_variableNames VARIABLES)
#list (SORT _variableNames)
#foreach (_variableName ${_variableNames})
# message(STATUS "${_variableName}=${${_variableName}}")
#endforeach()
if(WIN32)
set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME_SLIMGUI}_autogen/mocs_compilation.cpp" PROPERTIES COMPILE_FLAGS "-include config.h -DGNULIB_NAMESPACE=gnulib")
endif()
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
list(REMOVE_ITEM SLIM_SOURCES ${PROJECT_SOURCE_DIR}/core/main.cpp)
file(GLOB_RECURSE QTSLIM_SOURCES ${PROJECT_SOURCE_DIR}/QtSLiM/*.cpp ${PROJECT_SOURCE_DIR}/QtSLiM/*.qrc ${PROJECT_SOURCE_DIR}/eidos/*.cpp)
add_executable(${TARGET_NAME_SLIMGUI} "${QTSLIM_SOURCES}" "${SLIM_SOURCES}")
set_target_properties( ${TARGET_NAME_SLIMGUI} PROPERTIES LINKER_LANGUAGE CXX)
target_compile_definitions( ${TARGET_NAME_SLIMGUI} PRIVATE EIDOSGUI=1 SLIMGUI=1)
target_include_directories(${TARGET_NAME_SLIMGUI} PUBLIC ${GSL_INCLUDES} "${PROJECT_SOURCE_DIR}/QtSLiM" "${PROJECT_SOURCE_DIR}/eidos" "${PROJECT_SOURCE_DIR}/core" "${PROJECT_SOURCE_DIR}/treerec" "${PROJECT_SOURCE_DIR}/treerec/tskit/kastore")
# Qt dependencies, which depend on the Qt version used. For Qt6, we also need C++17; the last -std flag supplied ought to take priority.
if(${QT_VERSION_MAJOR} EQUAL 5)
target_link_libraries( ${TARGET_NAME_SLIMGUI} PUBLIC Qt5::Widgets Qt5::Core Qt5::Gui )
else()
target_link_libraries( ${TARGET_NAME_SLIMGUI} PUBLIC Qt6::Widgets Qt6::Core Qt6::Gui Qt6::OpenGLWidgets )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c17")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
endif()
# Operating System-specific install stuff.
if(APPLE)
target_link_libraries( ${TARGET_NAME_SLIMGUI} PUBLIC OpenGL::GL gsl tables eidos_zlib )
else()
if(WIN32)
set_source_files_properties(${QTSLIM_SOURCES} PROPERTIES COMPILE_FLAGS "-include config.h")
set_source_files_properties(${GNULIB_NAMESPACE_SOURCES} TARGET_DIRECTORY slim eidos SLiMgui PROPERTIES COMPILE_FLAGS "-include config.h -DGNULIB_NAMESPACE=gnulib")
target_include_directories(${TARGET_NAME_SLIMGUI} BEFORE PUBLIC ${GNU_DIR})
target_link_libraries(${TARGET_NAME_SLIMGUI} PUBLIC OpenGL::GL gsl tables eidos_zlib gnu PRIVATE bcrypt)
else()
target_link_libraries( ${TARGET_NAME_SLIMGUI} PUBLIC OpenGL::GL gsl tables eidos_zlib )
# Install icons and desktop files to the data root directory (usually /usr/local/share, or /usr/share).
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.14")
install(DIRECTORY data/ TYPE DATA)
else()
message(WARNING "The CMake version is less than 3.14, so installation of icons, desktop files, mime types, etc. must occur manually.")
endif()
endif()
endif()
install(TARGETS ${TARGET_NAME_SLIMGUI} DESTINATION bin)
endif(BUILD_SLIMGUI)
# Deal with the PROFILE and PARALLEL flags, which interact and are handled in a complex way.
#
# For SLiMgui, profiling is always on for Release builds, always off for Debug builds; PROFILE does not affect it
# For slim, profiling follows the PROFILE setting for Release builds, but in Debug builds it is an error for PROFILE to be on
# For eidos, profiling is always off; the eidos command-line tool does not support profiling on its own, only in SLiM
#
# Note that SLiMgui cannot be built parallel; if you want to build parallel, do not set BUILD_SLIMGUI
if(PROFILE)
if(CMAKE_BUILD_TYPE STREQUAL Debug)
message(FATAL_ERROR "PROFILE is not allowed for Debug builds")
endif()
if(PARALLEL)
target_compile_definitions( eidos_multi PRIVATE SLIMPROFILING=0)
target_compile_definitions( slim_multi PRIVATE SLIMPROFILING=1)
else()
target_compile_definitions( eidos PRIVATE SLIMPROFILING=0)
target_compile_definitions( slim PRIVATE SLIMPROFILING=1)
endif(PARALLEL)
else()
if(PARALLEL)
target_compile_definitions( eidos_multi PRIVATE SLIMPROFILING=0)
target_compile_definitions( slim_multi PRIVATE SLIMPROFILING=0)
else()
target_compile_definitions( eidos PRIVATE SLIMPROFILING=0)
target_compile_definitions( slim PRIVATE SLIMPROFILING=0)
endif(PARALLEL)
endif(PROFILE)
if(BUILD_SLIMGUI)
if(CMAKE_BUILD_TYPE STREQUAL Release)
target_compile_definitions( SLiMgui PRIVATE SLIMPROFILING=1)
else()
target_compile_definitions( SLiMgui PRIVATE SLIMPROFILING=0)
endif(CMAKE_BUILD_TYPE STREQUAL Release)
if(PARALLEL)
message(FATAL_ERROR "PARALLEL is not allowed for SLiMgui; running SLiMgui multi-threaded is not supported. If you wish to build SLiM parallel, do not set BUILD_SLIMGUI for that build.")
endif()
endif(BUILD_SLIMGUI)
# implement clang-tidy for all end-user targets (not for gsl, zlib, kastore, tskit)
if(TIDY)
if(PARALLEL)
set_target_properties(eidos_multi PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_COMMAND}")
set_target_properties(slim_multi PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_COMMAND}")
else()
set_target_properties(eidos PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_COMMAND}")
set_target_properties(slim PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_COMMAND}")
endif(PARALLEL)
if(BUILD_SLIMGUI)
set_target_properties(SLiMgui PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_COMMAND}")
endif(BUILD_SLIMGUI)
endif()
# implement cppcheck for all end-user targets (not for gsl, zlib, kastore, tskit)
if(CPPCHECK)
if(PARALLEL)
set_target_properties(eidos_multi PROPERTIES CXX_CPPCHECK "${CPPCHECK_COMMAND}")
set_target_properties(slim_multi PROPERTIES CXX_CPPCHECK "${CPPCHECK_COMMAND}")
else()
set_target_properties(eidos PROPERTIES CXX_CPPCHECK "${CPPCHECK_COMMAND}")
set_target_properties(slim PROPERTIES CXX_CPPCHECK "${CPPCHECK_COMMAND}")
endif(PARALLEL)
if(BUILD_SLIMGUI)
set_target_properties(SLiMgui PROPERTIES CXX_CPPCHECK "${CPPCHECK_COMMAND}")
endif(BUILD_SLIMGUI)
endif()
# add testing so it can be called using make test
enable_testing()
# test SLiM
add_test(
NAME testSLiM
COMMAND ${TARGET_NAME_SLIM} -testSLiM
)
# test Eidos from SLiM
add_test(
NAME testEidosSLiM
COMMAND ${TARGET_NAME_SLIM} -testEidos
)
# test Eidos from Eidos
add_test(
NAME testEidosEidos
COMMAND ${TARGET_NAME_EIDOS} -testEidos
)
================================================
FILE: CONTENTS.txt
================================================
This file briefly describes the top-level contents of this repository, for reference.
If new files/directories are added to the top level, please add a description of them here.
EIDOS SOURCE FILES
------------------
eidos/ : the Eidos language interpreter
eidostool/ : the `eidos` command-line tool
eidos_zlib/ : a modified copy of the open-source `zlib` library, used by Eidos
gsl/ : a modified copy of the open-source Gnu Scientific Library, used by Eidos
windows_compat/ : gnulib sources providing APIs (POSIX etc.) needed to build on Windows
EidosScribe/ : a macOS-only app based on Cocoa, for interactive Eidos programming
SLiM SOURCE FILES
-----------------
core/ : the SLiM core; main.cpp is for the `slim` command-line tool
treerec/ : a copy of the open-source tskit and kastore libraries, used by SLiM, with tests
QtSLiM/ : the modern cross-platform SLiMgui app based on Qt
SLiMgui/ : the old macOS-only SLiMgui app based on Cocoa, now called SLiMguiLegacy
PROJECT FILES
-------------
SLiM.xcodeproj/ : Xcode project files, used for development on macOS
CMakeLists.txt : CMake build configuration, for building at the command line
SLiM.pro : qmake / Qt Creator build configuration, for making QtSLiM; see other .pro files also
GIT AND GITHUB FILES
--------------------
.github/ : GitHub issue templaces, GitHub Actions workflows
.gitattributes : git configuration file
.gitignore : git configuration file
README.md : the README information visible on SLiM GitHub home page
DISTRIBUTION FILES
------------------
org.messerlab.* : files used by Linux packages for desktop configuration; see
freedesktop.org for more information about these files.
debian/ : files used by Debian and Debian-derived Linux distributions for
creating deb source and binary packages. See the "Guide for Debian Maintainers"
and "Debian Developer's Reference" for more information:
https://www.debian.org/doc/devel-manuals.
SLiM-3.7.1.spec : "a recipe that the rpmbuild utility uses to build an RPM," as
described by the Red Hat documentation in the
"PACKAGING AND DISTRIBUTING SOFTWARE" section of the RHEL 8 manual.
MISCELLANEOUS FILES
-------------------
.travis.yml : configuration for Travis-CI; not currently used, kept for posterity
sonar-project.properties : configuration for a code linting tool called Sonar
EidosSLiMTests/ : a test harness used inside Xcode; not used much, not maintained
LICENSE : the legal licence document for Eidos and SLiM (GNU General Public License 3.0)
TO_DO : misnamed; actually a list of command-line stuff that I have found useful when developing
VERSIONS : a log of significant changes made in each version of SLiM, back to 2.0
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to SLiM
Welcome! This document outlines some guidelines and procedures for participating in and contributing to the SLiM community. You can read about SLiM at the [<u>SLiM home page</u>](https://messerlab.org/slim/).
## Code of conduct
Be polite, kind, and considerate. Do not spam, advertise, or proselytize.
**AI-generated contributions violate the code of conduct.** An exception is made for the use of AI to translate text from another language.
## Getting started with SLiM
If you're a **new user wondering how to get started**, the [<u>SLiM home page</u>](https://messerlab.org/slim/) is a good place to start. It provides a quick overview of what SLiM is, with links to a couple of podcast episodes in which SLiM was discussed. Downloadable manuals for Eidos and SLiM are available there.
It also has a section about the **SLiM Workshop**, a tutorial process we have developed for new users. The [<u>SLiM Workshop</u>](https://messerlab.org/slim/#Workshops) is probably the best way to get into SLiM; you can register to take it in person when it is offered, or download the free online materials for the workshop and do it on your own time. The in-person workshops generally fill up quickly, so you would want to register for them soon after they are posted. You can see announcements of new workshops on the [<u>slim-discuss list</u>](https://groups.google.com/g/slim-discuss), or the [<u>slim-announce list</u>](https://groups.google.com/g/slim-announce) if you only want to see announcements (not questions). **If you wish to join slim-discuss, you must use an institutional email address (.edu, .gov, etc.), state your institution, and supply a SLiM-related "reason for joining" in your request.**
## Bug reports and feature requests
If you think you're seeing **a bug in SLiM or Eidos**, or you have a **feature request for SLiM or Eidos**, please open a new issue on [<u>SLiM's GitHub repository</u>](https://github.com/MesserLab/SLiM/issues). For **bugs or feature requests pyslim**, please open an issue in the [<u>pyslim repository</u>](https://github.com/tskit-dev/pyslim/issues). Please first search for similar issues, to save yourself and others time. For bugs in other parts of the software ecosystem, such as msprime or tskit, please use a search engine to find the correct process; please do *not* ask us for support for that software.
Writing up **a good bug report** is an art form, and it is greatly appreciated by us, the developers, on the other end – and it makes it much more likely that your bug will actually get fixed. For further guidance on writing a good bug report, please consult the paper [<u>Ten simple rules on reporting a bug</u>](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1010540). Particularly important is constructing a **minimal reproducible example**; without that, it is often difficult for us to do much with your bug report. If you're not sure what a minimal reproducible example is, please read that paper.
## Asking a question
If you want to ask a question about SLiM, Eidos, or pyslim, please do not file an issue on GitHub. Instead, join the [<u>slim-discuss list</u>](https://groups.google.com/g/slim-discuss) and ask it there. Please search first to see whether others have already asked the same question. Note that slim-discuss is frequently targeted by spammers, and is therefore heavily moderated. **If you wish to join slim-discuss, you must use an institutional email address (.edu, .gov, etc.), state your institution, and supply a SLiM-related "reason for joining" in your request.**
If your question is about a specific model that you're working on, then the guidelines for asking a good question are similar to filing a good bug report, so again, please read the paper [<u>Ten simple rules on reporting a bug</u>](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1010540). For example: search slim-discuss for previous answers to your question; try to answer your question yourself using the manual first; whittle down your model to a minimal reproducible example; post the complete model code so that we can see what you're actually doing; clearly state what you're trying to do and why; if you're getting an error message, copy/paste that error message rather than just saying "I got an error"; and so forth. Be specific and give us the information we will need to answer your question; don't make us guess.
A particularly common type of question is along the lines of:
#### "Why doesn't my model's behavior match theory?"
These questions can be tricky to answer. The reason they are tricky is because "theory" can mean a lot of different things, and for that matter, so can "match". So, this sort of question is much more likely to get a useful and interesting answer if it includes:
* an explicit description of what the theoretical result is
* a plot of the observed and expected values as they change with some parameter
* citation of somewhere that explains/derives the theoretical result
* ideally, an overview of what assumptions and approximations underly the result (e.g., "under the WF model for large N with infinite sites mutations")
* a high-level description of the SLiM model and how the relevant statistics are calculated
the SLiM recipe and other code, ideally set up to run without command-line arguments or input files on someone else's computer, made as simple as possible
These sorts of questions are pretty common, and natural, and it's not obvious to many people how a question like this can be hard to answer without additional information of this sort.
Often the results from simulation don't match theory because they're not *expected* to match theory; the simulation violates assumptions used by the theory in important ways, or the theory is known to be limited or biased or approximate, or the simulations – being stochastic – don't exactly match theory simply due to stochasticity. Try to think about these possibilities and rule them out before asking us. We don't want to discourage relevant questions, but keep in mind that we're here to answer questions about our software, not to provide general consulting services for any and all questions about population genetics. :->
## Opening a discussion
If you want to start a conversation with the SLiM community about an idea, perhaps the best place for it is the new [<u>slim-community organization</u>](https://github.com/slim-community) on GitHub. Just click the "Request to Join" button to join, and once you receive your invite from a community moderator, you're good to go! To give your discussion visibility, please feel free to post, *just once*, on slim-discuss to tell people that your discussion is there.
The slim-discuss mailing list might also be a good place to post, but please do be aware that hundreds of people subscribe to that mailing list; think about whether you really want to put something in all those people's inboxes, or whether you might want to just bounce the idea off of the developers – us – in a GitHub issue, or make a slim-community discussion that people can join in on. But if you think your idea is really appropriate for the mailing list, then go for it!
## SLiM-related job postings
If you are looking to hire someone with SLiM skills, or you have SLiM skills and you're looking to get hired, please post in the [<u>slim-community organization</u>](https://github.com/slim-community), specifically in the [<u>Jobs discussion area</u>](https://github.com/orgs/slim-community/discussions/categories/jobs).
The [<u>EvolDir mailing list</u>](https://evol.mcmaster.ca/evoldir.html) is also a good place to watch for job listings (or post your own), and does sometimes have listings that specifically mention SLiM.
Good luck!
## Contributing code
**First of all, all contributions to SLiM must be human-authored in accordance with the code of conduct.** It is acceptable to use AI as a reference tool, to essentially provide documentation that you consult while working. It is *not* acceptable to use AI to write code, documentation, or any other part of a PR that you submit to the SLiM repository. PRs that incorporate AI-generated content will be rejected, with reference to this policy. Repeated attempts will result in blocking. Thank you for understanding and complying with this policy.
If you wish to make a contribution to SLiM, it would be a good idea to open an issue and get feedback first. This repository is under intensive development, with specific goals in mind; contributions that don't fit with the overall vision of SLiM, or that conflict heavily with other changes underway or planned, may be rejected. Discussing your planned changes before you make them would help you to craft a contribution that would be accepted. That said, PRs that make a useful contribution, such as adding a new function into Eidos, are quite welcome!
The standard workflow for contributions is to fork and open a pull request (PR) based upon a branch in your fork.
## Contributing documentation and recipes.
**First of all, all contributions to SLiM must be human-authored in accordance with the code of conduct.** That said, if you wish to make contributions to SLiM's documentation, such as edits or new recipes, that's great. SLiM's documentation is kept in a macOS app called Pages that stores its data in binary form, so the doc is not available online in its original form, and pull requests against it are not possible. In general the best approach is thus to open a new issue and provide a description of the edits you would suggest, with a rationale for them.
For new recipes/models, unless you believe that they are of sufficient general interest to belong in the SLiM manual itself, the best place to contribute is probably the [<u>SLiM-Extras repository</u>](https://github.com/MesserLab/SLiM-Extras). New pull requests for SLiM-Extras are generally welcome. Please edit the appropriate README files to add a mention of your contribution, and please provide a credit to yourself, including your name, institution, and an email address.
## Contributing whole repositories
If you have a contribution that is large enough to make sense as its own standalone repository, such as a new software tool that could join the SLiM ecosystem, the best home is the [<u>slim-community organization</u>](https://github.com/slim-community) on GitHub. You can request to join that organization by clicking the big "Request to Join" button, and you can see some existing contributed repositories there.
## Closing remarks
Thanks for reading this and thinking about the best way to engage; we appreciate it.
And thanks for being a part of the SLiM community! Happy SLiMulating!
*— Ben Haller, 30 December 2025*
================================================
FILE: EidosSLiMTests/EidosTests.mm
================================================
//
// EidosTests.m
// SLiM
//
// Created by Ben Haller on 1/27/17.
// Copyright (c) 2017-2022 Benjamin C. Haller. All rights reserved.
// A product of the Messer Lab, http://messerlab.org/slim/
//
// This file is part of SLiM.
//
// SLiM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
//
// SLiM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with SLiM. If not, see <http://www.gnu.org/licenses/>.
#import <XCTest/XCTest.h>
#import "eidos_test.h"
@interface EidosTests : XCTestCase
@end
@implementation EidosTests
- (void)setUp {
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
#ifdef _OPENMP
Eidos_WarmUpOpenMP(&SLIM_ERRSTREAM, changed_max_thread_count, (int)max_thread_count, true, /* max per-task thread counts */ "maxThreads");
#endif
Eidos_WarmUp();
}
- (void)tearDown {
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testEidos {
// Since we roll our own testing code, for testability by the user, we don't fit very well into
// the Xcode testing framework. We make no attempt here to split the individual tests into their
// own methods, or to call Xcode's assert functions to assert failures, or anything like that.
// The point of having these tests at all is to be able to assess test code coverage in Xcode.
RunEidosTests();
}
@end
================================================
FILE: EidosSLiMTests/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
================================================
FILE: EidosSLiMTests/SLiMTests.mm
================================================
//
// SLiMTests.m
// SLiM
//
// Created by Ben Haller on 1/27/17.
// Copyright (c) 2017-2022 Benjamin C. Haller. All rights reserved.
// A product of the Messer Lab, http://messerlab.org/slim/
//
// This file is part of SLiM.
//
// SLiM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
//
// SLiM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with SLiM. If not, see <http://www.gnu.org/licenses/>.
#import <XCTest/XCTest.h>
#import "slim_test.h"
#import "individual.h"
#import "mutation.h"
@interface SLiMTests : XCTestCase
@end
@implementation SLiMTests
- (void)setUp {
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
#ifdef _OPENMP
Eidos_WarmUpOpenMP(&SLIM_ERRSTREAM, changed_max_thread_count, (int)max_thread_count, true, /* max per-task thread counts */ "maxThreads");
#endif
SLiM_ConfigureContext();
Eidos_WarmUp();
SLiM_WarmUp();
// our self-tests run in SLiMgui, but eidosConsoleWindowControllerDidExecuteScript: puts nasty values into
// these variables to help find bugs, and we run our tests outside of any SLiMgui window so the nasty
// values bite us...
gSLiM_next_pedigree_id = 0;
gSLiM_next_mutation_id = 0;
}
- (void)tearDown {
// Put teardown code here. This method is called after the invocation of each test method in the class.
[super tearDown];
}
- (void)testSLiM {
// Since we roll our own testing code, for testability by the user, we don't fit very well into
// the Xcode testing framework. We make no attempt here to split the individual tests into their
// own methods, or to call Xcode's assert functions to assert failures, or anything like that.
// The point of having these tests at all is to be able to assess test code coverage in Xcode.
RunSLiMTests();
}
@end
================================================
FILE: EidosScribe/Base.lproj/EidosAboutWindow.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="17506" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="17506"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="EidosAppDelegate">
<connections>
<outlet property="aboutVersionTextField" destination="WB2-cU-hkd" id="CNZ-WA-EUh"/>
<outlet property="aboutWindow" destination="QvC-M9-y7g" id="7vI-I4-hc5"/>
<outlet property="benHallerLineTextField" destination="9KH-lz-tf6" id="Zig-Fg-zlN"/>
<outlet property="licenseTextField" destination="l8N-rU-b5f" id="Zcf-DJ-9Qb"/>
<outlet property="messerLabLineTextField" destination="C4q-EC-cXM" id="QJz-7b-zmA"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" visibleAtLaunch="NO" animationBehavior="default" id="QvC-M9-y7g" customClass="NSPanel">
<windowStyleMask key="styleMask" titled="YES" closable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="745" width="621" height="449"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" id="EiT-Mj-1SZ">
<rect key="frame" x="0.0" y="0.0" width="621" height="436"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="CxN-ue-roS">
<rect key="frame" x="20" y="288" width="128" height="128"/>
<constraints>
<constraint firstAttribute="height" constant="128" id="rVI-r9-sd7"/>
<constraint firstAttribute="width" constant="128" id="sfg-xt-7oO"/>
</constraints>
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSApplicationIcon" id="6vw-j2-cwW"/>
</imageView>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="wDw-79-A4b">
<rect key="frame" x="175" y="377" width="317" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="EidosScribe : An interactive interpreter for Eidos" id="sJB-jI-icR">
<font key="font" metaFont="systemBold"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9KH-lz-tf6">
<rect key="frame" x="175" y="312" width="267" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="By Benjamin C. Haller, http://benhaller.com/" id="cag-MY-und">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="C4q-EC-cXM">
<rect key="frame" x="175" y="353" width="351" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Messer Lab, Cornell University, http://messerlab.org/slim/" id="jqg-yt-Wpi">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cD8-Mz-qIr">
<rect key="frame" x="175" y="336" width="389" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Copyright © 2016-2025 Benjamin C. Haller. All rights reserved." id="jZm-bw-sGW">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="WB2-cU-hkd">
<rect key="frame" x="409" y="409" width="204" height="17"/>
<constraints>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="200" id="SBS-mC-L6n"/>
<constraint firstAttribute="height" constant="17" id="kLz-az-BTI"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="version" id="15F-WF-Zi9">
<font key="font" metaFont="palette"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="l8N-rU-b5f">
<rect key="frame" x="46" y="40" width="529" height="208"/>
<constraints>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="525" id="3Yu-Qt-RPr"/>
</constraints>
<textFieldCell key="cell" sendsActionOnEndEditing="YES" id="efh-34-WId">
<font key="font" metaFont="system"/>
<string key="title">Eidos is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Eidos is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Eidos. If not, see http://www.gnu.org/licenses/.
Please see the Eidos manual for credits and license information for code that has been incorporated into Eidos from other authors.</string>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<constraints>
<constraint firstAttribute="centerX" secondItem="l8N-rU-b5f" secondAttribute="centerX" id="1Cg-63-tUN"/>
<constraint firstItem="WB2-cU-hkd" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="48" id="5Le-7s-1Mx"/>
<constraint firstAttribute="trailing" secondItem="WB2-cU-hkd" secondAttribute="trailing" constant="10" id="DNR-LT-Q4b"/>
<constraint firstItem="l8N-rU-b5f" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="48" id="Ezq-W1-pcW"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="l8N-rU-b5f" secondAttribute="trailing" constant="48" id="FWS-3s-vOF"/>
<constraint firstItem="C4q-EC-cXM" firstAttribute="leading" secondItem="wDw-79-A4b" secondAttribute="leading" id="HW0-by-DLL"/>
<constraint firstItem="cD8-Mz-qIr" firstAttribute="leading" secondItem="C4q-EC-cXM" secondAttribute="leading" id="JdI-QS-ppx"/>
<constraint firstItem="WB2-cU-hkd" firstAttribute="top" secondItem="EiT-Mj-1SZ" secondAttribute="top" constant="10" id="Jzj-ki-KJ3"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="cD8-Mz-qIr" secondAttribute="trailing" constant="48" id="OWe-in-0wJ"/>
<constraint firstItem="l8N-rU-b5f" firstAttribute="top" secondItem="CxN-ue-roS" secondAttribute="bottom" constant="40" id="RQp-J8-UKb"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="C4q-EC-cXM" secondAttribute="trailing" constant="48" id="S7y-0f-9dX"/>
<constraint firstItem="CxN-ue-roS" firstAttribute="top" secondItem="wDw-79-A4b" secondAttribute="bottom" constant="-39" id="SgS-FZ-ZOF"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="wDw-79-A4b" secondAttribute="trailing" constant="48" id="TdM-xv-1bc"/>
<constraint firstItem="cD8-Mz-qIr" firstAttribute="top" secondItem="C4q-EC-cXM" secondAttribute="bottom" constant="1" id="TsK-bf-Azp"/>
<constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="9KH-lz-tf6" secondAttribute="trailing" constant="48" id="UpT-bU-Yhx"/>
<constraint firstItem="CxN-ue-roS" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="20" id="b1f-cV-8HA"/>
<constraint firstItem="cD8-Mz-qIr" firstAttribute="leading" secondItem="9KH-lz-tf6" secondAttribute="leading" id="chO-2v-wka"/>
<constraint firstItem="C4q-EC-cXM" firstAttribute="top" secondItem="wDw-79-A4b" secondAttribute="bottom" constant="8" id="iNQ-B5-u82"/>
<constraint firstItem="9KH-lz-tf6" firstAttribute="top" secondItem="cD8-Mz-qIr" secondAttribute="bottom" constant="8" id="sch-36-LNf"/>
<constraint firstAttribute="bottom" secondItem="l8N-rU-b5f" secondAttribute="bottom" constant="40" id="viU-bB-jpP"/>
<constraint firstItem="wDw-79-A4b" firstAttribute="leading" secondItem="CxN-ue-roS" secondAttribute="trailing" constant="29" id="z2U-EL-tOb"/>
<constraint firstItem="CxN-ue-roS" firstAttribute="top" secondItem="EiT-Mj-1SZ" secondAttribute="top" constant="20" id="zxo-Hp-C8e"/>
</constraints>
</view>
<point key="canvasLocation" x="695.5" y="791"/>
</window>
</objects>
<resources>
<image name="NSApplicationIcon" width="32" height="32"/>
</resources>
</document>
================================================
FILE: EidosScribe/Base.lproj/EidosConsoleWindow.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12118" systemVersion="16F73" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12118"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="EidosAppDelegate">
<connections>
<outlet property="consoleController" destination="Oju-rn-RJg" id="hsy-zU-QJf"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<window title="Variable Browser" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" oneShot="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" frameAutosaveName="Variable Browser" animationBehavior="default" id="NRo-a8-DAD" userLabel="Variable Browser">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="283" y="348" width="800" height="302"/>
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
<value key="minSize" type="size" width="480" height="302"/>
<view key="contentView" id="ejJ-lZ-DxP">
<rect key="frame" x="0.0" y="0.0" width="800" height="302"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<scrollView autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qvW-Jg-Zwc">
<rect key="frame" x="-1" y="-1" width="802" height="304"/>
<clipView key="contentView" id="VOu-3p-vVw">
<rect key="frame" x="1" y="0.0" width="800" height="303"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" multipleSelection="NO" autosaveName="Variable Browser Table" headerView="Rl0-FI-YeK" indentationPerLevel="10" outlineTableColumn="o39-eJ-hfF" id="hH1-M5-dOk">
<rect key="frame" x="0.0" y="0.0" width="800" height="280"/>
<autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
<tableColumns>
<tableColumn identifier="Symbol" editable="NO" width="200" minWidth="150" maxWidth="300" id="o39-eJ-hfF">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Symbol">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
</tableHeaderCell>
<textFieldCell key="dataCell" controlSize="small" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="9Vv-BG-fxg">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
</tableColumn>
<tableColumn identifier="Type" editable="NO" width="160" minWidth="100" maxWidth="200" id="nDl-km-47h">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Type">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
</tableHeaderCell>
<textFieldCell key="dataCell" controlSize="small" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="CCq-mB-oXu">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
</tableColumn>
<tableColumn identifier="Size" editable="NO" width="75" minWidth="50" maxWidth="100" id="abz-vU-rF5">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="center" title="Size">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
</tableHeaderCell>
<textFieldCell key="dataCell" controlSize="small" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="center" title="Text Cell" id="fOH-A2-iVH">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
</tableColumn>
<tableColumn identifier="Values" editable="NO" width="353" minWidth="10" maxWidth="3.4028234663852886e+38" id="se1-Pr-NhJ">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Values">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
</tableHeaderCell>
<textFieldCell key="dataCell" controlSize="small" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="eCU-C2-6sg">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
</tableColumn>
</tableColumns>
<connections>
<outlet property="dataSource" destination="TRR-E4-jMc" id="SZj-X3-dO6"/>
<outlet property="delegate" destination="TRR-E4-jMc" id="nnK-FE-EtW"/>
</connections>
</outlineView>
</subviews>
</clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="4QD-0H-9dl">
<rect key="frame" x="1" y="119" width="223" height="15"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="Xbj-Tw-H7p">
<rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<tableHeaderView key="headerView" id="Rl0-FI-YeK">
<rect key="frame" x="0.0" y="0.0" width="800" height="23"/>
<autoresizingMask key="autoresizingMask"/>
</tableHeaderView>
</scrollView>
</subviews>
<constraints>
<constraint firstAttribute="bottom" secondItem="qvW-Jg-Zwc" secondAttribute="bottom" constant="-1" id="1A9-lF-9MS"/>
<constraint firstItem="qvW-Jg-Zwc" firstAttribute="leading" secondItem="ejJ-lZ-DxP" secondAttribute="leading" constant="-1" id="iNF-y5-R83"/>
<constraint firstAttribute="trailing" secondItem="qvW-Jg-Zwc" secondAttribute="trailing" constant="-1" id="ndG-gV-7eY"/>
<constraint firstItem="qvW-Jg-Zwc" firstAttribute="top" secondItem="ejJ-lZ-DxP" secondAttribute="top" constant="-1" id="w77-04-8d6"/>
</constraints>
</view>
<connections>
<outlet property="delegate" destination="TRR-E4-jMc" id="Lnn-0E-hDR"/>
</connections>
<point key="canvasLocation" x="1659" y="1709"/>
</window>
<customObject id="Oju-rn-RJg" customClass="EidosConsoleWindowController">
<connections>
<outlet property="bottomSplitView" destination="OgO-Qu-oJA" id="l2V-EH-mNW"/>
<outlet property="browserController" destination="TRR-E4-jMc" id="Gvk-P5-BrF"/>
<outlet property="browserToggleButton" destination="mJ2-l4-FOc" id="6Va-LI-Rha"/>
<outlet property="delegate" destination="-2" id="IxL-BB-3pl"/>
<outlet property="outputTextView" destination="hNz-Jr-UfL" id="MKo-wH-BBs"/>
<outlet property="scriptTextView" destination="g30-Kl-eb2" id="28b-x3-Gzp"/>
<outlet property="scriptWindow" destination="X56-a6-BnZ" id="ipo-Vc-kut"/>
<outlet property="statusTextField" destination="kY6-al-Llg" id="P64-k9-Ec6"/>
</connections>
</customObject>
<customObject id="TRR-E4-jMc" customClass="EidosVariableBrowserController">
<connections>
<outlet property="browserOutline" destination="hH1-M5-dOk" id="28G-hv-ZE9"/>
<outlet property="browserWindow" destination="NRo-a8-DAD" id="NkH-rE-hzf"/>
<outlet property="delegate" destination="Oju-rn-RJg" id="dtc-qA-VZ2"/>
<outlet property="sizeColumn" destination="abz-vU-rF5" id="0TH-Is-lmp"/>
<outlet property="symbolColumn" destination="o39-eJ-hfF" id="12u-JE-0c6"/>
<outlet property="typeColumn" destination="nDl-km-47h" id="5JW-50-dhX"/>
<outlet property="valueColumn" destination="se1-Pr-NhJ" id="VwY-ut-Skf"/>
</connections>
</customObject>
<window title="Eidos Console" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="Eidos Console" animationBehavior="default" id="X56-a6-BnZ">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<rect key="contentRect" x="335" y="390" width="1024" height="768"/>
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
<value key="minSize" type="size" width="512" height="384"/>
<view key="contentView" id="P8Z-tg-7Uc">
<rect key="frame" x="0.0" y="0.0" width="1024" height="768"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<splitView autosaveName="" dividerStyle="paneSplitter" vertical="YES" translatesAutoresizingMaskIntoConstraints="NO" id="OgO-Qu-oJA">
<rect key="frame" x="0.0" y="21" width="1024" height="747"/>
<subviews>
<customView id="jpo-0u-yWF">
<rect key="frame" x="0.0" y="0.0" width="509" height="747"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<scrollView horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jiy-7p-SlJ" userLabel="Bordered Scroll View - Eidos Text View">
<rect key="frame" x="-1" y="-1" width="511" height="722"/>
<clipView key="contentView" id="lvd-Kf-Kub">
<rect key="frame" x="1" y="1" width="494" height="720"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textView importsGraphics="NO" richText="NO" findStyle="bar" allowsUndo="YES" id="g30-Kl-eb2" userLabel="Eidos Text View" customClass="EidosTextView">
<rect key="frame" x="0.0" y="0.0" width="494" height="720"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<size key="minSize" width="494" height="720"/>
<size key="maxSize" width="511" height="10000000"/>
<color key="insertionPointColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<connections>
<outlet property="delegate" destination="Oju-rn-RJg" id="dx7-li-RZ7"/>
</connections>
</textView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="YES" id="2ZQ-St-go0">
<rect key="frame" x="-100" y="-100" width="87" height="18"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="gcg-FA-r6d">
<rect key="frame" x="495" y="1" width="15" height="720"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rnZ-Mh-Tla">
<rect key="frame" x="100" y="725" width="44" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Eidos:" id="76g-uR-h73">
<font key="font" metaFont="systemBold"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button toolTip="check script syntax" translatesAutoresizingMaskIntoConstraints="NO" id="amy-dn-iKo" userLabel="Check Script Button">
<rect key="frame" x="4" y="723" width="20" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="20" id="3an-II-wZO"/>
<constraint firstAttribute="height" constant="22" id="uxJ-PS-NXl"/>
</constraints>
<buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="check" imagePosition="overlaps" alignment="center" alternateImage="check_H" state="on" imageScaling="proportionallyDown" inset="2" id="U0A-ch-QMD">
<behavior key="behavior" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="checkScript:" target="Oju-rn-RJg" id="e5U-vL-Zwb"/>
<binding destination="Oju-rn-RJg" name="enabled" keyPath="interfaceEnabled" id="hjH-3M-ZLi"/>
</connections>
</button>
<button toolTip="Eidos scripting help" translatesAutoresizingMaskIntoConstraints="NO" id="VKv-8h-11O" userLabel="Show Script Help Button">
<rect key="frame" x="50" y="723" width="20" height="22"/>
<constraints>
<constraint firstAttribute="height" constant="22" id="Jfh-eS-JIk"/>
<constraint firstAttribute="width" constant="20" id="LK3-eV-s44"/>
</constraints>
<buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="syntax_help" imagePosition="overlaps" alignment="center" alternateImage="syntax_help_H" state="on" imageScaling="proportionallyDown" inset="2" id="Prc-Ou-8n9">
<behavior key="behavior" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="showScriptHelp:" target="Oju-rn-RJg" id="zGL-JW-RJ5"/>
</connections>
</button>
<button toolTip="execute selection" translatesAutoresizingMaskIntoConstraints="NO" id="W1d-Ym-5da" userLabel="Execute Selection Button">
<rect key="frame" x="461" y="723" width="20" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="20" id="ITg-vv-RXo"/>
<constraint firstAttribute="height" constant="22" id="WQ1-PJ-kWJ"/>
</constraints>
<buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="execute_selection" imagePosition="overlaps" alignment="center" alternateImage="execute_selection_H" state="on" imageScaling="proportionallyDown" inset="2" id="sMe-l0-1zl">
<behavior key="behavior" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="executeSelection:" target="Oju-rn-RJg" id="D5M-Ws-oTD"/>
<binding destination="Oju-rn-RJg" name="enabled" keyPath="interfaceEnabled" id="nql-q0-njy"/>
</connections>
</button>
<button toolTip="execute full script" translatesAutoresizingMaskIntoConstraints="NO" id="yTp-UR-uIs" userLabel="Execute All Button">
<rect key="frame" x="484" y="723" width="20" height="22"/>
<constraints>
<constraint firstAttribute="height" constant="22" id="Lmg-Mh-ixY"/>
<constraint firstAttribute="width" constant="20" id="bTI-Jb-10A"/>
</constraints>
<buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="execute_script" imagePosition="overlaps" alignment="center" alternateImage="execute_script_H" state="on" imageScaling="proportionallyDown" inset="2" id="Plf-Gr-RsW">
<behavior key="behavior" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="executeAll:" target="Oju-rn-RJg" id="WUD-LX-wuw"/>
<binding destination="Oju-rn-RJg" name="enabled" keyPath="interfaceEnabled" id="XOs-f5-IAU"/>
</connections>
</button>
<button toolTip="show/hide variable browser" translatesAutoresizingMaskIntoConstraints="NO" id="mJ2-l4-FOc" userLabel="Variable Browser Button">
<rect key="frame" x="73" y="723" width="20" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="20" id="383-La-boA"/>
<constraint firstAttribute="height" constant="22" id="gQB-QY-zb8"/>
</constraints>
<buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="show_browser" imagePosition="overlaps" alignment="center" alternateImage="show_browser_H" imageScaling="proportionallyDown" inset="2" id="UAT-l6-bUr">
<behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="toggleBrowserVisibility:" target="TRR-E4-jMc" id="OeH-bG-5cJ"/>
</connections>
</button>
<button toolTip="prettyprint script" translatesAutoresizingMaskIntoConstraints="NO" id="BWk-qv-CwE" userLabel="Prettyprint Script Button">
<rect key="frame" x="27" y="723" width="20" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="20" id="s1k-CW-lnN"/>
<constraint firstAttribute="height" constant="22" id="xDu-lO-8Mn"/>
</constraints>
<buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="prettyprint" imagePosition="overlaps" alignment="center" alternateImage="prettyprint_H" state="on" imageScaling="proportionallyDown" inset="2" id="MQa-8V-iyM">
<behavior key="behavior" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="prettyprintScript:" target="Oju-rn-RJg" id="BfZ-wF-F3E"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstItem="mJ2-l4-FOc" firstAttribute="bottom" secondItem="VKv-8h-11O" secondAttribute="bottom" id="3Yl-TY-Hm4"/>
<constraint firstItem="W1d-Ym-5da" firstAttribute="bottom" secondItem="VKv-8h-11O" secondAttribute="bottom" id="6VP-RB-FQ3"/>
<constraint firstAttribute="trailing" secondItem="jiy-7p-SlJ" secondAttribute="trailing" constant="-1" id="7Ec-8S-0iR"/>
<constraint firstAttribute="trailing" secondItem="yTp-UR-uIs" secondAttribute="trailing" constant="5" id="Akv-z6-RM5"/>
<constraint firstItem="VKv-8h-11O" firstAttribute="leading" secondItem="BWk-qv-CwE" secondAttribute="trailing" constant="3" id="CqY-tt-Gic"/>
<constraint firstItem="BWk-qv-CwE" firstAttribute="leading" secondItem="amy-dn-iKo" secondAttribute="trailing" constant="3" id="Hs5-Yf-ZAs"/>
<constraint firstItem="jiy-7p-SlJ" firstAttribute="top" secondItem="jpo-0u-yWF" secondAttribute="top" constant="26" id="I3K-Xy-WtF"/>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="240" id="JrP-yY-HG3"/>
<constraint firstItem="mJ2-l4-FOc" firstAttribute="leading" secondItem="VKv-8h-11O" secondAttribute="trailing" constant="3" id="KOc-pc-r5c"/>
<constraint firstItem="jiy-7p-SlJ" firstAttribute="leading" secondItem="jpo-0u-yWF" secondAttribute="leading" constant="-1" id="X77-W5-84M"/>
<constraint firstItem="rnZ-Mh-Tla" firstAttribute="top" secondItem="jpo-0u-yWF" secondAttribute="top" constant="5" id="Z8f-q2-M2Z"/>
<constraint firstItem="BWk-qv-CwE" firstAttribute="bottom" secondItem="amy-dn-iKo" secondAttribute="bottom" id="fg1-xK-15q"/>
<constraint firstItem="W1d-Ym-5da" firstAttribute="bottom" secondItem="yTp-UR-uIs" secondAttribute="bottom" id="j6J-aS-BSL"/>
<constraint firstItem="rnZ-Mh-Tla" firstAttribute="leading" secondItem="mJ2-l4-FOc" secondAttribute="trailing" constant="9" id="jWR-ck-dDy"/>
<constraint firstItem="amy-dn-iKo" firstAttribute="top" secondItem="jpo-0u-yWF" secondAttribute="top" constant="2" id="jte-EU-DWo"/>
<constraint firstItem="yTp-UR-uIs" firstAttribute="leading" secondItem="W1d-Ym-5da" secondAttribute="trailing" constant="3" id="ksC-pj-3KH"/>
<constraint firstAttribute="bottom" secondItem="jiy-7p-SlJ" secondAttribute="bottom" constant="-1" id="mmg-h7-Qwn"/>
<constraint firstItem="BWk-qv-CwE" firstAttribute="bottom" secondItem="VKv-8h-11O" secondAttribute="bottom" id="to7-lC-TcY"/>
<constraint firstItem="amy-dn-iKo" firstAttribute="leading" secondItem="jpo-0u-yWF" secondAttribute="leading" constant="4" id="xNq-Qu-Dqs"/>
</constraints>
</customView>
<customView id="jtP-eN-5EP">
<rect key="frame" x="519" y="0.0" width="505" height="747"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<scrollView horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bzX-Ky-sCf">
<rect key="frame" x="-1" y="-1" width="507" height="722"/>
<clipView key="contentView" id="JJ3-E5-rlu">
<rect key="frame" x="1" y="1" width="490" height="720"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textView importsGraphics="NO" richText="NO" findStyle="bar" allowsUndo="YES" allowsNonContiguousLayout="YES" id="hNz-Jr-UfL" customClass="EidosConsoleTextView">
<rect key="frame" x="0.0" y="0.0" width="490" height="720"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<size key="minSize" width="490" height="720"/>
<size key="maxSize" width="507" height="10000000"/>
<color key="insertionPointColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<connections>
<binding destination="Oju-rn-RJg" name="editable" keyPath="interfaceEnabled" id="LC7-Wc-q8E"/>
<outlet property="delegate" destination="Oju-rn-RJg" id="kGW-mp-3ID"/>
</connections>
</textView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="YES" id="MVN-jY-ZKp">
<rect key="frame" x="-100" y="-100" width="87" height="18"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="ZeK-tm-lkG">
<rect key="frame" x="491" y="1" width="15" height="720"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cRw-Sd-hbx">
<rect key="frame" x="31" y="725" width="61" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Console:" id="ktz-TJ-uHg">
<font key="font" metaFont="systemBold"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button toolTip="clear console" translatesAutoresizingMaskIntoConstraints="NO" id="Ei6-h4-XuP" userLabel="Clear Output Button">
<rect key="frame" x="4" y="723" width="20" height="22"/>
<constraints>
<constraint firstAttribute="height" constant="22" id="0CS-O6-ZiP"/>
<constraint firstAttribute="width" constant="20" id="jXE-v8-Tj2"/>
</constraints>
<buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="delete" imagePosition="overlaps" alignment="center" alternateImage="delete_H" state="on" imageScaling="proportionallyDown" inset="2" id="1E9-ch-Ks0">
<behavior key="behavior" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="clearOutput:" target="Oju-rn-RJg" id="sJV-Fb-cn0"/>
</connections>
</button>
<button toolTip="show tokens" translatesAutoresizingMaskIntoConstraints="NO" id="urT-CI-yd4" userLabel="Show Tokens Button">
<rect key="frame" x="434" y="723" width="20" height="22"/>
<constraints>
<constraint firstAttribute="height" constant="22" id="Op1-Yn-asL"/>
<constraint firstAttribute="width" constant="20" id="oJ2-j1-BHT"/>
</constraints>
<buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="show_tokens" imagePosition="overlaps" alignment="center" alternateImage="show_tokens_H" imageScaling="proportionallyDown" inset="2" id="sBQ-y3-MVt">
<behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<binding destination="LR2-bE-pWf" name="value" keyPath="values.EidosShowTokens" id="ZM2-vA-yDl"/>
</connections>
</button>
<button toolTip="show parse tree" translatesAutoresizingMaskIntoConstraints="NO" id="cEY-2Y-8z7" userLabel="Show AST Button">
<rect key="frame" x="457" y="723" width="20" height="22"/>
<constraints>
<constraint firstAttribute="height" constant="22" id="r3C-ZO-Yf6"/>
<constraint firstAttribute="width" constant="20" id="xUD-qe-CJY"/>
</constraints>
<buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="show_parse" imagePosition="overlaps" alignment="center" alternateImage="show_parse_H" imageScaling="proportionallyDown" inset="2" id="7vC-Ab-MFu">
<behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<binding destination="LR2-bE-pWf" name="value" keyPath="values.EidosShowParse" id="W8J-Ko-z7R"/>
</connections>
</button>
<button toolTip="show execution" translatesAutoresizingMaskIntoConstraints="NO" id="P85-4x-4pc" userLabel="Show Execution Button">
<rect key="frame" x="480" y="723" width="20" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="20" id="Prl-BH-SZw"/>
<constraint firstAttribute="height" constant="22" id="SCG-uE-42c"/>
</constraints>
<buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="show_execution" imagePosition="overlaps" alignment="center" alternateImage="show_execution_H" imageScaling="proportionallyDown" inset="2" id="WD2-8B-ncG">
<behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<binding destination="LR2-bE-pWf" name="value" keyPath="values.EidosShowExecution" id="w1y-IU-Wo5"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstItem="cEY-2Y-8z7" firstAttribute="bottom" secondItem="P85-4x-4pc" secondAttribute="bottom" id="D6c-wg-ngh"/>
<constraint firstItem="cEY-2Y-8z7" firstAttribute="leading" secondItem="urT-CI-yd4" secondAttribute="trailing" constant="3" id="LRo-dB-XMw"/>
<constraint firstItem="cRw-Sd-hbx" firstAttribute="leading" secondItem="Ei6-h4-XuP" secondAttribute="trailing" constant="9" id="Nnj-zC-ecJ"/>
<constraint firstAttribute="trailing" secondItem="P85-4x-4pc" secondAttribute="trailing" constant="5" id="Voh-PT-9jv"/>
<constraint firstItem="Ei6-h4-XuP" firstAttribute="leading" secondItem="jtP-eN-5EP" secondAttribute="leading" constant="4" id="bP2-VB-3xI"/>
<constraint firstItem="bzX-Ky-sCf" firstAttribute="top" secondItem="jtP-eN-5EP" secondAttribute="top" constant="26" id="cnU-lf-DNj"/>
<constraint firstItem="Ei6-h4-XuP" firstAttribute="bottom" secondItem="urT-CI-yd4" secondAttribute="bottom" id="cug-PI-EgA"/>
<constraint firstAttribute="trailing" secondItem="bzX-Ky-sCf" secondAttribute="trailing" constant="-1" id="ewS-fL-hYK"/>
<constraint firstAttribute="bottom" secondItem="bzX-Ky-sCf" secondAttribute="bottom" constant="-1" id="nBp-f6-4Pu"/>
<constraint firstItem="urT-CI-yd4" firstAttribute="bottom" secondItem="cEY-2Y-8z7" secondAttribute="bottom" id="o7b-dN-oGF"/>
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="240" id="pHx-Wz-5wY"/>
<constraint firstItem="P85-4x-4pc" firstAttribute="leading" secondItem="cEY-2Y-8z7" secondAttribute="trailing" constant="3" id="pdT-Jt-UT6"/>
<constraint firstItem="bzX-Ky-sCf" firstAttribute="leading" secondItem="jtP-eN-5EP" secondAttribute="leading" constant="-1" id="q9Y-1h-EuG"/>
<constraint firstItem="Ei6-h4-XuP" firstAttribute="top" secondItem="jtP-eN-5EP" secondAttribute="top" constant="2" id="y45-9V-Tzy"/>
</constraints>
</customView>
</subviews>
<constraints>
<constraint firstItem="cRw-Sd-hbx" firstAttribute="baseline" secondItem="rnZ-Mh-Tla" secondAttribute="baseline" id="EjO-Wt-C4y"/>
</constraints>
<holdingPriorities>
<real value="250"/>
<real value="250"/>
</holdingPriorities>
<connections>
<outlet property="delegate" destination="Oju-rn-RJg" id="Xd8-B9-hAA"/>
</connections>
</splitView>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="150" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kY6-al-Llg">
<rect key="frame" x="-1" y="-1" width="1026" height="22"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" refusesFirstResponder="YES" allowsUndo="NO" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left" drawsBackground="YES" usesSingleLineMode="YES" id="zbW-4w-iUT">
<font key="font" size="11" name="Menlo-Regular"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="kY6-al-Llg" secondAttribute="trailing" constant="-1" id="AkE-Jj-3Sg"/>
<constraint firstItem="OgO-Qu-oJA" firstAttribute="top" secondItem="P8Z-tg-7Uc" secondAttribute="top" id="B2z-Dm-Aak"/>
<constraint firstAttribute="trailing" secondItem="OgO-Qu-oJA" secondAttribute="trailing" id="Cmc-ke-CJZ"/>
<constraint firstItem="kY6-al-Llg" firstAttribute="top" secondItem="OgO-Qu-oJA" secondAttribute="bottom" id="EGD-ym-hwS"/>
<constraint firstAttribute="bottom" secondItem="kY6-al-Llg" secondAttribute="bottom" constant="-1" id="Yq9-xn-Xpf"/>
<constraint firstItem="OgO-Qu-oJA" firstAttribute="leading" secondItem="P8Z-tg-7Uc" secondAttribute="leading" id="g6f-12-OWu"/>
<constraint firstItem="kY6-al-Llg" firstAttribute="leading" secondItem="P8Z-tg-7Uc" secondAttribute="leading" constant="-1" id="oAn-a3-pd5"/>
</constraints>
</view>
<connections>
<outlet property="delegate" destination="Oju-rn-RJg" id="IPT-YX-WCW"/>
<outlet property="initialFirstResponder" destination="hNz-Jr-UfL" id="VYj-Y2-E15"/>
</connections>
<point key="canvasLocation" x="1547" y="1065"/>
</window>
<userDefaultsController representsSharedInstance="YES" id="LR2-bE-pWf"/>
</objects>
<resources>
<image name="check" width="137" height="137"/>
<image name="check_H" width="137" height="137"/>
<image name="delete" width="137" height="137"/>
<image name="delete_H" width="137" height="137"/>
<image name="execute_script" width="137" height="137"/>
<image name="execute_script_H" width="137" height="137"/>
<image name="execute_selection" width="137" height="137"/>
<image name="execute_selection_H" width="137" height="137"/>
<image name="prettyprint" width="137" height="137"/>
<image name="prettyprint_H" width="137" height="137"/>
<image name="show_browser" width="137" height="137"/>
<image name="show_browser_H" width="137" height="137"/>
<image name="show_execution" width="137" height="137"/>
<image name="show_execution_H" width="137" height="137"/>
<image name="show_parse" width="137" height="137"/>
<image name="show_parse_H" width="137" height="137"/>
<image name="show_tokens" width="137" height="137"/>
<image name="show_tokens_H" width="137" height="137"/>
<image name="syntax_help" width="137" height="137"/>
<image name="syntax_help_H" width="137" height="137"/>
</resources>
</document>
================================================
FILE: EidosScribe/Base.lproj/EidosHelpWindow.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12118" systemVersion="16G1114" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12118"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="EidosHelpController">
<connections>
<outlet property="descriptionTextView" destination="epD-FJ-chU" id="Jdq-D0-856"/>
<outlet property="helpWindow" destination="QvC-M9-y7g" id="SL9-Lx-Rjt"/>
<outlet property="searchField" destination="48u-tK-QYT" id="kme-3a-V2h"/>
<outlet property="topicOutlineView" destination="yPI-dd-eV7" id="vDU-32-S1i"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<window title="Scripting Help" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" oneShot="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="Scripting Help" animationBehavior="default" id="QvC-M9-y7g">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="240" width="535" height="437"/>
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1057"/>
<value key="minSize" type="size" width="470" height="200"/>
<view key="contentView" id="EiT-Mj-1SZ">
<rect key="frame" x="0.0" y="0.0" width="535" height="437"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<searchField wantsLayer="YES" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="48u-tK-QYT">
<rect key="frame" x="5" y="410" width="525" height="22"/>
<searchFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="bezel" usesSingleLineMode="YES" bezelStyle="round" sendsWholeSearchString="YES" id="NYP-eg-QGP">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</searchFieldCell>
<connections>
<action selector="searchFieldChanged:" target="-2" id="fey-tJ-m87"/>
<outlet property="searchMenuTemplate" destination="ceq-BX-yvq" id="kdb-E5-ycC"/>
</connections>
</searchField>
<scrollView autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3b8-ab-BQk">
<rect key="frame" x="5" y="5" width="280" height="400"/>
<clipView key="contentView" id="rzI-9X-67k">
<rect key="frame" x="1" y="1" width="278" height="398"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" columnResizing="NO" autosaveColumns="NO" indentationPerLevel="13" outlineTableColumn="KFM-B1-pe4" id="yPI-dd-eV7" customClass="EidosHelpOutlineView">
<rect key="frame" x="0.0" y="0.0" width="278" height="398"/>
<autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
<tableColumns>
<tableColumn editable="NO" width="275" minWidth="40" maxWidth="1000" id="KFM-B1-pe4">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
</tableHeaderCell>
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="Ls2-xz-2Zq">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
</tableColumn>
</tableColumns>
<connections>
<outlet property="dataSource" destination="-2" id="chc-b3-IWD"/>
<outlet property="delegate" destination="-2" id="1nF-eU-uK4"/>
</connections>
</outlineView>
</subviews>
</clipView>
<constraints>
<constraint firstAttribute="width" constant="280" id="c3J-bk-dBM"/>
</constraints>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="MAw-EU-Gqy">
<rect key="frame" x="1" y="119" width="223" height="15"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="Ltl-g7-QUD">
<rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
<scrollView autohidesScrollers="YES" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sOA-J4-ETm">
<rect key="frame" x="290" y="5" width="240" height="400"/>
<clipView key="contentView" id="xXL-p2-gUm" customClass="EidosLockingClipView">
<rect key="frame" x="1" y="1" width="238" height="398"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textView editable="NO" importsGraphics="NO" findStyle="bar" id="epD-FJ-chU">
<rect key="frame" x="0.0" y="0.0" width="238" height="398"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<size key="minSize" width="238" height="398"/>
<size key="maxSize" width="463" height="10000000"/>
<color key="insertionPointColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
</textView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="YES" id="1IA-4f-s3z">
<rect key="frame" x="-100" y="-100" width="87" height="18"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="xy9-Nz-80K">
<rect key="frame" x="224" y="1" width="15" height="133"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
</subviews>
<constraints>
<constraint firstItem="3b8-ab-BQk" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="5" id="24y-tA-Bja"/>
<constraint firstItem="48u-tK-QYT" firstAttribute="leading" secondItem="EiT-Mj-1SZ" secondAttribute="leading" constant="5" id="5wZ-yY-XfS"/>
<constraint firstItem="sOA-J4-ETm" firstAttribute="top" secondItem="48u-tK-QYT" secondAttribute="bottom" constant="5" id="5yf-tx-PCh"/>
<constraint firstItem="48u-tK-QYT" firstAttribute="top" secondItem="EiT-Mj-1SZ" secondAttribute="top" constant="5" id="IZh-pF-YaK"/>
<constraint firstAttribute="bottom" secondItem="3b8-ab-BQk" secondAttribute="bottom" constant="5" id="LLa-EK-5OH"/>
<constraint firstItem="3b8-ab-BQk" firstAttribute="top" secondItem="48u-tK-QYT" secondAttribute="bottom" constant="5" id="MCp-Sb-e4S"/>
<constraint firstItem="sOA-J4-ETm" firstAttribute="leading" secondItem="3b8-ab-BQk" secondAttribute="trailing" constant="5" id="Utv-n2-kg2"/>
<constraint firstAttribute="trailing" secondItem="sOA-J4-ETm" secondAttribute="trailing" constant="5" id="dZ1-rQ-VZP"/>
<constraint firstAttribute="bottom" secondItem="sOA-J4-ETm" secondAttribute="bottom" constant="5" id="hIE-5J-s42"/>
<constraint firstAttribute="trailing" secondItem="48u-tK-QYT" secondAttribute="trailing" constant="5" id="mVp-tB-tYb"/>
</constraints>
</view>
<point key="canvasLocation" x="1168.5" y="833.5"/>
</window>
<menu id="ceq-BX-yvq">
<items>
<menuItem title="Title" state="on" id="eVK-eE-BOo">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="searchTypeChanged:" target="-2" id="XrO-YK-Xs6"/>
</connections>
</menuItem>
<menuItem title="Content" tag="1" id="jRV-MC-W2J">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="searchTypeChanged:" target="-2" id="lwi-MT-nOr"/>
</connections>
</menuItem>
</items>
<point key="canvasLocation" x="780.5" y="1326.5"/>
</menu>
</objects>
</document>
================================================
FILE: EidosScribe/Base.lproj/MainMenu.xib
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12118" systemVersion="16G29" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12118"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
<connections>
<outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<customObject id="Voe-Tx-rLC" customClass="EidosAppDelegate"/>
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
<menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
<items>
<menuItem title="EidosScribe" id="1Xt-HY-uBw">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="EidosScribe" systemMenu="apple" id="uQy-DD-JDr">
<items>
<menuItem title="About EidosScribe" id="5kV-Vb-QxS">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="showAboutWindow:" target="Voe-Tx-rLC" id="taZ-Y1-5v7"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
<menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
<menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
<menuItem title="Services" id="NMo-om-nkz">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/>
</menuItem>
<menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
<menuItem title="Hide EidosScribe" keyEquivalent="h" id="Olw-nP-bQN">
<connections>
<action selector="hide:" target="-1" id="PnN-Uc-m68"/>
</connections>
</menuItem>
<menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="hideOtherApplications:" target="-1" id="VT4-aY-XCT"/>
</connections>
</menuItem>
<menuItem title="Show All" id="Kd2-mp-pUS">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="unhideAllApplications:" target="-1" id="Dhg-Le-xox"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
<menuItem title="Quit EidosScribe" keyEquivalent="q" id="4sb-4s-VLi">
<connections>
<action selector="terminate:" target="-1" id="Te7-pn-YzF"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="File" id="dMs-cI-mzQ">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="File" id="bib-Uj-vzu">
<items>
<menuItem title="New" keyEquivalent="n" id="Was-JA-tGl">
<connections>
<action selector="newDocument:" target="-1" id="4Si-XN-c54"/>
</connections>
</menuItem>
<menuItem title="Open…" keyEquivalent="o" id="IAo-SY-fd9">
<connections>
<action selector="openDocument:" target="-1" id="bVn-NM-KNZ"/>
</connections>
</menuItem>
<menuItem title="Open Recent" id="tXI-mr-wws">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Open Recent" systemMenu="recentDocuments" id="oas-Oc-fiZ">
<items>
<menuItem title="Clear Menu" id="vNY-rz-j42">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="clearRecentDocuments:" target="-1" id="Daa-9d-B3U"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem isSeparatorItem="YES" id="m54-Is-iLE"/>
<menuItem title="Close" keyEquivalent="w" id="DVo-aG-piG">
<connections>
<action selector="performClose:" target="-1" id="HmO-Ls-i7Q"/>
</connections>
</menuItem>
<menuItem title="Save…" keyEquivalent="s" id="pxx-59-PXV">
<connections>
<action selector="saveDocument:" target="-1" id="teZ-XB-qJY"/>
</connections>
</menuItem>
<menuItem title="Save As…" keyEquivalent="S" id="Bw7-FT-i3A">
<connections>
<action selector="saveDocumentAs:" target="-1" id="mDf-zr-I0C"/>
</connections>
</menuItem>
<menuItem title="Revert to Saved" id="KaW-ft-85H">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="revertDocumentToSaved:" target="-1" id="iJ3-Pv-kwq"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="aJh-i4-bef"/>
<menuItem title="Page Setup…" keyEquivalent="P" id="qIS-W8-SiK">
<modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
<connections>
<action selector="runPageLayout:" target="-1" id="Din-rz-gC5"/>
</connections>
</menuItem>
<menuItem title="Print…" keyEquivalent="p" id="aTl-1u-JFS">
<connections>
<action selector="print:" target="-1" id="qaZ-4w-aoO"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Edit" id="5QF-Oa-p0T">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Edit" id="W48-6f-4Dl">
<items>
<menuItem title="Undo" keyEquivalent="z" id="dRJ-4n-Yzg">
<connections>
<action selector="undo:" target="-1" id="M6e-cu-g7V"/>
</connections>
</menuItem>
<menuItem title="Redo" keyEquivalent="Z" id="6dh-zS-Vam">
<connections>
<action selector="redo:" target="-1" id="oIA-Rs-6OD"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="WRV-NI-Exz"/>
<menuItem title="Cut" keyEquivalent="x" id="uRl-iY-unG">
<connections>
<action selector="cut:" target="-1" id="YJe-68-I9s"/>
</connections>
</menuItem>
<menuItem title="Copy" keyEquivalent="c" id="x3v-GG-iWU">
<connections>
<action selector="copy:" target="-1" id="G1f-GL-Joy"/>
</connections>
</menuItem>
<menuItem title="Copy As Paragraph" alternate="YES" keyEquivalent="c" id="uOX-3J-tcu">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="copyAsParagraph:" target="-1" id="1rs-pZ-xWU"/>
</connections>
</menuItem>
<menuItem title="Paste" keyEquivalent="v" id="gVA-U4-sdL">
<connections>
<action selector="paste:" target="-1" id="UvS-8e-Qdg"/>
</connections>
</menuItem>
<menuItem title="Delete" id="pa3-QI-u2k">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="delete:" target="-1" id="0Mk-Ml-PaM"/>
</connections>
</menuItem>
<menuItem title="Select All" keyEquivalent="a" id="Ruw-6m-B2m">
<connections>
<action selector="selectAll:" target="-1" id="VNm-Mi-diN"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="uyl-h8-XO2"/>
<menuItem title="Find" id="4EN-yA-p0u">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Find" id="1b7-l0-nxx">
<items>
<menuItem title="Find…" tag="1" keyEquivalent="f" id="Xz5-n4-O0W">
<connections>
<action selector="performFindPanelAction:" target="-1" id="cD7-Qs-BN4"/>
</connections>
</menuItem>
<menuItem title="Find and Replace…" tag="12" keyEquivalent="f" id="YEy-JH-Tfz">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="performFindPanelAction:" target="-1" id="WD3-Gg-5AJ"/>
</connections>
</menuItem>
<menuItem title="Find Next" tag="2" keyEquivalent="g" id="q09-fT-Sye">
<connections>
<action selector="performFindPanelAction:" target="-1" id="NDo-RZ-v9R"/>
</connections>
</menuItem>
<menuItem title="Find Previous" tag="3" keyEquivalent="G" id="OwM-mh-QMV">
<connections>
<action selector="performFindPanelAction:" target="-1" id="HOh-sY-3ay"/>
</connections>
</menuItem>
<menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="buJ-ug-pKt">
<connections>
<action selector="performFindPanelAction:" target="-1" id="U76-nv-p5D"/>
</connections>
</menuItem>
<menuItem title="Jump to Selection" keyEquivalent="j" id="S0p-oC-mLd">
<connections>
<action selector="centerSelectionInVisibleArea:" target="-1" id="IOG-6D-g5B"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Transformations" id="2oI-Rn-ZJC">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Transformations" id="c8a-y6-VQd">
<items>
<menuItem title="Make Upper Case" id="vmV-6d-7jI">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="uppercaseWord:" target="-1" id="sPh-Tk-edu"/>
</connections>
</menuItem>
<menuItem title="Make Lower Case" id="d9M-CD-aMd">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="lowercaseWord:" target="-1" id="iUZ-b5-hil"/>
</connections>
</menuItem>
<menuItem title="Capitalize" id="UEZ-Bs-lqG">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="capitalizeWord:" target="-1" id="26H-TL-nsh"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem isSeparatorItem="YES" id="Ag7-ud-N8J"/>
<menuItem title="Shift Left" keyEquivalent="[" id="7fU-LO-jP2">
<connections>
<action selector="shiftSelectionLeft:" target="-1" id="kmf-It-iLJ"/>
</connections>
</menuItem>
<menuItem title="Shift Right" keyEquivalent="]" id="yAi-3e-02u">
<connections>
<action selector="shiftSelectionRight:" target="-1" id="4jm-Ja-yAY"/>
</connections>
</menuItem>
<menuItem title="Comment / Uncomment" keyEquivalent="/" id="N0Z-N1-zHP">
<connections>
<action selector="commentUncommentSelection:" target="-1" id="jBS-dk-5Yh"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Script" id="H8h-7b-M4v">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Script" id="HyV-fh-RgO">
<items>
<menuItem title="Check Script" keyEquivalent="=" id="oBK-h1-E5p">
<connections>
<action selector="checkScript:" target="-1" id="fIe-hN-GV1"/>
</connections>
</menuItem>
<menuItem title="Prettyprint Script" keyEquivalent="=" id="M4t-xf-YMI">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="prettyprintScript:" target="-1" id="Cl2-28-Aba"/>
</connections>
</menuItem>
<menuItem title="Show Script Help" id="L5L-eY-gNf">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="showScriptHelp:" target="-1" id="67M-ye-fxJ"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="Rfr-hn-vm4"/>
<menuItem title="Show Variable Browser" keyEquivalent="b" id="bJP-6x-Daf">
<connections>
<action selector="toggleBrowserVisibility:" target="-1" id="bXj-SN-Sy7"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="dWD-BF-u08"/>
<menuItem title="Clear Output" keyEquivalent="k" id="8MA-dW-zyg">
<connections>
<action selector="clearOutput:" target="-1" id="qed-2e-cTt"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="QuT-O5-C72"/>
<menuItem title="Execute Selection" id="00O-MD-1Dr">
<string key="keyEquivalent" base64-UTF8="YES">
DQ
</string>
<connections>
<action selector="executeSelection:" target="-1" id="uCs-T3-UxN"/>
</connections>
</menuItem>
<menuItem title="Execute All" id="53Q-z8-qs4">
<string key="keyEquivalent" base64-UTF8="YES">
DQ
</string>
<modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
<connections>
<action selector="executeAll:" target="-1" id="APe-d5-Lrd"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="Uxv-x6-dpe"/>
<menuItem title="Enter Full Screen" keyEquivalent="f" id="epM-So-x5W">
<modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
<connections>
<action selector="toggleFullScreen:" target="-1" id="dWG-0V-0LE"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Window" id="aUF-d1-5bR">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
<items>
<menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
<connections>
<action selector="performMiniaturize:" target="-1" id="VwT-WD-YPe"/>
</connections>
</menuItem>
<menuItem title="Zoom" id="R4o-n2-Eq4">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="performZoom:" target="-1" id="DIl-cC-cCs"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
<menuItem title="Bring All to Front" id="LE2-aR-0XJ">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="arrangeInFront:" target="-1" id="DRN-fu-gQh"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Help" id="wpr-3q-Mcd">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Help" systemMenu="help" id="F2S-fz-NVQ">
<items>
<menuItem title="EidosScribe Help" keyEquivalent="?" id="FKE-Sm-Kum">
<connections>
<action selector="showHelp:" target="Voe-Tx-rLC" id="x5Z-K0-5y8"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="02i-M1-lDI"/>
<menuItem title="Send Feedback on Eidos" id="Rb2-Li-Na8">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="sendFeedback:" target="Voe-Tx-rLC" id="ydd-9q-9Dh"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="fIh-ql-Nxy"/>
<menuItem title="Eidos Home Page" id="chy-2l-Hqa">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="showEidosHomePage:" target="Voe-Tx-rLC" id="6nZ-1y-OgL"/>
</connections>
</menuItem>
<menuItem title="About the Messer Lab" id="zdG-NR-pNh">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="showMesserLab:" target="Voe-Tx-rLC" id="6aq-iQ-YKj"/>
</connections>
</menuItem>
<menuItem title="About Ben Haller" id="yhH-YO-dTk">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="showBenHaller:" target="Voe-Tx-rLC" id="7q5-Xb-pG8"/>
</connections>
</menuItem>
<menuItem title="About Stick Software" id="Bk3-8O-YRs">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="showStickSoftware:" target="Voe-Tx-rLC" id="c54-Y3-5BK"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
</items>
</menu>
</objects>
</document>
================================================
FILE: EidosScribe/EidosAppDelegate.h
================================================
//
// EidosAppDelegate.h
// EidosScribe
//
// Created by Ben Haller on 4/7/15.
// Copyright (c) 2015-2025 Benjamin C. Haller. All rights reserved.
// A product of the Messer Lab, http://messerlab.org/slim/
//
// This file is part of Eidos.
//
// Eidos is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
//
// Eidos is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with Eidos. If not, see <http://www.gnu.org/licenses/>.
#import <Cocoa/Cocoa.h>
@class EidosConsoleWindowController;
/*
EidosAppDelegate is an NSApplication delegate for EidosScribe that provides some behavior for menu items and such.
If you make your own Context app, you are unlikely to want to reuse this class, although it might illustrate
how to set up an EidosConsoleWindowController.
*/
@interface EidosAppDelegate : NSObject
{
}
// An outlet for the console controller, associated with EidosConsoleWindow.xib
@property (nonatomic, retain) IBOutlet EidosConsoleWindowController *consoleController;
// Actions for menu commands in MainMenu.xib
- (IBAction)showAboutWindow:(id)sender;
- (IBAction)sendFeedback:(id)sender;
- (IBAction)showMesserLab:(id)sender;
- (IBAction)showBenHaller:(id)sender;
- (IBAction)showStickSoftware:(id)sender;
@end
================================================
FILE: EidosScribe/EidosAppDelegate.mm
================================================
//
// EidosAppDelegate.m
// EidosScribe
//
// Created by Ben Haller on 4/7/15.
// Copyright (c) 2015-2025 Benjamin C. Haller. All rights reserved.
// A product of the Messer Lab, http://messerlab.org/slim/
//
// This file is part of Eidos.
//
// Eidos is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
//
// Eidos is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with Eidos. If not, see <http://www.gnu.org/licenses/>.
#import "EidosAppDelegate.h"
#import "EidosTextView.h"
#import "EidosValueWrapper.h"
#import "EidosConsoleWindowController.h"
#import "EidosConsoleWindowControllerDelegate.h"
#import "EidosHelpController.h"
#import "EidosCocoaExtra.h"
#import "eidos_beep.h"
#include "eidos_globals.h"
#include "eidos_test.h"
#include <stdexcept>
@interface EidosAppDelegate () <NSApplicationDelegate, EidosConsoleWindowControllerDelegate>
{
// About window outlets associated with EidosAboutWindow.xib
IBOutlet NSWindow *aboutWindow;
IBOutlet NSTextField *aboutVersionTextField;
IBOutlet NSTextField *messerLabLineTextField;
IBOutlet NSTextField *benHallerLineTextField;
IBOutlet NSTextField *licenseTextField;
}
@end
@implementation EidosAppDelegate
- (void)dealloc
{
// Ask the console controller to forget us as its delegate, to avoid a stale pointer
[_consoleController setDelegate:nil];
[self setConsoleController:nil];
[super dealloc];
}
- (void)applicationWillFinishLaunching:(NSNotification *)aNotification
{
// Require light appearance, at least for now; supporting dark mode would require custom art etc.
if ([NSApp respondsToSelector:@selector(setAppearance:)])
[NSApp setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameAqua]];
// Install our custom beep handler
Eidos_Beep = &Eidos_Beep_MACOS;
// Warm up our back end before anything else happens
#ifdef _OPENMP
// Multithreading in EidosScribe is not for end user use; this is for testing/debugging only.
// We always use 4 threads; we don't want to hog the whole machine, just run with a couple threads.
// We pass false for active_threads to let the worker threads sleep, otherwise the CPU is pegged
// the whole time EidosScribe is running, even when sitting idle.
Eidos_WarmUpOpenMP(&std::cout, true, 4, false, /* default per-task thread counts */ "");
#endif
Eidos_WarmUp();
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Load our console window nib; we are set up as the delegate in the nib
[[NSBundle mainBundle] loadNibNamed:@"EidosConsoleWindow" owner:self topLevelObjects:NULL];
// Make the console window visible
[_consoleController showWindow];
// Show a status message
[_consoleController displayStartupMessage];
}
//
// Actions
//
#pragma mark -
#pragma mark Actions
- (IBAction)showAboutWindow:(id)sender
{
[[NSBundle mainBundle] loadNibNamed:@"EidosAboutWindow" owner:self topLevelObjects:NULL];
// The window is the top-level object in this nib. It will release itself when closed, so we will retain it on its behalf here.
// Note that the aboutWindow and aboutWebView outlets do not get zeroed out when the about window closes; but we only use them here.
// This is not very clean programming practice – just a quick and dirty hack – so don't emulate this code. :->
[aboutWindow retain];
// Set our version number string
NSString *bundleVersionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
NSString *versionString = [NSString stringWithFormat:@"version %@", bundleVersionString];
[aboutVersionTextField setStringValue:versionString];
// Fix up hyperlinks
[messerLabLineTextField eidosSetHyperlink:[NSURL URLWithString:@"http://messerlab.org/slim/"] onText:@"http://messerlab.org/slim/"];
[benHallerLineTextField eidosSetHyperlink:[NSURL URLWithString:@"http://benhaller.com/"] onText:@"http://benhaller.com/"];
[licenseTextField eidosSetHyperlink:[NSURL URLWithString:@"http://www.gnu.org/licenses/"] onText:@"http://www.gnu.org/licenses/"];
// Now that everything is set up, show the window
[aboutWindow makeKeyAndOrderFront:nil];
}
- (IBAction)sendFeedback:(id)sender
{
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"mailto:philipp.messer@gmail.com?subject=Eidos%20Feedback"]];
}
- (IBAction)showEidosHomePage:(id)sender
{
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://benhaller.com/eidos.html"]];
}
- (IBAction)showMesserLab:(id)sender
{
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://messerlab.org/"]];
}
- (IBAction)showBenHaller:(id)sender
{
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://www.benhaller.com/"]];
}
- (IBAction)showStickSoftware:(id)sender
{
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://www.sticksoftware.com/"]];
}
- (IBAction)showHelp:(id)sender
{
[[EidosHelpController sharedController] showWindow];
}
// Dummy actions; see validateMenuItem:
- (IBAction)toggleConsoleVisibility:(id)sender {}
- (IBAction)toggleBrowserVisibility:(id)sender {}
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem
{
SEL sel = [menuItem action];
// Handle validation for menu items that really belong to the console window. This provides a default validation
// for these menu items when no console window is receiving.
if (sel == @selector(toggleConsoleVisibility:))
{
[menuItem setTitle:@"Show Eidos Console"];
return NO;
}
if (sel == @selector(toggleBrowserVisibility:))
{
[menuItem setTitle:@"Show Variable Browser"];
return NO;
}
return YES;
}
//
// EidosConsoleWindowControllerDelegate methods
//
#pragma mark -
#pragma mark EidosConsoleWindowControllerDelegate
- (void)eidosConsoleWindowControllerAppendWelcomeMessageAddendum:(EidosConsoleWindowController *)eidosConsoleController
{
// EidosScribe runs the standard Eidos test suite on launch if the option key is down.
// You would probably not want to do this in your own Context.
if ([NSEvent modifierFlags] & NSEventModifierFlagOption)
RunEidosTests();
}
- (void)eidosConsoleWindowControllerConsoleWindowWillClose:(EidosConsoleWindowController *)eidosConsoleController
{
// EidosScribe quits when its console window is closed, but that
// behavior is not in any way required or expected.
NSApplication *app = [NSApplication sharedApplication];
[app terminate:nil];
}
@end
================================================
FILE: EidosScribe/EidosCocoaExtra.h
================================================
//
// EidosCocoaExtra.h
// SLiM
//
// Created by Ben Haller on 9/11/15.
// Copyright (c) 2015-2025 Benjamin C. Haller. All rights reserved.
// A product of the Messer Lab, http://messerlab.org/slim/
//
// This file is part of Eidos.
//
// Eidos is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
//
// Eidos is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with Eidos. If not, see <http://www.gnu.org/licenses/>.
#import <Cocoa/Cocoa.h>
#include <string>
class EidosCallSignature;
class EidosPropertySignature;
/*
Some Cocoa utility categories for working with Eidos. Note that this header uses Objective-C++, so it can only be imported by
Objective-C++ compilations (.mm files instead of .m files). The hope is that the use of Objective-C++ in EidosScribe headers
can be limited mostly to this file and a few others, so that reuse of main EidosScribe UI classes in a new Context does not
force the entire project to be Objective-C++.
*/
@interface NSAttributedString (EidosAdditions)
// This provides a nicely syntax-colored call signature string for use in the console window status bar and such places.
+ (NSAttributedString *)eidosAttributedStringForCallSignature:(const EidosCallSignature *)signature size:(double)fontSize;
+ (NSAttributedString *)eidosAttributedStringForPropertySignature:(const EidosPropertySignature *)signature size:(double)fontSize;
@end
@interface NSMutableAttributedString (EidosAdditions)
// A shorthand to avoid having to construct autoreleased temporary attributed strings
- (void)eidosAppendString:(NSString *)str attributes:(NSDictionary<NSString *,id> *)attrs;
@end
@interface NSDictionary (EidosAdditions)
// The standard font (Menlo 11 with 3-space tabs) with a given color, used to assemble attributed strings
+ (NSDictionary *)eidosTextAttributesWithColor:(NSColor *)textColor size:(double)fontSize;
// Some standard attribute dictionaries for Eidos syntax coloring
+ (NSDictionary *)eidosPromptAttrsWithSize:(double)fontSize;
+ (NSDictionary *)eidosInputAttrsWithSize:(double)fontSize;
+ (NSDictionary *)eidosOutputAttrsWithSize:(double)fontSize;
+ (NSDictionary *)eidosErrorAttrsWithSize:(double)fontSize;
+ (NSDictionary *)eidosTokensAttrsWithSize:(double)fontSize;
+ (NSDictionary *)eidosParseAttrsWithSize:(double)fontSize;
+ (NSDictionary *)eidosExecutionAttrsWithSize:(double)fontSize;
// Add a hyperlink to an existing attribute dictionary
+ (NSDictionary *)eidosBaseAttributes:(NSDictionary *)baseAttrs withHyperlink:(NSString *)link;
@end
@interface NSSplitView (EidosAdditions)
// A bug fix to make NSSplitView correctly restore its position/layout.
// Borrowed from http://stackoverflow.com/questions/16587058/nssplitview-auto-saving-divider-positions-doesnt-work-with-auto-layout-enable
// Ah, NSSplitView, how I love thee? Let me count the ways. OK, I'm done counting.
// BCH 25 April 2017: added the autosaveName parameter so that we can restore from our autosave before setting
// the autosave name on the splitview, because Apple has broken NSSplitView even more severely than before...
- (void)eidosRestoreAutosavedPositionsWithName:(NSString *)autosaveName;
@end
@interface NSTextField (EidosAdditions)
- (void)eidosSetHyperlink:(NSURL *)url onText:(NSString *)text;
@end
@interface NSString (EidosAdditions)
- (int64_t)eidosScoreAsCompletionOfString:(NSString *)completionBase;
@end
extern std::string Eidos_Beep_MACOS(const std::string &p_sound_name);
================================================
FILE: EidosScribe/EidosCocoaExtra.mm
================================================
//
// EidosCocoaExtra.m
// SLiM
//
// Created by Ben Haller on 9/11/15.
// Copyright (c) 2015-2025 Benjamin C. Haller. All rights reserved.
// A product of the Messer Lab, http://messerlab.org/slim/
//
// This file is part of Eidos.
//
// Eidos is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
//
// Eidos is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with Eidos. If not, see <http://www.gnu.org/licenses/>.
#import "EidosCocoaExtra.h"
#include "eidos_call_signature.h"
#include "eidos_property_signature.h"
#include "eidos_value.h"
#include "eidos_beep.h"
@implementation NSAttributedString (EidosAdditions)
+ (NSAttributedString *)eidosAttributedStringForCallSignature:(const EidosCallSignature *)signature size:(double)fontSize
{
if (signature)
{
//
// Note this logic is paralleled in the function operator<<(ostream &, const EidosCallSignature &).
// These two should be kept in synch so the user-visible format of signatures is consistent.
//
// Build an attributed string showing the call signature with syntax coloring for its parts
NSMutableAttributedString *attrStr = [[[NSMutableAttributedString alloc] init] autorelease];
std::string &&prefix_string = signature->CallPrefix();
NSString *prefixString = [NSString stringWithUTF8String:prefix_string.c_str()]; // "", "–\u00A0", or "+\u00A0"
std::string &&return_type_string = StringForEidosValueMask(signature->return_mask_, signature->return_class_, "", nullptr);
NSString *returnTypeString = [NSString stringWithUTF8String:return_type_string.c_str()];
NSString *functionNameString = [NSString stringWithUTF8String:signature->call_name_.c_str()];
NSDictionary *plainAttrs = [NSDictionary eidosOutputAttrsWithSize:fontSize];
NSDictionary *typeAttrs = [NSDictionary eidosInputAttrsWithSize:fontSize];
NSDictionary *functionAttrs = [NSDictionary eidosParseAttrsWithSize:fontSize];
NSDictionary *paramAttrs = [NSDictionary eidosPromptAttrsWithSize:fontSize];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:prefixString attributes:plainAttrs] autorelease]];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"(" attributes:plainAttrs] autorelease]];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:returnTypeString attributes:typeAttrs] autorelease]];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@")" attributes:plainAttrs] autorelease]];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:functionNameString attributes:functionAttrs] autorelease]];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"(" attributes:plainAttrs] autorelease]];
int arg_mask_count = (int)signature->arg_masks_.size();
if (arg_mask_count == 0)
{
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"void" attributes:typeAttrs] autorelease]];
}
else
{
for (int arg_index = 0; arg_index < arg_mask_count; ++arg_index)
{
EidosValueMask type_mask = signature->arg_masks_[arg_index];
const std::string &arg_name = signature->arg_names_[arg_index];
const EidosClass *arg_obj_class = signature->arg_classes_[arg_index];
EidosValue_SP arg_default = signature->arg_defaults_[arg_index];
// skip private arguments
if ((arg_name.length() >= 1) && (arg_name[0] == '_'))
continue;
if (arg_index > 0)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@", " attributes:plainAttrs] autorelease]];
//
// Note this logic is paralleled in the function StringForEidosValueMask().
// These two should be kept in synch so the user-visible format of signatures is consistent.
//
if (arg_name == gEidosStr_ELLIPSIS)
{
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"..." attributes:plainAttrs] autorelease]];
continue;
}
bool is_optional = !!(type_mask & kEidosValueMaskOptional);
bool requires_singleton = !!(type_mask & kEidosValueMaskSingleton);
EidosValueMask stripped_mask = type_mask & kEidosValueMaskFlagStrip;
if (is_optional)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"[" attributes:plainAttrs] autorelease]];
if (stripped_mask == kEidosValueMaskNone)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"?" attributes:typeAttrs] autorelease]];
else if (stripped_mask == kEidosValueMaskAny)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"*" attributes:typeAttrs] autorelease]];
else if (stripped_mask == kEidosValueMaskAnyBase)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"+" attributes:typeAttrs] autorelease]];
else if (stripped_mask == kEidosValueMaskVOID)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"void" attributes:typeAttrs] autorelease]];
else if (stripped_mask == kEidosValueMaskNULL)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"NULL" attributes:typeAttrs] autorelease]];
else if (stripped_mask == kEidosValueMaskLogical)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"logical" attributes:typeAttrs] autorelease]];
else if (stripped_mask == kEidosValueMaskString)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"string" attributes:typeAttrs] autorelease]];
else if (stripped_mask == kEidosValueMaskInt)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"integer" attributes:typeAttrs] autorelease]];
else if (stripped_mask == kEidosValueMaskFloat)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"float" attributes:typeAttrs] autorelease]];
else if (stripped_mask == kEidosValueMaskObject)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"object" attributes:typeAttrs] autorelease]];
else if (stripped_mask == kEidosValueMaskNumeric)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"numeric" attributes:typeAttrs] autorelease]];
else
{
if (stripped_mask & kEidosValueMaskVOID)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"v" attributes:typeAttrs] autorelease]];
if (stripped_mask & kEidosValueMaskNULL)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"N" attributes:typeAttrs] autorelease]];
if (stripped_mask & kEidosValueMaskLogical)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"l" attributes:typeAttrs] autorelease]];
if (stripped_mask & kEidosValueMaskInt)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"i" attributes:typeAttrs] autorelease]];
if (stripped_mask & kEidosValueMaskFloat)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"f" attributes:typeAttrs] autorelease]];
if (stripped_mask & kEidosValueMaskString)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"s" attributes:typeAttrs] autorelease]];
if (stripped_mask & kEidosValueMaskObject)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"o" attributes:typeAttrs] autorelease]];
}
if (arg_obj_class && (stripped_mask & kEidosValueMaskObject))
{
const std::string &obj_type_name = arg_obj_class->ClassNameForDisplay();
NSString *objTypeName = [NSString stringWithUTF8String:obj_type_name.c_str()];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"<" attributes:typeAttrs] autorelease]];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:objTypeName attributes:typeAttrs] autorelease]];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@">" attributes:typeAttrs] autorelease]];
}
if (requires_singleton)
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"$" attributes:typeAttrs] autorelease]];
if (arg_name.length() > 0)
{
NSString *argName = [NSString stringWithUTF8String:arg_name.c_str()];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"\u00A0" attributes:plainAttrs] autorelease]]; // non-breaking space
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:argName attributes:paramAttrs] autorelease]];
}
if (is_optional)
{
if (arg_default && (arg_default != gStaticEidosValueNULLInvisible.get()))
{
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"\u00A0=\u00A0" attributes:plainAttrs] autorelease]];
std::ostringstream default_string_stream;
arg_default->Print(default_string_stream);
std::string &&default_string = default_string_stream.str();
NSString *defaultString = [NSString stringWithUTF8String:default_string.c_str()];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:defaultString attributes:plainAttrs] autorelease]];
}
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@"]" attributes:plainAttrs] autorelease]];
}
}
}
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@")" attributes:plainAttrs] autorelease]];
// if the function is provided by a delegate, show the delegate's name
//p_outstream << p_signature.CallDelegate();
[attrStr addAttribute:NSBaselineOffsetAttributeName value:[NSNumber numberWithFloat:2.0] range:NSMakeRange(0, [attrStr length])];
return attrStr;
}
return [[[NSAttributedString alloc] init] autorelease];
}
+ (NSAttributedString *)eidosAttributedStringForPropertySignature:(const EidosPropertySignature *)signature size:(double)fontSize
{
if (signature)
{
//
// Note this logic is paralleled in the function operator<<(ostream &, const EidosPropertySignature &).
// These two should be kept in synch so the user-visible format of signatures is consistent.
//
// Build an attributed string showing the call signature with syntax coloring for its parts
NSMutableAttributedString *attrStr = [[[NSMutableAttributedString alloc] init] autorelease];
std::string &&connector_string = signature->PropertySymbol();
NSString *connectorString = [NSString stringWithUTF8String:connector_string.c_str()]; // "<–>" or "=>"
std::string &&value_type_string = StringForEidosValueMask(signature->value_mask_, signature->value_class_, "", nullptr);
NSString *valueTypeString = [NSString stringWithUTF8String:value_type_string.c_str()];
NSString *propertyNameString = [NSString stringWithUTF8String:signature->property_name_.c_str()];
NSDictionary *plainAttrs = [NSDictionary eidosOutputAttrsWithSize:fontSize];
NSDictionary *typeAttrs = [NSDictionary eidosInputAttrsWithSize:fontSize];
NSDictionary *functionAttrs = [NSDictionary eidosParseAttrsWithSize:fontSize];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:propertyNameString attributes:functionAttrs] autorelease]];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@" " attributes:plainAttrs] autorelease]];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:connectorString attributes:plainAttrs] autorelease]];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@" (" attributes:plainAttrs] autorelease]];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:valueTypeString attributes:typeAttrs] autorelease]];
[attrStr appendAttributedString:[[[NSAttributedString alloc] initWithString:@")" attributes:plainAttrs] autorelease]];
[attrStr addAttribute:NSBaselineOffsetAttributeName value:[NSNumber numberWithFloat:2.0] range:NSMakeRange(0, [attrStr length])];
return attrStr;
}
return [[[NSAttributedString alloc] init] autorelease];
}
@end
@implementation NSMutableAttributedString (EidosAdditions)
// A shorthand to avoid having to construct autoreleased temporary attributed strings
- (void)eidosAppendString:(NSString *)str attributes:(NSDictionary<NSString *,id> *)attrs
{
NSAttributedString *tempString = [[NSAttributedString alloc] initWithString:str attributes:attrs];
[self appendAttributedString:tempString];
[tempString release];
}
@end
@implementation NSDictionary (EidosAdditions)
+ (NSDictionary *)eidosTextAttributesWithColor:(NSColor *)textColor size:(double)fontSize
{
static double menloFontSize = 0.0;
static NSFont *menloFont = nil;
static NSMutableParagraphStyle *paragraphStyle = nil;
bool recachedFont = false;
if (!menlo
gitextract_mptrfmw2/
├── .gitattributes
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ └── issue.md
│ └── workflows/
│ └── tests.yml
├── .gitignore
├── .travis.yml
├── CMakeLists.txt
├── CONTENTS.txt
├── CONTRIBUTING.md
├── EidosSLiMTests/
│ ├── EidosTests.mm
│ ├── Info.plist
│ └── SLiMTests.mm
├── EidosScribe/
│ ├── Base.lproj/
│ │ ├── EidosAboutWindow.xib
│ │ ├── EidosConsoleWindow.xib
│ │ ├── EidosHelpWindow.xib
│ │ └── MainMenu.xib
│ ├── EidosAppDelegate.h
│ ├── EidosAppDelegate.mm
│ ├── EidosCocoaExtra.h
│ ├── EidosCocoaExtra.mm
│ ├── EidosConsoleTextView.h
│ ├── EidosConsoleTextView.mm
│ ├── EidosConsoleTextViewDelegate.h
│ ├── EidosConsoleWindowController.h
│ ├── EidosConsoleWindowController.mm
│ ├── EidosConsoleWindowControllerDelegate.h
│ ├── EidosHelpClasses.rtf
│ ├── EidosHelpController.h
│ ├── EidosHelpController.mm
│ ├── EidosHelpFunctions.rtf
│ ├── EidosHelpOperators.rtf
│ ├── EidosHelpStatements.rtf
│ ├── EidosHelpTypes.rtf
│ ├── EidosPrettyprinter.h
│ ├── EidosPrettyprinter.mm
│ ├── EidosScribe-Info.plist
│ ├── EidosScribe.entitlements
│ ├── EidosScribe_multi-Info.plist
│ ├── EidosScribe_multi.entitlements
│ ├── EidosTextView.h
│ ├── EidosTextView.mm
│ ├── EidosTextViewDelegate.h
│ ├── EidosValueWrapper.h
│ ├── EidosValueWrapper.mm
│ ├── EidosVariableBrowserController.h
│ ├── EidosVariableBrowserController.mm
│ ├── EidosVariableBrowserControllerDelegate.h
│ ├── Images.xcassets/
│ │ └── AppIcon.appiconset/
│ │ └── Contents.json
│ └── main.m
├── LICENSE
├── PARALLEL
├── QtSLiM/
│ ├── QtSLiM.pro
│ ├── QtSLiMAbout.cpp
│ ├── QtSLiMAbout.h
│ ├── QtSLiMAbout.ui
│ ├── QtSLiMAppDelegate.cpp
│ ├── QtSLiMAppDelegate.h
│ ├── QtSLiMChromosomeWidget.cpp
│ ├── QtSLiMChromosomeWidget.h
│ ├── QtSLiMChromosomeWidget_GL.cpp
│ ├── QtSLiMChromosomeWidget_QT.cpp
│ ├── QtSLiMConsoleTextEdit.cpp
│ ├── QtSLiMConsoleTextEdit.h
│ ├── QtSLiMDebugOutputWindow.cpp
│ ├── QtSLiMDebugOutputWindow.h
│ ├── QtSLiMDebugOutputWindow.ui
│ ├── QtSLiMEidosConsole.cpp
│ ├── QtSLiMEidosConsole.h
│ ├── QtSLiMEidosConsole.ui
│ ├── QtSLiMEidosConsole_glue.cpp
│ ├── QtSLiMEidosPrettyprinter.cpp
│ ├── QtSLiMEidosPrettyprinter.h
│ ├── QtSLiMExtras.cpp
│ ├── QtSLiMExtras.h
│ ├── QtSLiMFindPanel.cpp
│ ├── QtSLiMFindPanel.h
│ ├── QtSLiMFindPanel.ui
│ ├── QtSLiMFindRecipe.cpp
│ ├── QtSLiMFindRecipe.h
│ ├── QtSLiMFindRecipe.ui
│ ├── QtSLiMGraphView.cpp
│ ├── QtSLiMGraphView.h
│ ├── QtSLiMGraphView_1DPopulationSFS.cpp
│ ├── QtSLiMGraphView_1DPopulationSFS.h
│ ├── QtSLiMGraphView_1DSampleSFS.cpp
│ ├── QtSLiMGraphView_1DSampleSFS.h
│ ├── QtSLiMGraphView_2DPopulationSFS.cpp
│ ├── QtSLiMGraphView_2DPopulationSFS.h
│ ├── QtSLiMGraphView_2DSampleSFS.cpp
│ ├── QtSLiMGraphView_2DSampleSFS.h
│ ├── QtSLiMGraphView_AgeDistribution.cpp
│ ├── QtSLiMGraphView_AgeDistribution.h
│ ├── QtSLiMGraphView_CustomPlot.cpp
│ ├── QtSLiMGraphView_CustomPlot.h
│ ├── QtSLiMGraphView_FitnessOverTime.cpp
│ ├── QtSLiMGraphView_FitnessOverTime.h
│ ├── QtSLiMGraphView_FixationTimeHistogram.cpp
│ ├── QtSLiMGraphView_FixationTimeHistogram.h
│ ├── QtSLiMGraphView_FrequencyTrajectory.cpp
│ ├── QtSLiMGraphView_FrequencyTrajectory.h
│ ├── QtSLiMGraphView_LifetimeReproduction.cpp
│ ├── QtSLiMGraphView_LifetimeReproduction.h
│ ├── QtSLiMGraphView_LossTimeHistogram.cpp
│ ├── QtSLiMGraphView_LossTimeHistogram.h
│ ├── QtSLiMGraphView_MultispeciesPopSizeOverTime.cpp
│ ├── QtSLiMGraphView_MultispeciesPopSizeOverTime.h
│ ├── QtSLiMGraphView_PopFitnessDist.cpp
│ ├── QtSLiMGraphView_PopFitnessDist.h
│ ├── QtSLiMGraphView_PopSizeOverTime.cpp
│ ├── QtSLiMGraphView_PopSizeOverTime.h
│ ├── QtSLiMGraphView_PopulationVisualization.cpp
│ ├── QtSLiMGraphView_PopulationVisualization.h
│ ├── QtSLiMGraphView_SubpopFitnessDists.cpp
│ ├── QtSLiMGraphView_SubpopFitnessDists.h
│ ├── QtSLiMHaplotypeManager.cpp
│ ├── QtSLiMHaplotypeManager.h
│ ├── QtSLiMHaplotypeManager_GL.cpp
│ ├── QtSLiMHaplotypeManager_QT.cpp
│ ├── QtSLiMHaplotypeOptions.cpp
│ ├── QtSLiMHaplotypeOptions.h
│ ├── QtSLiMHaplotypeOptions.ui
│ ├── QtSLiMHaplotypeProgress.cpp
│ ├── QtSLiMHaplotypeProgress.h
│ ├── QtSLiMHaplotypeProgress.ui
│ ├── QtSLiMHelpWindow.cpp
│ ├── QtSLiMHelpWindow.h
│ ├── QtSLiMHelpWindow.ui
│ ├── QtSLiMIndividualsWidget.cpp
│ ├── QtSLiMIndividualsWidget.h
│ ├── QtSLiMIndividualsWidget_GL.cpp
│ ├── QtSLiMIndividualsWidget_QT.cpp
│ ├── QtSLiMOpenGL.cpp
│ ├── QtSLiMOpenGL.h
│ ├── QtSLiMOpenGL_Emulation.h
│ ├── QtSLiMPopulationTable.cpp
│ ├── QtSLiMPopulationTable.h
│ ├── QtSLiMPreferences.cpp
│ ├── QtSLiMPreferences.h
│ ├── QtSLiMPreferences.ui
│ ├── QtSLiMScriptTextEdit.cpp
│ ├── QtSLiMScriptTextEdit.h
│ ├── QtSLiMSyntaxHighlighting.cpp
│ ├── QtSLiMSyntaxHighlighting.h
│ ├── QtSLiMTablesDrawer.cpp
│ ├── QtSLiMTablesDrawer.h
│ ├── QtSLiMTablesDrawer.ui
│ ├── QtSLiMVariableBrowser.cpp
│ ├── QtSLiMVariableBrowser.h
│ ├── QtSLiMVariableBrowser.ui
│ ├── QtSLiMWindow.cpp
│ ├── QtSLiMWindow.h
│ ├── QtSLiMWindow.ui
│ ├── QtSLiMWindow_glue.cpp
│ ├── QtSLiM_AppIcon.icns
│ ├── QtSLiM_DocIcon.icns
│ ├── QtSLiM_Info.plist
│ ├── QtSLiM_Plot.cpp
│ ├── QtSLiM_Plot.h
│ ├── QtSLiM_SLiMgui.cpp
│ ├── QtSLiM_SLiMgui.h
│ ├── buttons.qrc
│ ├── buttons_DARK.qrc
│ ├── help/
│ │ ├── EidosHelpClasses.html
│ │ ├── EidosHelpFunctions.html
│ │ ├── EidosHelpOperators.html
│ │ ├── EidosHelpStatements.html
│ │ ├── EidosHelpTypes.html
│ │ ├── SLiMHelpCallbacks.html
│ │ ├── SLiMHelpClasses.html
│ │ └── SLiMHelpFunctions.html
│ ├── help.qrc
│ ├── icons.qrc
│ ├── main.cpp
│ ├── recipes/
│ │ ├── Recipe 10.1 - Temporally varying selection.txt
│ │ ├── Recipe 10.2 - Spatially varying selection.txt
│ │ ├── Recipe 10.3.1 - Fitness as a function of genomic background, Epistasis I.txt
│ │ ├── Recipe 10.3.1 - Fitness as a function of genomic background, Epistasis II.txt
│ │ ├── Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection I.txt
│ │ ├── Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection II.txt
│ │ ├── Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection III.txt
│ │ ├── Recipe 10.4.2 - Fitness as a function of population composition, Cultural effects on fitness.txt
│ │ ├── Recipe 10.4.3 - Fitness as a function of population composition, Kin selection and the green-beard effect.txt
│ │ ├── Recipe 10.5 - Changing selection coefficients with setSelectionCoeff().txt
│ │ ├── Recipe 10.6 - Varying the dominance coefficient among mutations I.txt
│ │ ├── Recipe 10.6 - Varying the dominance coefficient among mutations II.txt
│ │ ├── Recipe 11.1 - Assortative mating.txt
│ │ ├── Recipe 11.2 - Sequential mate search I.txt
│ │ ├── Recipe 11.2 - Sequential mate search II.txt
│ │ ├── Recipe 11.3 - Gametophytic self-incompatibility.txt
│ │ ├── Recipe 12.1 - Social learning of cultural traits.txt
│ │ ├── Recipe 12.2 - Lethal epistasis I.txt
│ │ ├── Recipe 12.2 - Lethal epistasis II.txt
│ │ ├── Recipe 12.3 - Simulating gene drive.txt
│ │ ├── Recipe 12.4 - Suppressing hermaphroditic selfing.txt
│ │ ├── Recipe 12.5 - Tracking separate sexes in script.txt
│ │ ├── Recipe 13.1 - Polygenic selection.txt
│ │ ├── Recipe 13.2 - A simple model of variable QTL effect sizes.txt
│ │ ├── Recipe 13.3 - A model of discrete QTL effects across multiple chromosomes.txt
│ │ ├── Recipe 13.4 - A quantitative genetics model with heritability.txt
│ │ ├── Recipe 13.5 - A QTL-based model with two quantitative phenotypic traits and pleiotropy.txt
│ │ ├── Recipe 13.6 - A variety of fitness functions I (stabilizing selection).txt
│ │ ├── Recipe 13.6 - A variety of fitness functions II (directional selection).txt
│ │ ├── Recipe 13.6 - A variety of fitness functions III (disruptive selection).txt
│ │ ├── Recipe 13.6 - A variety of fitness functions IV (truncation selection).txt
│ │ ├── Recipe 13.7 - Negative frequency-dependence on a quantitative trait.txt
│ │ ├── Recipe 14.1 - Relatedness, inbreeding, and heterozygosity.txt
│ │ ├── Recipe 14.10 - Modeling transposable elements.txt
│ │ ├── Recipe 14.11 - Modeling opposite ends of a chromosome I.txt
│ │ ├── Recipe 14.11 - Modeling opposite ends of a chromosome II.txt
│ │ ├── Recipe 14.12 - Visualizing ancestry and admixture with mutation() callbacks.txt
│ │ ├── Recipe 14.13 - Modeling biallelic loci with a mutation() callback I.txt
│ │ ├── Recipe 14.13 - Modeling biallelic loci with a mutation() callback II.txt
│ │ ├── Recipe 14.14 - Modeling biallelic loci in script.txt
│ │ ├── Recipe 14.15 - Using runs of homozygosity (ROH) to track inbreeding.txt
│ │ ├── Recipe 14.16 - Visualizing linkage disequilibrium.txt
│ │ ├── Recipe 14.2 - Mortality-based fitness I.txt
│ │ ├── Recipe 14.2 - Mortality-based fitness II.txt
│ │ ├── Recipe 14.2 - Mortality-based fitness III.txt
│ │ ├── Recipe 14.3 - Reading initial simulation state from an MS output file I.txt
│ │ ├── Recipe 14.3 - Reading initial simulation state from an MS output file II.txt
│ │ ├── Recipe 14.4 - Modeling chromosomal inversions with a recombination() callback.txt
│ │ ├── Recipe 14.5 - Estimating model parameters with ABC.txt
│ │ ├── Recipe 14.6 - Tracking local ancestry along the chromosome.txt
│ │ ├── Recipe 14.7 - Live plotting with R using system().txt
│ │ ├── Recipe 14.8 - Using mutation rate variation to model varying functional density.txt
│ │ ├── Recipe 14.9 - Modeling microsatellites.txt
│ │ ├── Recipe 15.1 - A minimal nonWF model.txt
│ │ ├── Recipe 15.10 - Recording a pedigree.txt
│ │ ├── Recipe 15.11 - Dynamic population structure in nonWF models.txt
│ │ ├── Recipe 15.12 - Implementing a Wright-Fisher model with a nonWF model I.txt
│ │ ├── Recipe 15.12 - Implementing a Wright-Fisher model with a nonWF model II.txt
│ │ ├── Recipe 15.13 - Range expansion in a stepping-stone model I.txt
│ │ ├── Recipe 15.13 - Range expansion in a stepping-stone model II.txt
│ │ ├── Recipe 15.14 - Logistic population growth with the Beverton-Holt model.txt
│ │ ├── Recipe 15.2 - Age structure (a life table model).txt
│ │ ├── Recipe 15.3 - Handling all reproduction at once with big bang reproduction.txt
│ │ ├── Recipe 15.4 - Monogamous mating and variation in litter size.txt
│ │ ├── Recipe 15.5 - Beneficial mutations and absolute fitness.txt
│ │ ├── Recipe 15.6 - A metapopulation extinction-colonization model.txt
│ │ ├── Recipe 15.7 - Habitat choice.txt
│ │ ├── Recipe 15.8 - Evolutionary rescue after environmental change.txt
│ │ ├── Recipe 15.9 - Litter size and parental investment.txt
│ │ ├── Recipe 16.1 - Pollen flow.txt
│ │ ├── Recipe 16.10 - Modeling pseudo-autosomal regions (PARs) with addMultiRecombinant().txt
│ │ ├── Recipe 16.11 - Life-long monogamous mating.txt
│ │ ├── Recipe 16.2 - Following a pedigree.txt
│ │ ├── Recipe 16.3 - Modeling clonal haploid bacteria with horizontal gene transfer.txt
│ │ ├── Recipe 16.4 - Alternation of generations.txt
│ │ ├── Recipe 16.5 - Meiotic drive.txt
│ │ ├── Recipe 16.6 - Sperm storage with a survival() callback.txt
│ │ ├── Recipe 16.7 - Tracking separate sexes in script, nonWF style.txt
│ │ ├── Recipe 16.8 - Modeling haplodiploidy with addRecombinant().txt
│ │ ├── Recipe 16.9 - Complex multi-chromosome inheritance with addMultiRecombinant().txt
│ │ ├── Recipe 17.1 - A simple 2D continuous-space model.txt
│ │ ├── Recipe 17.10 - A simple biogeographic landscape model.txt
│ │ ├── Recipe 17.11 - Local adaptation on a heterogeneous landscape map.txt
│ │ ├── Recipe 17.12 - Periodic spatial boundaries.txt
│ │ ├── Recipe 17.13 - Density-dependent fecundity with summarizeIndividuals().txt
│ │ ├── Recipe 17.14 - Directed dispersal with the SpatialMap class.txt
│ │ ├── Recipe 17.15 - Spatial competition and spatial mate choice in a nonWF model.txt
│ │ ├── Recipe 17.16 - A spatial model with carrying-capacity density.txt
│ │ ├── Recipe 17.17 - A spatial epidemiological S-I-R model.txt
│ │ ├── Recipe 17.18 - A sexual, age-structured spatial model.txt
│ │ ├── Recipe 17.19 - Modeling indirect competition mediated by resource availability.txt
│ │ ├── Recipe 17.2 - Spatial competition.txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions I (stopping boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions II (reflecting boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions III (absorbing boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions IV (reprising boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions V (dispersal kernels).txt
│ │ ├── Recipe 17.4 - Mate choice with a spatial kernel.txt
│ │ ├── Recipe 17.5 - Mate choice with a nearest-neighbor search.txt
│ │ ├── Recipe 17.6 - Divergence due to phenotypic competition with an interaction() callback.txt
│ │ ├── Recipe 17.7 - Modeling phenotype as a spatial dimension.txt
│ │ ├── Recipe 17.8 - Sympatric speciation facilitated by assortative mating.txt
│ │ ├── Recipe 17.9 - Speciation due to spatial variation in selection.txt
│ │ ├── Recipe 18.1 - A minimal tree-seq model.txt
│ │ ├── Recipe 18.10 - Adding a neutral burn-in after simulation with recapitation I.txt
│ │ ├── Recipe 18.10 - Adding a neutral burn-in after simulation with recapitation II.py
│ │ ├── Recipe 18.11 - Optimizing tree-sequence simplification.txt
│ │ ├── Recipe 18.2 - Overlaying neutral mutations.py
│ │ ├── Recipe 18.3 - Simulation conditional upon fixation of a sweep, preserving ancestry I.txt
│ │ ├── Recipe 18.3 - Simulation conditional upon fixation of a sweep, preserving ancestry II.txt
│ │ ├── Recipe 18.4 - Detecting the dip in diversity (analyzing tree heights in Python) I.txt
│ │ ├── Recipe 18.4 - Detecting the dip in diversity (analyzing tree heights in Python) II.py
│ │ ├── Recipe 18.5 - Mapping admixture (analyzing ancestry in Python) I.txt
│ │ ├── Recipe 18.5 - Mapping admixture (analyzing ancestry in Python) II.py
│ │ ├── Recipe 18.6 - Measuring the coalescence time of a model I.txt
│ │ ├── Recipe 18.6 - Measuring the coalescence time of a model II.txt
│ │ ├── Recipe 18.7 - Analyzing selection coefficients in Python with tskit I.txt
│ │ ├── Recipe 18.7 - Analyzing selection coefficients in Python with tskit II.py
│ │ ├── Recipe 18.8 - Starting a hermaphroditic WF model with a coalescent history I.py
│ │ ├── Recipe 18.8 - Starting a hermaphroditic WF model with a coalescent history II.txt
│ │ ├── Recipe 18.8 - Starting a hermaphroditic WF model with a coalescent history III.py
│ │ ├── Recipe 18.9 - Starting a sexual nonWF model with a coalescent history I.py
│ │ ├── Recipe 18.9 - Starting a sexual nonWF model with a coalescent history II.txt
│ │ ├── Recipe 19.1 - A simple neutral nucleotide-based model.txt
│ │ ├── Recipe 19.10 - Varying the mutation rate along the chromosome in a nucleotide-based model.txt
│ │ ├── Recipe 19.11 - Modeling GC-biased gene conversion (gBGC).txt
│ │ ├── Recipe 19.12 - Reading VCF files to create nucleotide-based SNPs.txt
│ │ ├── Recipe 19.13 - Tree-sequence recording and nucleotide-based models I.txt
│ │ ├── Recipe 19.13 - Tree-sequence recording and nucleotide-based models II.py
│ │ ├── Recipe 19.13 - Tree-sequence recording and nucleotide-based models III.py
│ │ ├── Recipe 19.14 - Modeling identity by state (IBS) (uniquing mutations with a mutation() callback).txt
│ │ ├── Recipe 19.15 - Modeling identity by state (IBS) (uniquing back-mutations to the ancestral state).txt
│ │ ├── Recipe 19.2 - Reading an ancestral nucleotide sequence from a FASTA file.txt
│ │ ├── Recipe 19.3 - Sequence output from nucleotide-based models.txt
│ │ ├── Recipe 19.4 - Back-mutations, independent mutational lineages, and VCF output.txt
│ │ ├── Recipe 19.5 - Modeling elevated CpG mutation rates and equilibrium nucleotide frequencies.txt
│ │ ├── Recipe 19.6 - A nucleotide-based model with introduced non-nucleotide-based mutations.txt
│ │ ├── Recipe 19.7 - Using standard SLiM fitness effects with nucleotides (modeling synonymous sites).txt
│ │ ├── Recipe 19.8 - Defining sequence-based fitness effects at the nucleotide level.txt
│ │ ├── Recipe 19.9 - Defining sequence-based fitness effects at the amino acid level.txt
│ │ ├── Recipe 20.1 - A simple multispecies model.txt
│ │ ├── Recipe 20.2 - A two-species model.txt
│ │ ├── Recipe 20.3 - A deterministic host-parasitoid model.txt
│ │ ├── Recipe 20.4 - An individual-based host-parasitoid model I.txt
│ │ ├── Recipe 20.4 - An individual-based host-parasitoid model II.txt
│ │ ├── Recipe 20.5 - A continuous-space host-parasitoid model.txt
│ │ ├── Recipe 20.6 - A coevolutionary host-parasitoid trait-matching model.txt
│ │ ├── Recipe 20.7 - A coevolutionary host-parasite matching-allele model.txt
│ │ ├── Recipe 20.8 - Within-host reproduction in a host-pathogen model.txt
│ │ ├── Recipe 4.1 - A basic neutral simulation.txt
│ │ ├── Recipe 4.1.10 - Using symbolic constants for model parameters.txt
│ │ ├── Recipe 4.2.1 - Basic output, Entire population.txt
│ │ ├── Recipe 4.2.2 - Basic output, Random population sample.txt
│ │ ├── Recipe 4.2.3 - Basic output, Sampling individuals for output.txt
│ │ ├── Recipe 4.2.4 - Basic output, Substitutions.txt
│ │ ├── Recipe 4.2.5 - Basic output, Automatic logging with LogFile.txt
│ │ ├── Recipe 4.2.6 - Basic output, Custom output with Eidos.txt
│ │ ├── Recipe 5.1.1 - Subpopulation size, Instantaneous changes.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth I.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth II.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth III.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth IV.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth V.txt
│ │ ├── Recipe 5.1.4 - Subpopulation size, Cyclical changes.txt
│ │ ├── Recipe 5.1.5 - Subpopulation size, Context-dependent changes (Muller's Ratchet).txt
│ │ ├── Recipe 5.2.1 - Population structure, Adding subpopulations.txt
│ │ ├── Recipe 5.2.2 - Population structure, Removing subpopulations.txt
│ │ ├── Recipe 5.2.3 - Population structure, Splitting subpopulations.txt
│ │ ├── Recipe 5.2.4 - Population structure, Joining subpopulations.txt
│ │ ├── Recipe 5.3.1 - Migration and admixture, A linear stepping-stone model.txt
│ │ ├── Recipe 5.3.2 - Migration and admixture, A non-spatial metapopulation.txt
│ │ ├── Recipe 5.3.3 - Migration and admixture, A two-dimensional subpopulation matrix.txt
│ │ ├── Recipe 5.3.4 - Migration and admixture, A random, sparse spatial metapopulation.txt
│ │ ├── Recipe 5.3.5 - Migration and admixture, Reading a migration matrix from a file.txt
│ │ ├── Recipe 5.4 - The Gravel et al. (2011) model of human evolution I.txt
│ │ ├── Recipe 5.4 - The Gravel et al. (2011) model of human evolution II.txt
│ │ ├── Recipe 5.5 - Rescaling population sizes to improve simulation performance I.txt
│ │ ├── Recipe 5.5 - Rescaling population sizes to improve simulation performance II.txt
│ │ ├── Recipe 6.1 - Genomic structure, Part I (Mutation types and fitness effects).txt
│ │ ├── Recipe 6.2 - Genomic structure, Part II (Genomic element types).txt
│ │ ├── Recipe 6.3 - Genomic structure, Part III (Chromosome organization).txt
│ │ ├── Recipe 6.4 - Genomic structure, Part IV (Custom display colors in SLiMgui).txt
│ │ ├── Recipe 8.1.1 - Reproduction, Enabling separate sexes.txt
│ │ ├── Recipe 8.1.2 - Reproduction, Sex ratios I.txt
│ │ ├── Recipe 8.1.2 - Reproduction, Sex ratios II.txt
│ │ ├── Recipe 8.1.3 - Reproduction, Selfing in hermaphroditic populations.txt
│ │ ├── Recipe 8.1.4 - Reproduction, Cloning I.txt
│ │ ├── Recipe 8.1.4 - Reproduction, Cloning II.txt
│ │ ├── Recipe 8.2.1 - Recombination, Making a random recombination map.txt
│ │ ├── Recipe 8.2.2 - Recombination, Reading a recombination map from a file.txt
│ │ ├── Recipe 8.2.3 - Recombination, Unlinked loci.txt
│ │ ├── Recipe 8.2.4 - Recombination, Gene conversion.txt
│ │ ├── Recipe 8.3.1 - Multiple diploid autosomes.txt
│ │ ├── Recipe 8.3.2 - Clonal haploids and chromosome types.txt
│ │ ├── Recipe 8.3.3 - Haploids with recombination.txt
│ │ ├── Recipe 8.3.4 - Sex-chromosome evolution and null haplosomes.txt
│ │ ├── Recipe 8.3.5 - Modeling the full human genome.txt
│ │ ├── Recipe 8.3.6 - A model of bryophytes with UV sex determination.txt
│ │ ├── Recipe 8.3.7 - Output from multiple-chromosome models.txt
│ │ ├── Recipe 9.1 - Introducing adaptive mutations.txt
│ │ ├── Recipe 9.10 - Tracking the fate of background mutations.txt
│ │ ├── Recipe 9.11 - Effective population size versus census population size.txt
│ │ ├── Recipe 9.12 - Observing the site frequency spectrum (SFS) during selective sweeps.txt
│ │ ├── Recipe 9.2 - Making sweeps conditional on fixation.txt
│ │ ├── Recipe 9.3 - Making sweeps conditional on establishment.txt
│ │ ├── Recipe 9.4 - Partial sweeps.txt
│ │ ├── Recipe 9.5.1 - A soft sweep from recurrent de novo mutations in a large population.txt
│ │ ├── Recipe 9.5.2 - A soft sweep with a fixed de novo mutation schedule.txt
│ │ ├── Recipe 9.5.3 - A soft sweep with a random de novo mutation schedule.txt
│ │ ├── Recipe 9.6.1 - A sweep from standing variation at a random locus.txt
│ │ ├── Recipe 9.6.2 - A sweep from standing variation at a predetermined locus.txt
│ │ ├── Recipe 9.7 - Adaptive introgression.txt
│ │ ├── Recipe 9.8 - Fixation probabilities under Hill-Robertson interference.txt
│ │ ├── Recipe 9.9 - Keeping a reference to a sweep mutation.txt
│ │ └── _README.txt
│ └── recipes.qrc
├── README.md
├── SLiM.pro
├── SLiM.spec
├── SLiM.xcodeproj/
│ ├── project.pbxproj
│ ├── project.xcworkspace/
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata/
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── WorkspaceSettings.xcsettings
│ └── xcshareddata/
│ └── xcschemes/
│ ├── EidosScribe.xcscheme
│ ├── EidosScribe_multi.xcscheme
│ ├── SLiM.xcscheme
│ ├── SLiM_multi.xcscheme
│ ├── SLiMguiLegacy.xcscheme
│ ├── SLiMguiLegacy_multi.xcscheme
│ ├── eidos.xcscheme
│ └── eidos_multi.xcscheme
├── SLiMgui/
│ ├── AppDelegate.h
│ ├── AppDelegate.mm
│ ├── Base.lproj/
│ │ ├── AboutWindow.xib
│ │ ├── FindRecipePanel.xib
│ │ ├── GraphAxisRescaleSheet.xib
│ │ ├── GraphBarRescaleSheet.xib
│ │ ├── GraphWindow.xib
│ │ ├── HelpWindow.xib
│ │ ├── MainMenu.xib
│ │ ├── ProfileReport.xib
│ │ ├── SLiMWindow.xib
│ │ ├── ScriptModSheet.xib
│ │ ├── ScriptMod_AddGenomicElement.xib
│ │ ├── ScriptMod_AddGenomicElementType.xib
│ │ ├── ScriptMod_AddMutationType.xib
│ │ ├── ScriptMod_AddRecombinationRate.xib
│ │ ├── ScriptMod_AddSexConfiguration.xib
│ │ ├── ScriptMod_AddSubpop.xib
│ │ ├── ScriptMod_ChangeCloning.xib
│ │ ├── ScriptMod_ChangeMigration.xib
│ │ ├── ScriptMod_ChangeSelfing.xib
│ │ ├── ScriptMod_ChangeSexRatio.xib
│ │ ├── ScriptMod_ChangeSubpopSize.xib
│ │ ├── ScriptMod_OutputFixedMutations.xib
│ │ ├── ScriptMod_OutputFullPopulation.xib
│ │ ├── ScriptMod_OutputSubpopSample.xib
│ │ ├── ScriptMod_RemoveSubpop.xib
│ │ ├── ScriptMod_SplitSubpop.xib
│ │ └── TipsWindow.xib
│ ├── ChromosomeView.h
│ ├── ChromosomeView.mm
│ ├── CocoaExtra.h
│ ├── CocoaExtra.mm
│ ├── FindRecipeController.h
│ ├── FindRecipeController.mm
│ ├── GraphView.h
│ ├── GraphView.mm
│ ├── GraphView_FitnessOverTime.h
│ ├── GraphView_FitnessOverTime.mm
│ ├── GraphView_MutationFixationTimeHistogram.h
│ ├── GraphView_MutationFixationTimeHistogram.mm
│ ├── GraphView_MutationFrequencySpectra.h
│ ├── GraphView_MutationFrequencySpectra.mm
│ ├── GraphView_MutationFrequencyTrajectory.h
│ ├── GraphView_MutationFrequencyTrajectory.mm
│ ├── GraphView_MutationLossTimeHistogram.h
│ ├── GraphView_MutationLossTimeHistogram.mm
│ ├── GraphView_PopulationVisualization.h
│ ├── GraphView_PopulationVisualization.mm
│ ├── Images.xcassets/
│ │ └── AppIcon.appiconset/
│ │ └── Contents.json
│ ├── PopulationView.h
│ ├── PopulationView.mm
│ ├── Recipes/
│ │ ├── Recipe 10.1 - Temporally varying selection.txt
│ │ ├── Recipe 10.2 - Spatially varying selection.txt
│ │ ├── Recipe 10.3.1 - Fitness as a function of genomic background, Epistasis I.txt
│ │ ├── Recipe 10.3.1 - Fitness as a function of genomic background, Epistasis II.txt
│ │ ├── Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection I.txt
│ │ ├── Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection II.txt
│ │ ├── Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection III.txt
│ │ ├── Recipe 10.4.2 - Fitness as a function of population composition, Cultural effects on fitness.txt
│ │ ├── Recipe 10.4.3 - Fitness as a function of population composition, Kin selection and the green-beard effect.txt
│ │ ├── Recipe 10.5 - Changing selection coefficients with setSelectionCoeff().txt
│ │ ├── Recipe 10.6 - Varying the dominance coefficient among mutations I.txt
│ │ ├── Recipe 10.6 - Varying the dominance coefficient among mutations II.txt
│ │ ├── Recipe 11.1 - Assortative mating.txt
│ │ ├── Recipe 11.2 - Sequential mate search I.txt
│ │ ├── Recipe 11.2 - Sequential mate search II.txt
│ │ ├── Recipe 11.3 - Gametophytic self-incompatibility.txt
│ │ ├── Recipe 12.1 - Social learning of cultural traits.txt
│ │ ├── Recipe 12.2 - Lethal epistasis I.txt
│ │ ├── Recipe 12.2 - Lethal epistasis II.txt
│ │ ├── Recipe 12.3 - Simulating gene drive.txt
│ │ ├── Recipe 12.4 - Suppressing hermaphroditic selfing.txt
│ │ ├── Recipe 12.5 - Tracking separate sexes in script.txt
│ │ ├── Recipe 13.1 - Polygenic selection.txt
│ │ ├── Recipe 13.2 - A simple model of variable QTL effect sizes.txt
│ │ ├── Recipe 13.3 - A model of discrete QTL effects across multiple chromosomes.txt
│ │ ├── Recipe 13.4 - A quantitative genetics model with heritability.txt
│ │ ├── Recipe 13.5 - A QTL-based model with two quantitative phenotypic traits and pleiotropy.txt
│ │ ├── Recipe 13.6 - A variety of fitness functions I (stabilizing selection).txt
│ │ ├── Recipe 13.6 - A variety of fitness functions II (directional selection).txt
│ │ ├── Recipe 13.6 - A variety of fitness functions III (disruptive selection).txt
│ │ ├── Recipe 13.6 - A variety of fitness functions IV (truncation selection).txt
│ │ ├── Recipe 13.7 - Negative frequency-dependence on a quantitative trait.txt
│ │ ├── Recipe 14.1 - Relatedness, inbreeding, and heterozygosity.txt
│ │ ├── Recipe 14.10 - Modeling transposable elements.txt
│ │ ├── Recipe 14.11 - Modeling opposite ends of a chromosome I.txt
│ │ ├── Recipe 14.11 - Modeling opposite ends of a chromosome II.txt
│ │ ├── Recipe 14.12 - Visualizing ancestry and admixture with mutation() callbacks.txt
│ │ ├── Recipe 14.13 - Modeling biallelic loci with a mutation() callback I.txt
│ │ ├── Recipe 14.13 - Modeling biallelic loci with a mutation() callback II.txt
│ │ ├── Recipe 14.14 - Modeling biallelic loci in script.txt
│ │ ├── Recipe 14.15 - Using runs of homozygosity (ROH) to track inbreeding.txt
│ │ ├── Recipe 14.16 - Visualizing linkage disequilibrium.txt
│ │ ├── Recipe 14.2 - Mortality-based fitness I.txt
│ │ ├── Recipe 14.2 - Mortality-based fitness II.txt
│ │ ├── Recipe 14.2 - Mortality-based fitness III.txt
│ │ ├── Recipe 14.3 - Reading initial simulation state from an MS output file I.txt
│ │ ├── Recipe 14.3 - Reading initial simulation state from an MS output file II.txt
│ │ ├── Recipe 14.4 - Modeling chromosomal inversions with a recombination() callback.txt
│ │ ├── Recipe 14.5 - Estimating model parameters with ABC.txt
│ │ ├── Recipe 14.6 - Tracking local ancestry along the chromosome.txt
│ │ ├── Recipe 14.7 - Live plotting with R using system().txt
│ │ ├── Recipe 14.8 - Using mutation rate variation to model varying functional density.txt
│ │ ├── Recipe 14.9 - Modeling microsatellites.txt
│ │ ├── Recipe 15.1 - A minimal nonWF model.txt
│ │ ├── Recipe 15.10 - Recording a pedigree.txt
│ │ ├── Recipe 15.11 - Dynamic population structure in nonWF models.txt
│ │ ├── Recipe 15.12 - Implementing a Wright-Fisher model with a nonWF model I.txt
│ │ ├── Recipe 15.12 - Implementing a Wright-Fisher model with a nonWF model II.txt
│ │ ├── Recipe 15.13 - Range expansion in a stepping-stone model I.txt
│ │ ├── Recipe 15.13 - Range expansion in a stepping-stone model II.txt
│ │ ├── Recipe 15.14 - Logistic population growth with the Beverton-Holt model.txt
│ │ ├── Recipe 15.2 - Age structure (a life table model).txt
│ │ ├── Recipe 15.3 - Handling all reproduction at once with big bang reproduction.txt
│ │ ├── Recipe 15.4 - Monogamous mating and variation in litter size.txt
│ │ ├── Recipe 15.5 - Beneficial mutations and absolute fitness.txt
│ │ ├── Recipe 15.6 - A metapopulation extinction-colonization model.txt
│ │ ├── Recipe 15.7 - Habitat choice.txt
│ │ ├── Recipe 15.8 - Evolutionary rescue after environmental change.txt
│ │ ├── Recipe 15.9 - Litter size and parental investment.txt
│ │ ├── Recipe 16.1 - Pollen flow.txt
│ │ ├── Recipe 16.10 - Modeling pseudo-autosomal regions (PARs) with addMultiRecombinant().txt
│ │ ├── Recipe 16.11 - Life-long monogamous mating.txt
│ │ ├── Recipe 16.2 - Following a pedigree.txt
│ │ ├── Recipe 16.3 - Modeling clonal haploid bacteria with horizontal gene transfer.txt
│ │ ├── Recipe 16.4 - Alternation of generations.txt
│ │ ├── Recipe 16.5 - Meiotic drive.txt
│ │ ├── Recipe 16.6 - Sperm storage with a survival() callback.txt
│ │ ├── Recipe 16.7 - Tracking separate sexes in script, nonWF style.txt
│ │ ├── Recipe 16.8 - Modeling haplodiploidy with addRecombinant().txt
│ │ ├── Recipe 16.9 - Complex multi-chromosome inheritance with addMultiRecombinant().txt
│ │ ├── Recipe 17.1 - A simple 2D continuous-space model.txt
│ │ ├── Recipe 17.10 - A simple biogeographic landscape model.txt
│ │ ├── Recipe 17.11 - Local adaptation on a heterogeneous landscape map.txt
│ │ ├── Recipe 17.12 - Periodic spatial boundaries.txt
│ │ ├── Recipe 17.13 - Density-dependent fecundity with summarizeIndividuals().txt
│ │ ├── Recipe 17.14 - Directed dispersal with the SpatialMap class.txt
│ │ ├── Recipe 17.15 - Spatial competition and spatial mate choice in a nonWF model.txt
│ │ ├── Recipe 17.16 - A spatial model with carrying-capacity density.txt
│ │ ├── Recipe 17.17 - A spatial epidemiological S-I-R model.txt
│ │ ├── Recipe 17.18 - A sexual, age-structured spatial model.txt
│ │ ├── Recipe 17.19 - Modeling indirect competition mediated by resource availability.txt
│ │ ├── Recipe 17.2 - Spatial competition.txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions I (stopping boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions II (reflecting boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions III (absorbing boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions IV (reprising boundaries).txt
│ │ ├── Recipe 17.3 - Boundaries and boundary conditions V (dispersal kernels).txt
│ │ ├── Recipe 17.4 - Mate choice with a spatial kernel.txt
│ │ ├── Recipe 17.5 - Mate choice with a nearest-neighbor search.txt
│ │ ├── Recipe 17.6 - Divergence due to phenotypic competition with an interaction() callback.txt
│ │ ├── Recipe 17.7 - Modeling phenotype as a spatial dimension.txt
│ │ ├── Recipe 17.8 - Sympatric speciation facilitated by assortative mating.txt
│ │ ├── Recipe 17.9 - Speciation due to spatial variation in selection.txt
│ │ ├── Recipe 18.1 - A minimal tree-seq model.txt
│ │ ├── Recipe 18.10 - Adding a neutral burn-in after simulation with recapitation I.txt
│ │ ├── Recipe 18.10 - Adding a neutral burn-in after simulation with recapitation II.py
│ │ ├── Recipe 18.11 - Optimizing tree-sequence simplification.txt
│ │ ├── Recipe 18.2 - Overlaying neutral mutations.py
│ │ ├── Recipe 18.3 - Simulation conditional upon fixation of a sweep, preserving ancestry I.txt
│ │ ├── Recipe 18.3 - Simulation conditional upon fixation of a sweep, preserving ancestry II.txt
│ │ ├── Recipe 18.4 - Detecting the dip in diversity (analyzing tree heights in Python) I.txt
│ │ ├── Recipe 18.4 - Detecting the dip in diversity (analyzing tree heights in Python) II.py
│ │ ├── Recipe 18.5 - Mapping admixture (analyzing ancestry in Python) I.txt
│ │ ├── Recipe 18.5 - Mapping admixture (analyzing ancestry in Python) II.py
│ │ ├── Recipe 18.6 - Measuring the coalescence time of a model I.txt
│ │ ├── Recipe 18.6 - Measuring the coalescence time of a model II.txt
│ │ ├── Recipe 18.7 - Analyzing selection coefficients in Python with tskit I.txt
│ │ ├── Recipe 18.7 - Analyzing selection coefficients in Python with tskit II.py
│ │ ├── Recipe 18.8 - Starting a hermaphroditic WF model with a coalescent history I.py
│ │ ├── Recipe 18.8 - Starting a hermaphroditic WF model with a coalescent history II.txt
│ │ ├── Recipe 18.8 - Starting a hermaphroditic WF model with a coalescent history III.py
│ │ ├── Recipe 18.9 - Starting a sexual nonWF model with a coalescent history I.py
│ │ ├── Recipe 18.9 - Starting a sexual nonWF model with a coalescent history II.txt
│ │ ├── Recipe 19.1 - A simple neutral nucleotide-based model.txt
│ │ ├── Recipe 19.10 - Varying the mutation rate along the chromosome in a nucleotide-based model.txt
│ │ ├── Recipe 19.11 - Modeling GC-biased gene conversion (gBGC).txt
│ │ ├── Recipe 19.12 - Reading VCF files to create nucleotide-based SNPs.txt
│ │ ├── Recipe 19.13 - Tree-sequence recording and nucleotide-based models I.txt
│ │ ├── Recipe 19.13 - Tree-sequence recording and nucleotide-based models II.py
│ │ ├── Recipe 19.13 - Tree-sequence recording and nucleotide-based models III.py
│ │ ├── Recipe 19.14 - Modeling identity by state (IBS) (uniquing mutations with a mutation() callback).txt
│ │ ├── Recipe 19.15 - Modeling identity by state (IBS) (uniquing back-mutations to the ancestral state).txt
│ │ ├── Recipe 19.2 - Reading an ancestral nucleotide sequence from a FASTA file.txt
│ │ ├── Recipe 19.3 - Sequence output from nucleotide-based models.txt
│ │ ├── Recipe 19.4 - Back-mutations, independent mutational lineages, and VCF output.txt
│ │ ├── Recipe 19.5 - Modeling elevated CpG mutation rates and equilibrium nucleotide frequencies.txt
│ │ ├── Recipe 19.6 - A nucleotide-based model with introduced non-nucleotide-based mutations.txt
│ │ ├── Recipe 19.7 - Using standard SLiM fitness effects with nucleotides (modeling synonymous sites).txt
│ │ ├── Recipe 19.8 - Defining sequence-based fitness effects at the nucleotide level.txt
│ │ ├── Recipe 19.9 - Defining sequence-based fitness effects at the amino acid level.txt
│ │ ├── Recipe 20.1 - A simple multispecies model.txt
│ │ ├── Recipe 20.2 - A two-species model.txt
│ │ ├── Recipe 20.3 - A deterministic host-parasitoid model.txt
│ │ ├── Recipe 20.4 - An individual-based host-parasitoid model I.txt
│ │ ├── Recipe 20.4 - An individual-based host-parasitoid model II.txt
│ │ ├── Recipe 20.5 - A continuous-space host-parasitoid model.txt
│ │ ├── Recipe 20.6 - A coevolutionary host-parasitoid trait-matching model.txt
│ │ ├── Recipe 20.7 - A coevolutionary host-parasite matching-allele model.txt
│ │ ├── Recipe 20.8 - Within-host reproduction in a host-pathogen model.txt
│ │ ├── Recipe 4.1 - A basic neutral simulation.txt
│ │ ├── Recipe 4.1.10 - Using symbolic constants for model parameters.txt
│ │ ├── Recipe 4.2.1 - Basic output, Entire population.txt
│ │ ├── Recipe 4.2.2 - Basic output, Random population sample.txt
│ │ ├── Recipe 4.2.3 - Basic output, Sampling individuals for output.txt
│ │ ├── Recipe 4.2.4 - Basic output, Substitutions.txt
│ │ ├── Recipe 4.2.5 - Basic output, Automatic logging with LogFile.txt
│ │ ├── Recipe 4.2.6 - Basic output, Custom output with Eidos.txt
│ │ ├── Recipe 5.1.1 - Subpopulation size, Instantaneous changes.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth I.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth II.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth III.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth IV.txt
│ │ ├── Recipe 5.1.2 - Subpopulation size, Exponential growth V.txt
│ │ ├── Recipe 5.1.4 - Subpopulation size, Cyclical changes.txt
│ │ ├── Recipe 5.1.5 - Subpopulation size, Context-dependent changes (Muller's Ratchet).txt
│ │ ├── Recipe 5.2.1 - Population structure, Adding subpopulations.txt
│ │ ├── Recipe 5.2.2 - Population structure, Removing subpopulations.txt
│ │ ├── Recipe 5.2.3 - Population structure, Splitting subpopulations.txt
│ │ ├── Recipe 5.2.4 - Population structure, Joining subpopulations.txt
│ │ ├── Recipe 5.3.1 - Migration and admixture, A linear stepping-stone model.txt
│ │ ├── Recipe 5.3.2 - Migration and admixture, A non-spatial metapopulation.txt
│ │ ├── Recipe 5.3.3 - Migration and admixture, A two-dimensional subpopulation matrix.txt
│ │ ├── Recipe 5.3.4 - Migration and admixture, A random, sparse spatial metapopulation.txt
│ │ ├── Recipe 5.3.5 - Migration and admixture, Reading a migration matrix from a file.txt
│ │ ├── Recipe 5.4 - The Gravel et al. (2011) model of human evolution I.txt
│ │ ├── Recipe 5.4 - The Gravel et al. (2011) model of human evolution II.txt
│ │ ├── Recipe 5.5 - Rescaling population sizes to improve simulation performance I.txt
│ │ ├── Recipe 5.5 - Rescaling population sizes to improve simulation performance II.txt
│ │ ├── Recipe 6.1 - Genomic structure, Part I (Mutation types and fitness effects).txt
│ │ ├── Recipe 6.2 - Genomic structure, Part II (Genomic element types).txt
│ │ ├── Recipe 6.3 - Genomic structure, Part III (Chromosome organization).txt
│ │ ├── Recipe 6.4 - Genomic structure, Part IV (Custom display colors in SLiMgui).txt
│ │ ├── Recipe 8.1.1 - Reproduction, Enabling separate sexes.txt
│ │ ├── Recipe 8.1.2 - Reproduction, Sex ratios I.txt
│ │ ├── Recipe 8.1.2 - Reproduction, Sex ratios II.txt
│ │ ├── Recipe 8.1.3 - Reproduction, Selfing in hermaphroditic populations.txt
│ │ ├── Recipe 8.1.4 - Reproduction, Cloning I.txt
│ │ ├── Recipe 8.1.4 - Reproduction, Cloning II.txt
│ │ ├── Recipe 8.2.1 - Recombination, Making a random recombination map.txt
│ │ ├── Recipe 8.2.2 - Recombination, Reading a recombination map from a file.txt
│ │ ├── Recipe 8.2.3 - Recombination, Unlinked loci.txt
│ │ ├── Recipe 8.2.4 - Recombination, Gene conversion.txt
│ │ ├── Recipe 8.3.1 - Multiple diploid autosomes.txt
│ │ ├── Recipe 8.3.2 - Clonal haploids and chromosome types.txt
│ │ ├── Recipe 8.3.3 - Haploids with recombination.txt
│ │ ├── Recipe 8.3.4 - Sex-chromosome evolution and null haplosomes.txt
│ │ ├── Recipe 8.3.5 - Modeling the full human genome.txt
│ │ ├── Recipe 8.3.6 - A model of bryophytes with UV sex determination.txt
│ │ ├── Recipe 8.3.7 - Output from multiple-chromosome models.txt
│ │ ├── Recipe 9.1 - Introducing adaptive mutations.txt
│ │ ├── Recipe 9.10 - Tracking the fate of background mutations.txt
│ │ ├── Recipe 9.11 - Effective population size versus census population size.txt
│ │ ├── Recipe 9.12 - Observing the site frequency spectrum (SFS) during selective sweeps.txt
│ │ ├── Recipe 9.2 - Making sweeps conditional on fixation.txt
│ │ ├── Recipe 9.3 - Making sweeps conditional on establishment.txt
│ │ ├── Recipe 9.4 - Partial sweeps.txt
│ │ ├── Recipe 9.5.1 - A soft sweep from recurrent de novo mutations in a large population.txt
│ │ ├── Recipe 9.5.2 - A soft sweep with a fixed de novo mutation schedule.txt
│ │ ├── Recipe 9.5.3 - A soft sweep with a random de novo mutation schedule.txt
│ │ ├── Recipe 9.6.1 - A sweep from standing variation at a random locus.txt
│ │ ├── Recipe 9.6.2 - A sweep from standing variation at a predetermined locus.txt
│ │ ├── Recipe 9.7 - Adaptive introgression.txt
│ │ ├── Recipe 9.8 - Fixation probabilities under Hill-Robertson interference.txt
│ │ ├── Recipe 9.9 - Keeping a reference to a sweep mutation.txt
│ │ └── _README.txt
│ ├── SLiMDocument.h
│ ├── SLiMDocument.mm
│ ├── SLiMDocumentController.h
│ ├── SLiMDocumentController.mm
│ ├── SLiMHelpCallbacks.rtf
│ ├── SLiMHelpClasses.rtf
│ ├── SLiMHelpFunctions.rtf
│ ├── SLiMPDFDocument.h
│ ├── SLiMPDFDocument.mm
│ ├── SLiMPDFView.h
│ ├── SLiMPDFView.mm
│ ├── SLiMPDFWindow.xib
│ ├── SLiMPDFWindowController.h
│ ├── SLiMPDFWindowController.mm
│ ├── SLiMWindowController.h
│ ├── SLiMWindowController.mm
│ ├── SLiMgui.entitlements
│ ├── SLiMguiLegacy-Info.plist
│ ├── SLiMguiLegacy_multi-Info.plist
│ ├── SLiMguiLegacy_multi.entitlements
│ ├── Tip_END.rtfd/
│ │ ├── Pasted Graphic.tiff
│ │ └── TXT.rtf
│ ├── Tips/
│ │ ├── Tip 1 optclick for help.rtfd/
│ │ │ ├── Pasted Graphic 5.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 10 generation textfield.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic 2.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 11 chromosome subrange.rtfd/
│ │ │ ├── Pasted Graphic 2.tiff
│ │ │ ├── Pasted Graphic 3.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 12 see script object text.rtfd/
│ │ │ ├── Pasted Graphic 2.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 13 speed slider.rtfd/
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 14 console window.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 15 variable browser.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic 2.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 16 chromosome muttypes.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic 2.tiff
│ │ │ ├── Pasted Graphic 4.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 17 population display options.rtfd/
│ │ │ ├── Pasted Graphic 6.tiff
│ │ │ ├── Pasted Graphic 7.tiff
│ │ │ ├── Pasted Graphic 8.tiff
│ │ │ ├── Pasted Graphic 9.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 18 profiling simulations.rtfd/
│ │ │ └── TXT.rtf
│ │ ├── Tip 19 chromosome haplotypes.rtfd/
│ │ │ └── TXT.rtf
│ │ ├── Tip 2 autogen script.rtfd/
│ │ │ ├── Pasted Graphic 2.tiff
│ │ │ ├── Pasted Graphic 3.tiff
│ │ │ ├── Pasted Graphic 4.tiff
│ │ │ ├── Pasted Graphic 5.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 20 script prettyprinting.rtfd/
│ │ │ └── TXT.rtf
│ │ ├── Tip 21 MutationType DFE visualization.rtfd/
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 3 see prototypes.rtfd/
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 4 code completion.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic 4.tiff
│ │ │ ├── Pasted Graphic 5.tiff
│ │ │ ├── Pasted Graphic 6.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 5 config chromosome view.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 6 fast recipe access.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 7 comment in out.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ ├── Tip 8 shift left right.rtfd/
│ │ │ ├── Pasted Graphic 1.tiff
│ │ │ ├── Pasted Graphic.tiff
│ │ │ └── TXT.rtf
│ │ └── Tip 9 help by title or content.rtfd/
│ │ ├── Pasted Graphic 1.tiff
│ │ └── TXT.rtf
│ ├── TipsWindowController.h
│ ├── TipsWindowController.m
│ ├── main.m
│ ├── plot.h
│ ├── plot.mm
│ ├── slim_gui.h
│ └── slim_gui.mm
├── TO_DO
├── VERSIONS
├── cmake/
│ ├── AboutTheseModules.cmake
│ ├── GetGitRevisionDescription.cmake
│ ├── GetGitRevisionDescription.cmake.in
│ ├── GitSHA1.cpp.in
│ ├── GitSHA1.h
│ ├── GitSHA1_Xcode.cpp
│ ├── GitSHA1_qmake.cpp
│ ├── LICENSE_1_0.txt
│ ├── README.markdown
│ ├── _README.txt
│ └── toolchain-mingw64.cmake
├── codecov.yml
├── core/
│ ├── chromosome.cpp
│ ├── chromosome.h
│ ├── community.cpp
│ ├── community.h
│ ├── community_eidos.cpp
│ ├── core.pro
│ ├── genomic_element.cpp
│ ├── genomic_element.h
│ ├── genomic_element_type.cpp
│ ├── genomic_element_type.h
│ ├── haplosome.cpp
│ ├── haplosome.h
│ ├── individual.cpp
│ ├── individual.h
│ ├── interaction_type.cpp
│ ├── interaction_type.h
│ ├── log_file.cpp
│ ├── log_file.h
│ ├── main.cpp
│ ├── mutation.cpp
│ ├── mutation.h
│ ├── mutation_run.cpp
│ ├── mutation_run.h
│ ├── mutation_type.cpp
│ ├── mutation_type.h
│ ├── polymorphism.cpp
│ ├── polymorphism.h
│ ├── population.cpp
│ ├── population.h
│ ├── slim_eidos_block.cpp
│ ├── slim_eidos_block.h
│ ├── slim_functions.cpp
│ ├── slim_functions.h
│ ├── slim_globals.cpp
│ ├── slim_globals.h
│ ├── slim_test.cpp
│ ├── slim_test.h
│ ├── slim_test_core.cpp
│ ├── slim_test_genetics.cpp
│ ├── slim_test_other.cpp
│ ├── slim_test_parallel.h
│ ├── sparse_vector.cpp
│ ├── sparse_vector.h
│ ├── spatial_kernel.cpp
│ ├── spatial_kernel.h
│ ├── spatial_map.cpp
│ ├── spatial_map.h
│ ├── species.cpp
│ ├── species.h
│ ├── species_eidos.cpp
│ ├── subpopulation.cpp
│ ├── subpopulation.h
│ ├── substitution.cpp
│ └── substitution.h
├── data/
│ ├── applications/
│ │ └── org.messerlab.slimgui.desktop
│ ├── metainfo/
│ │ ├── org.messerlab.slimgui.appdata.xml
│ │ └── org.messerlab.slimgui.metainfo.xml
│ └── mime/
│ └── packages/
│ └── org.messerlab.slimgui-mime.xml
├── debian/
│ ├── changelog
│ ├── compat
│ ├── control
│ ├── copyright
│ ├── rules
│ ├── slimsim.install
│ └── source/
│ └── format
├── eidos/
│ ├── eidos.pro
│ ├── eidos_ast_node.cpp
│ ├── eidos_ast_node.h
│ ├── eidos_beep.cpp
│ ├── eidos_beep.h
│ ├── eidos_call_signature.cpp
│ ├── eidos_call_signature.h
│ ├── eidos_class_DataFrame.cpp
│ ├── eidos_class_DataFrame.h
│ ├── eidos_class_Dictionary.cpp
│ ├── eidos_class_Dictionary.h
│ ├── eidos_class_Image.cpp
│ ├── eidos_class_Image.h
│ ├── eidos_class_Object.cpp
│ ├── eidos_class_Object.h
│ ├── eidos_class_TestElement.cpp
│ ├── eidos_class_TestElement.h
│ ├── eidos_functions.cpp
│ ├── eidos_functions.h
│ ├── eidos_functions_colors.cpp
│ ├── eidos_functions_distributions.cpp
│ ├── eidos_functions_files.cpp
│ ├── eidos_functions_math.cpp
│ ├── eidos_functions_matrices.cpp
│ ├── eidos_functions_other.cpp
│ ├── eidos_functions_stats.cpp
│ ├── eidos_functions_strings.cpp
│ ├── eidos_functions_values.cpp
│ ├── eidos_globals.cpp
│ ├── eidos_globals.h
│ ├── eidos_interpreter.cpp
│ ├── eidos_interpreter.h
│ ├── eidos_intrusive_ptr.h
│ ├── eidos_object_pool.h
│ ├── eidos_openmp.h
│ ├── eidos_property_signature.cpp
│ ├── eidos_property_signature.h
│ ├── eidos_rng.cpp
│ ├── eidos_rng.h
│ ├── eidos_script.cpp
│ ├── eidos_script.h
│ ├── eidos_simd.h
│ ├── eidos_sorting.cpp
│ ├── eidos_sorting.h
│ ├── eidos_sorting.inc
│ ├── eidos_symbol_table.cpp
│ ├── eidos_symbol_table.h
│ ├── eidos_test.cpp
│ ├── eidos_test.h
│ ├── eidos_test_builtins.h
│ ├── eidos_test_functions_math.cpp
│ ├── eidos_test_functions_other.cpp
│ ├── eidos_test_functions_statistics.cpp
│ ├── eidos_test_functions_vector.cpp
│ ├── eidos_test_operators_arithmetic.cpp
│ ├── eidos_test_operators_comparison.cpp
│ ├── eidos_test_operators_other.cpp
│ ├── eidos_test_parallel.h
│ ├── eidos_tinycolormap.h
│ ├── eidos_token.cpp
│ ├── eidos_token.h
│ ├── eidos_type_interpreter.cpp
│ ├── eidos_type_interpreter.h
│ ├── eidos_type_table.cpp
│ ├── eidos_type_table.h
│ ├── eidos_value.cpp
│ ├── eidos_value.h
│ ├── json.hpp
│ ├── json_fwd.hpp
│ ├── lodepng.cpp
│ ├── lodepng.h
│ ├── pcg_extras.hpp
│ ├── pcg_random.hpp
│ ├── robin_hood.h
│ └── sleef/
│ ├── LICENSE
│ ├── SLEEF_HEADER_GENERATION.md
│ ├── generate_arm_sleef.sh
│ ├── generate_avx2_sleef.sh
│ ├── sleef_config.h
│ ├── sleefinline_advsimd.h
│ └── sleefinline_avx2.h
├── eidos_multi.entitlements
├── eidos_zlib/
│ ├── ChangeLog
│ ├── README
│ ├── adler32.c
│ ├── compress.c
│ ├── crc32.c
│ ├── crc32.h
│ ├── deflate.c
│ ├── deflate.h
│ ├── eidos_zlib.pro
│ ├── gzguts.h
│ ├── gzlib.c
│ ├── gzwrite.c
│ ├── trees.c
│ ├── trees.h
│ ├── zconf.h
│ ├── zlib.h
│ ├── zutil.c
│ └── zutil.h
├── eidostool/
│ └── main.cpp
├── gsl/
│ ├── AUTHORS
│ ├── COPYING
│ ├── README
│ ├── THANKS
│ ├── _README
│ ├── blas/
│ │ ├── blas.c
│ │ ├── gsl_blas.h
│ │ └── gsl_blas_types.h
│ ├── block/
│ │ ├── gsl_block.h
│ │ ├── gsl_block_double.h
│ │ ├── gsl_check_range.h
│ │ ├── init.c
│ │ └── init_source.inc
│ ├── build.h
│ ├── cblas/
│ │ ├── cblas.h
│ │ ├── daxpy.c
│ │ ├── ddot.c
│ │ ├── dgemv.c
│ │ ├── dtrmv.c
│ │ ├── dtrsv.c
│ │ ├── error_cblas.h
│ │ ├── error_cblas_l2.h
│ │ ├── gsl_cblas.h
│ │ ├── source_axpy_r.h
│ │ ├── source_dot_r.h
│ │ ├── source_gemv_r.h
│ │ ├── source_trmv_r.h
│ │ ├── source_trsv_r.h
│ │ └── xerbla.c
│ ├── cdf/
│ │ ├── beta_inc.inc
│ │ ├── gauss.c
│ │ ├── gaussinv.c
│ │ ├── gsl_cdf.h
│ │ ├── rat_eval.h
│ │ └── tdist.c
│ ├── complex/
│ │ ├── gsl_complex.h
│ │ ├── gsl_complex_math.h
│ │ ├── inline.c
│ │ └── math.c
│ ├── config.h
│ ├── err/
│ │ ├── error.c
│ │ ├── gsl_message.h
│ │ ├── message.c
│ │ └── stream.c
│ ├── gsl.pro
│ ├── gsl_errno.h
│ ├── gsl_inline.h
│ ├── gsl_machine.h
│ ├── gsl_math.h
│ ├── gsl_minmax.h
│ ├── gsl_nan.h
│ ├── gsl_pow_int.h
│ ├── gsl_precision.h
│ ├── gsl_types.h
│ ├── gsl_version.h
│ ├── interpolation/
│ │ ├── accel.c
│ │ ├── akima.c
│ │ ├── bicubic.c
│ │ ├── bilinear.c
│ │ ├── cspline.c
│ │ ├── gsl_interp.h
│ │ ├── gsl_interp2d.h
│ │ ├── gsl_spline.h
│ │ ├── gsl_spline2d.h
│ │ ├── inline.c
│ │ ├── integ_eval.h
│ │ ├── interp.c
│ │ ├── interp2d.c
│ │ ├── linear.c
│ │ ├── spline.c
│ │ └── spline2d.c
│ ├── linalg/
│ │ ├── cholesky.c
│ │ ├── gsl_linalg.h
│ │ ├── lu.c
│ │ ├── tridiag.c
│ │ └── tridiag.h
│ ├── matrix/
│ │ ├── copy.c
│ │ ├── copy_source.inc
│ │ ├── gsl_matrix.h
│ │ ├── gsl_matrix_double.h
│ │ ├── init.c
│ │ ├── init_source.inc
│ │ ├── matrix.c
│ │ ├── rowcol.c
│ │ ├── rowcol_source.inc
│ │ ├── submatrix.c
│ │ ├── submatrix_source.inc
│ │ ├── swap.c
│ │ ├── swap_source.inc
│ │ └── view.h
│ ├── permutation/
│ │ ├── gsl_permutation.h
│ │ ├── gsl_permute.h
│ │ ├── gsl_permute_double.h
│ │ ├── gsl_permute_matrix.h
│ │ ├── gsl_permute_matrix_double.h
│ │ ├── gsl_permute_vector.h
│ │ ├── gsl_permute_vector_double.h
│ │ ├── init.c
│ │ ├── permutation.c
│ │ ├── permute.c
│ │ └── permute_source.inc
│ ├── randist/
│ │ ├── beta.c
│ │ ├── binomial_tpe.c
│ │ ├── cauchy.c
│ │ ├── chisq.c
│ │ ├── dirichlet.c
│ │ ├── discrete.c
│ │ ├── exponential.c
│ │ ├── fdist.c
│ │ ├── gamma.c
│ │ ├── gauss.c
│ │ ├── gausszig.c
│ │ ├── geometric.c
│ │ ├── gsl_randist.h
│ │ ├── laplace.c
│ │ ├── lognormal.c
│ │ ├── multinomial.c
│ │ ├── mvgauss.c
│ │ ├── nbinomial.c
│ │ ├── poisson.c
│ │ ├── shuffle.c
│ │ ├── tdist.c
│ │ └── weibull.c
│ ├── rng/
│ │ ├── gsl_rng.h
│ │ ├── inline.c
│ │ ├── mt.c
│ │ ├── rng.c
│ │ └── taus.c
│ ├── specfunc/
│ │ ├── beta.c
│ │ ├── cheb_eval.inc
│ │ ├── chebyshev.h
│ │ ├── check.h
│ │ ├── elementary.c
│ │ ├── erfc.c
│ │ ├── error.h
│ │ ├── eval.h
│ │ ├── exp.c
│ │ ├── expint.c
│ │ ├── gamma.c
│ │ ├── gamma_inc.c
│ │ ├── gsl_sf_elementary.h
│ │ ├── gsl_sf_erf.h
│ │ ├── gsl_sf_exp.h
│ │ ├── gsl_sf_expint.h
│ │ ├── gsl_sf_gamma.h
│ │ ├── gsl_sf_log.h
│ │ ├── gsl_sf_pow_int.h
│ │ ├── gsl_sf_psi.h
│ │ ├── gsl_sf_result.h
│ │ ├── gsl_sf_trig.h
│ │ ├── gsl_sf_zeta.h
│ │ ├── log.c
│ │ ├── pow_int.c
│ │ ├── psi.c
│ │ ├── trig.c
│ │ └── zeta.c
│ ├── sys/
│ │ ├── coerce.c
│ │ ├── fdiv.c
│ │ ├── gsl_sys.h
│ │ ├── infnan.c
│ │ ├── minmax.c
│ │ └── pow_int.c
│ ├── templates_off.h
│ ├── templates_on.h
│ └── vector/
│ ├── copy.c
│ ├── copy_source.inc
│ ├── gsl_vector.h
│ ├── gsl_vector_double.h
│ ├── init.c
│ ├── init_source.inc
│ ├── oper.c
│ ├── oper_source.inc
│ ├── vector.c
│ ├── view.c
│ ├── view.h
│ └── view_source.inc
├── simd_benchmarks/
│ ├── README.md
│ ├── SIMD_BUILD_FLAGS.md
│ ├── benchmark_all_kernels.slim
│ ├── dnorm_benchmark.eidos
│ ├── run_benchmarks.sh
│ ├── simd_benchmark.eidos
│ ├── sleef_benchmark.slim
│ └── slim_benchmark.slim
├── slim_multi.entitlements
├── sonar-project.properties
├── treerec/
│ ├── _README
│ ├── implementation.md
│ ├── tests/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── conda-requirements.txt
│ │ ├── conftest.py
│ │ ├── environment.yml
│ │ ├── init.slim
│ │ ├── init_marked_mutations.slim
│ │ ├── pip-requirements.txt
│ │ ├── recipe_specs.py
│ │ ├── test_consistency.py
│ │ ├── test_metadata_schemas.py
│ │ ├── test_recipes/
│ │ │ ├── dont_test_recapitation.py
│ │ │ ├── dont_test_recapitation.slim
│ │ │ ├── test_000_ancestral_marks.slim
│ │ │ ├── test_000_ongoing_muts.slim
│ │ │ ├── test_000_sexual_WF.slim
│ │ │ ├── test_000_sexual_nonwf.slim
│ │ │ ├── test_000_simple_nonwf.slim
│ │ │ ├── test_000_withdraw_indivs.slim
│ │ │ ├── test_002_quick_neutral.slim
│ │ │ ├── test_004 simple sexual A.slim
│ │ │ ├── test_005 simple sexual X.slim
│ │ │ ├── test_006 simple sexual Y.slim
│ │ │ ├── test_007 cloning and selfing.slim
│ │ │ ├── test_008 cyclical subpop.slim
│ │ │ ├── test_009 linear island.slim
│ │ │ ├── test_013 gene conversion.slim
│ │ │ ├── test_024 gene drive.slim
│ │ │ ├── test_038 pure cloning.slim
│ │ │ ├── test_039 pure selfing.slim
│ │ │ ├── test_040 pure cloning sexual.slim
│ │ │ ├── test_042 haploid clonals.slim
│ │ │ ├── test_097 modeling nucleotides.slim
│ │ │ ├── test_1610_modeling pseudo-autosomal regions.slim
│ │ │ ├── test_169_complex multi-chromosome inheritance.slim
│ │ │ ├── test_831_multiple diploid autosomes.slim
│ │ │ ├── test_832_clonal haploids and chromosome types.slim
│ │ │ ├── test_833_haploids with recombination.slim
│ │ │ ├── test_834_sex-chromosome evolution and null haplosomes.slim
│ │ │ ├── test_836_output from multiple-chromosome models.slim
│ │ │ ├── test_____H-_chromosome.slim
│ │ │ ├── test_____all_the_chromosome_types.slim
│ │ │ ├── test_____all_the_chromosomes.slim
│ │ │ ├── test_____ancestral_marks.slim
│ │ │ ├── test_____multipops.slim
│ │ │ ├── test_____no_generations.slim
│ │ │ ├── test_____pop_names_nondefault.slim
│ │ │ ├── test_____pop_names_pX.slim
│ │ │ ├── test_____remember_individuals.slim
│ │ │ ├── test_____retain_and_remember_individuals.slim
│ │ │ ├── test_____retain_individuals_nonWF.slim
│ │ │ ├── test_____retain_individuals_nonWF_unary.slim
│ │ │ ├── test_____retain_individuals_unary.slim
│ │ │ ├── test_____sexual_WF.slim
│ │ │ ├── test_____sexual_nonwf.slim
│ │ │ ├── test_____simple_none.slim
│ │ │ ├── test_____simple_nonwf.slim
│ │ │ ├── test_____simple_not_perm.slim
│ │ │ ├── test_____simple_perm.slim
│ │ │ └── test_____withdraw_indivs.slim
│ │ └── test_specific_recipes.py
│ └── tskit/
│ ├── convert.c
│ ├── convert.h
│ ├── core.c
│ ├── core.h
│ ├── genotypes.c
│ ├── genotypes.h
│ ├── haplotype_matching.c
│ ├── haplotype_matching.h
│ ├── kastore/
│ │ ├── kastore.c
│ │ └── kastore.h
│ ├── stats.c
│ ├── stats.h
│ ├── tables.c
│ ├── tables.h
│ ├── text_input.c
│ ├── text_input.h
│ ├── trees.c
│ ├── trees.h
│ └── tskit.pro
└── windows_compat/
├── gnulib/
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── aclocal.m4
│ ├── build-aux/
│ │ ├── compile
│ │ ├── config.guess
│ │ ├── config.sub
│ │ ├── depcomp
│ │ ├── install-sh
│ │ └── missing
│ ├── config.h.in
│ ├── configure
│ ├── configure.ac
│ ├── gllib/
│ │ ├── Makefile.am
│ │ ├── Makefile.in
│ │ ├── _Noreturn.h
│ │ ├── arg-nonnull.h
│ │ ├── c++defs.h
│ │ ├── cdefs.h
│ │ ├── errno.in.h
│ │ ├── execinfo.c
│ │ ├── execinfo.in.h
│ │ ├── fd-hook.c
│ │ ├── fd-hook.h
│ │ ├── getdelim.c
│ │ ├── gethostname.c
│ │ ├── getline.c
│ │ ├── gettimeofday.c
│ │ ├── libc-config.h
│ │ ├── limits.in.h
│ │ ├── msvc-inval.c
│ │ ├── msvc-inval.h
│ │ ├── msvc-nothrow.c
│ │ ├── msvc-nothrow.h
│ │ ├── random.c
│ │ ├── random_r.c
│ │ ├── sockets.c
│ │ ├── sockets.h
│ │ ├── stdalign.in.h
│ │ ├── stddef.in.h
│ │ ├── stdint.in.h
│ │ ├── stdio.in.h
│ │ ├── stdlib.in.h
│ │ ├── sys_resource.in.h
│ │ ├── sys_socket.c
│ │ ├── sys_socket.in.h
│ │ ├── sys_stat.in.h
│ │ ├── sys_time.in.h
│ │ ├── sys_types.in.h
│ │ ├── sys_uio.in.h
│ │ ├── sys_utsname.in.h
│ │ ├── time.in.h
│ │ ├── time_r.c
│ │ ├── uname.c
│ │ ├── unistd.c
│ │ ├── unistd.in.h
│ │ ├── w32sock.h
│ │ └── warn-on-use.h
│ └── glm4/
│ ├── 00gnulib.m4
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── __inline.m4
│ ├── absolute-header.m4
│ ├── errno_h.m4
│ ├── execinfo.m4
│ ├── extensions.m4
│ ├── extern-inline.m4
│ ├── getdelim.m4
│ ├── gethostname.m4
│ ├── getline.m4
│ ├── gettimeofday.m4
│ ├── gnulib-common.m4
│ ├── include_next.m4
│ ├── limits-h.m4
│ ├── msvc-inval.m4
│ ├── msvc-nothrow.m4
│ ├── multiarch.m4
│ ├── off_t.m4
│ ├── pid_t.m4
│ ├── random.m4
│ ├── random_r.m4
│ ├── socketlib.m4
│ ├── sockets.m4
│ ├── socklen.m4
│ ├── sockpfaf.m4
│ ├── ssize_t.m4
│ ├── std-gnu11.m4
│ ├── stdalign.m4
│ ├── stddef_h.m4
│ ├── stdint.m4
│ ├── stdio_h.m4
│ ├── stdlib_h.m4
│ ├── sys_resource_h.m4
│ ├── sys_socket_h.m4
│ ├── sys_stat_h.m4
│ ├── sys_time_h.m4
│ ├── sys_types_h.m4
│ ├── sys_uio_h.m4
│ ├── sys_utsname_h.m4
│ ├── time_h.m4
│ ├── time_r.m4
│ ├── uname.m4
│ ├── unistd_h.m4
│ ├── warn-on-use.m4
│ ├── wchar_t.m4
│ ├── wint_t.m4
│ └── zzgnulib.m4
└── notes.txt
Copy disabled (too large)
Download .txt
Showing preview only (45,301K chars total). Download the full file to get everything.
SYMBOL INDEX (6580 symbols across 384 files)
FILE: EidosScribe/EidosAppDelegate.h
function interface (line 35) | interface EidosAppDelegate : NSObject
FILE: EidosScribe/EidosConsoleTextView.h
function interface (line 43) | interface EidosConsoleTextView : EidosTextView
FILE: EidosScribe/EidosConsoleWindowController.h
function interface (line 51) | interface EidosConsoleWindowController : NSObject
FILE: EidosScribe/EidosHelpController.h
function interface (line 30) | interface EidosHelpController : NSObject
FILE: EidosScribe/EidosPrettyprinter.h
function interface (line 28) | interface EidosPrettyprinter : NSObject
FILE: EidosScribe/EidosTextView.h
type EidosSyntaxColoringOption (line 41) | typedef enum EidosSyntaxColoringOption
function interface (line 49) | interface EidosTextView : NSTextView
FILE: EidosScribe/EidosTextViewDelegate.h
type class (line 44) | enum class
FILE: EidosScribe/EidosValueWrapper.h
function interface (line 61) | interface EidosValueWrapper : NSObject
FILE: EidosScribe/EidosVariableBrowserController.h
function interface (line 48) | interface EidosVariableBrowserController : NSObject
FILE: QtSLiM/QtSLiMAbout.h
function namespace (line 25) | namespace Ui {
function class (line 29) | class QtSLiMAbout : public QDialog
FILE: QtSLiM/QtSLiMAppDelegate.cpp
function QtSLiM_MessageHandler (line 120) | void QtSLiM_MessageHandler(QtMsgType type, const QMessageLogContext &con...
function QtSLiMWindow (line 337) | QtSLiMWindow *QtSLiMAppDelegate::findMainWindow(const QString &fileName)...
function QtSLiMWindow (line 369) | QtSLiMWindow *QtSLiMAppDelegate::open(QtSLiMWindow *requester)
function QtSLiMWindow (line 392) | QtSLiMWindow *QtSLiMAppDelegate::openFile(const QString &fileName, QtSLi...
function QString (line 580) | static inline QString recentFilesKey() { return QStringLiteral("QtSLiMRe...
function QString (line 581) | static inline QString fileKey() { return QStringLiteral("file"); }
function QStringList (line 583) | static QStringList readRecentFiles(QSettings &settings)
function writeRecentFiles (line 595) | static void writeRecentFiles(const QStringList &files, QSettings &settings)
function flagsAndKey (line 883) | static int flagsAndKey(int modifiers, int keys)
function flagsAndKey (line 889) | static int flagsAndKey(int modifiers, int keys)
function QtSLiMWindow (line 1229) | QtSLiMWindow *QtSLiMAppDelegate::dispatchQtSLiMWindowFromSecondaries(void)
function QWidget (line 1280) | QWidget *QtSLiMAppDelegate::globalImageWindowWithPath(const QString &pat...
function QtSLiMWindow (line 1976) | QtSLiMWindow *QtSLiMAppDelegate::activeQtSLiMWindow(void)
function QWidget (line 2011) | QWidget *QtSLiMAppDelegate::activeWindow(void)
function QWidget (line 2017) | QWidget *QtSLiMAppDelegate::activeWindowExcluding(QWidget *excluded)
function Eidos_Beep_QT (line 2039) | std::string Eidos_Beep_QT(const std::string &__attribute__((__unused__))...
FILE: QtSLiM/QtSLiMAppDelegate.h
function class (line 39) | class QtSLiMAppDelegate : public QObject
FILE: QtSLiM/QtSLiMChromosomeWidget.cpp
function Species (line 102) | Species *QtSLiMChromosomeWidgetController::focalDisplaySpecies(void)
function Species (line 578) | Species *QtSLiMChromosomeWidget::focalDisplaySpecies(void)
function Chromosome (line 624) | Chromosome *QtSLiMChromosomeWidget::focalChromosome(void)
function QRect (line 732) | QRect QtSLiMChromosomeWidget::rectEncompassingBaseToBase(slim_position_t...
function slim_position_t (line 756) | slim_position_t QtSLiMChromosomeWidget::baseForPosition(double position,...
function QRect (line 764) | QRect QtSLiMChromosomeWidget::getContentRect(void)
function QtSLiMRange (line 780) | QtSLiMRange QtSLiMChromosomeWidget::getSelectedRange(Chromosome *chromos...
function QtSLiMRange (line 855) | QtSLiMRange QtSLiMChromosomeWidget::getDisplayedRange(Chromosome *chromo...
function Chromosome (line 1500) | Chromosome *QtSLiMChromosomeWidget::_findFocalChromosomeForTracking(QMou...
FILE: QtSLiM/QtSLiMChromosomeWidget.h
type QtSLiMRange (line 46) | struct QtSLiMRange
function colorForGenomicElementType (line 92) | void colorForGenomicElementType(GenomicElementType *elementType, slim_ob...
function QtSLiMWindow (line 94) | QtSLiMWindow *slimWindow(void) { return slimWindow_; }
function virtual (line 152) | virtual ~QtSLiMChromosomeWidget() override;
function showsTicks (line 171) | bool showsTicks(void) { return showsTicks_; }
function virtual (line 179) | virtual void initializeGL() override;
function shouldDrawFixedSubstitutions (line 237) | inline bool shouldDrawFixedSubstitutions(void) const { return isOverview...
function shouldDrawGenomicElements (line 238) | inline bool shouldDrawGenomicElements(void) const { return isOverview_ ?...
function shouldDrawRateMaps (line 239) | inline bool shouldDrawRateMaps(void) const { return isOverview_ ? false ...
function displayHaplotypes (line 240) | inline bool displayHaplotypes(void) const { return isOverview_ ? false :...
function std (line 241) | inline std::vector<slim_objectid_t> &displayMuttypes(void) const { retur...
FILE: QtSLiM/QtSLiMConsoleTextEdit.cpp
function QTextCharFormat (line 70) | QTextCharFormat QtSLiMConsoleTextEdit::textFormatForColor(QColor color)
function QString (line 265) | QString QtSLiMConsoleTextEdit::currentCommandAtPrompt(void)
function QString (line 318) | QString QtSLiMConsoleTextEdit::fullInputString(void)
FILE: QtSLiM/QtSLiMConsoleTextEdit.h
function class (line 31) | class QtSLiMConsoleTextEdit : public QtSLiMTextEdit
FILE: QtSLiM/QtSLiMDebugOutputWindow.cpp
function QTableWidget (line 232) | QTableWidget *QtSLiMDebugOutputWindow::logFileTableForPath(const std::st...
function EidosValue_SP (line 595) | EidosValue_SP QtSLiMDebugOutputWindow::dataForColumn(LogFile *logFile, i...
function EidosValue_SP (line 680) | EidosValue_SP QtSLiMDebugOutputWindow::dataForColumn(LogFile *logFile, c...
FILE: QtSLiM/QtSLiMDebugOutputWindow.h
function namespace (line 39) | namespace Ui {
function class (line 43) | class QtSLiMDebugOutputWindow : public QWidget
FILE: QtSLiM/QtSLiMEidosConsole.cpp
function QStatusBar (line 206) | QStatusBar *QtSLiMEidosConsole::statusBar(void)
function QtSLiMScriptTextEdit (line 211) | QtSLiMScriptTextEdit *QtSLiMEidosConsole::scriptTextEdit(void)
function QtSLiMConsoleTextEdit (line 216) | QtSLiMConsoleTextEdit *QtSLiMEidosConsole::consoleTextEdit(void)
function QtSLiMVariableBrowser (line 221) | QtSLiMVariableBrowser *QtSLiMEidosConsole::variableBrowser(void)
function QString (line 275) | QString QtSLiMEidosConsole::_executeScriptString(QString scriptString, Q...
FILE: QtSLiM/QtSLiMEidosConsole.h
function namespace (line 41) | namespace Ui {
function class (line 45) | class QtSLiMEidosConsole : public QWidget
FILE: QtSLiM/QtSLiMEidosPrettyprinter.cpp
function Eidos_indentForStack (line 33) | static int Eidos_indentForStack(std::vector<const EidosToken *> &indentS...
function Eidos_prettyprintTokensFromScript (line 100) | bool Eidos_prettyprintTokensFromScript(const std::vector<EidosToken> &to...
function EidosToken (line 389) | static inline const EidosToken &NextSignificantToken(const std::vector<E...
function EidosToken (line 408) | static inline const EidosToken &PreviousSignificantToken(const std::vect...
function EmitWhitespace (line 427) | static inline void EmitWhitespace(bool &forceSpace, int &forceNewlineCou...
function Eidos_reformatTokensFromScript (line 446) | bool Eidos_reformatTokensFromScript(const std::vector<EidosToken> &token...
FILE: QtSLiM/QtSLiMExtras.cpp
function QtSLiMIsMostlyOnScreen (line 59) | bool QtSLiMIsMostlyOnScreen(QWidget *window)
function QtSLiMRelocateQuietly (line 77) | void QtSLiMRelocateQuietly(QWidget *window)
function QtSLiMMakeWindowVisibleAndExposed (line 89) | void QtSLiMMakeWindowVisibleAndExposed(QWidget *window)
function QtSLiMClearLayout (line 163) | void QtSLiMClearLayout(QLayout *layout, bool deleteWidgets)
function QtSLiMFrameRect (line 180) | void QtSLiMFrameRect(const QRect &p_rect, const QColor &p_color, QPainte...
function QtSLiMFrameRect (line 188) | void QtSLiMFrameRect(const QRectF &p_rect, const QColor &p_color, QPaint...
function QColor (line 196) | QColor QtSLiMColorWithWhite(double p_white, double p_alpha)
function QColor (line 203) | QColor QtSLiMColorWithRGB(double p_red, double p_green, double p_blue, d...
function QColor (line 210) | QColor QtSLiMColorWithHSV(double p_hue, double p_saturation, double p_va...
function QtSLiMInDarkMode (line 218) | bool QtSLiMInDarkMode(void)
function QString (line 228) | QString QtSLiMImagePath(QString baseName, bool highlighted)
function RGBForFitness (line 246) | void RGBForFitness(double value, float *colorRed, float *colorGreen, flo...
function RGBForSelectionCoeff (line 281) | void RGBForSelectionCoeff(double value, float *colorRed, float *colorGre...
function ColorizePropertySignature (line 595) | void ColorizePropertySignature(const EidosPropertySignature *property_si...
function ColorizeCallSignature (line 629) | void ColorizeCallSignature(const EidosCallSignature *call_signature, dou...
function QSize (line 794) | QSize QtSLiMPlayControlsLayout::sizeHint() const
function QSize (line 816) | QSize QtSLiMPlayControlsLayout::minimumSize() const
function QColor (line 874) | QColor slimColorForFraction(double fraction)
function QString (line 890) | QString stringForByteCount(uint64_t bytes)
function QString (line 904) | QString attributedStringForByteCount(uint64_t bytes, double total, QText...
function QString (line 916) | QString slimDateline(void)
function QStringList (line 927) | QStringList QtSLiMRunLineEditArrayDialog(QWidget *p_parent, QString titl...
function QIcon (line 1209) | QIcon *QtSLiMPushButton::qtslimIconForState(bool highlighted, bool darkM...
function QPixmap (line 1426) | QPixmap QtSLiMDarkenPixmap(QPixmap p_pixmap)
function QPalette (line 1442) | static QPalette QtSLiMFlashPalette(QPlainTextEdit *te)
function QtSLiMFlashHighlightInTextEdit (line 1452) | void QtSLiMFlashHighlightInTextEdit(QPlainTextEdit *te)
function QSize (line 1485) | QSize QtSLiMEllipsisLabel::minimumSizeHint() const
function EidosNaturalSort (line 1517) | bool EidosNaturalSort(QString &a, QString &b)
FILE: QtSLiM/QtSLiMExtras.h
type QtSLiM_LegendPosition (line 50) | typedef enum {
function class (line 77) | class QtSLiMColorScaleWidget : public QWidget
function class (line 97) | class QtSLiMGenerationLineEdit : public QLineEdit
FILE: QtSLiM/QtSLiMFindPanel.cpp
function QtSLiMFindPanel (line 37) | QtSLiMFindPanel &QtSLiMFindPanel::instance(void)
function QPlainTextEdit (line 140) | QPlainTextEdit *QtSLiMFindPanel::targetTextEditRequireModifiable(bool re...
FILE: QtSLiM/QtSLiMFindPanel.h
function namespace (line 29) | namespace Ui {
function class (line 33) | class QtSLiMFindPanel : public QDialog
FILE: QtSLiM/QtSLiMFindRecipe.cpp
function QStringList (line 80) | QStringList QtSLiMFindRecipe::selectedRecipeFilenames(void)
function QString (line 124) | QString QtSLiMFindRecipe::displayStringForRecipeFilename(const QString &...
FILE: QtSLiM/QtSLiMFindRecipe.h
function namespace (line 28) | namespace Ui {
function class (line 32) | class QtSLiMFindRecipe : public QDialog
FILE: QtSLiM/QtSLiMGraphView.cpp
function QFont (line 53) | QFont QtSLiMGraphView::labelFontOfPointSize(double size)
function Species (line 181) | Species *QtSLiMGraphView::focalDisplaySpecies(void)
function QHBoxLayout (line 250) | QHBoxLayout *QtSLiMGraphView::buttonLayout(void)
function QPushButton (line 266) | QPushButton *QtSLiMGraphView::actionButton(void)
function QComboBox (line 278) | QComboBox *QtSLiMGraphView::newButtonInLayout(QHBoxLayout *p_layout)
function QRect (line 289) | QRect QtSLiMGraphView::interiorRectForBounds(QRect bounds)
function QString (line 385) | QString QtSLiMGraphView::labelTextForTick(double tickValue, int tickValu...
function QtSLiMLegendSpec (line 859) | QtSLiMLegendSpec QtSLiMGraphView::legendKey(void)
function QSizeF (line 923) | QSizeF QtSLiMGraphView::legendSize(QPainter &painter)
function QString (line 1402) | QString QtSLiMGraphView::stringForData(void)
function QString (line 1431) | QString QtSLiMGraphView::disableMessage(void)
function QtSLiMLegendSpec (line 1927) | QtSLiMLegendSpec QtSLiMGraphView::subpopulationLegendKey(std::vector<sli...
function QtSLiMLegendSpec (line 1955) | QtSLiMLegendSpec QtSLiMGraphView::mutationTypeLegendKey(void)
FILE: QtSLiM/QtSLiMGraphView.h
type class (line 44) | enum class
function class (line 52) | class QtSLiMLegendEntry {
type std (line 91) | typedef std::vector<QtSLiMLegendEntry> QtSLiMLegendSpec;
function class (line 94) | class QtSLiMGraphView : public QWidget
FILE: QtSLiM/QtSLiMGraphView_1DPopulationSFS.cpp
function QString (line 50) | QString QtSLiMGraphView_1DPopulationSFS::graphTitle(void)
function QString (line 55) | QString QtSLiMGraphView_1DPopulationSFS::aboutString(void)
function QtSLiMLegendSpec (line 150) | QtSLiMLegendSpec QtSLiMGraphView_1DPopulationSFS::legendKey(void)
FILE: QtSLiM/QtSLiMGraphView_1DPopulationSFS.h
function class (line 28) | class QtSLiMGraphView_1DPopulationSFS : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_1DSampleSFS.cpp
function QString (line 145) | QString QtSLiMGraphView_1DSampleSFS::graphTitle(void)
function QString (line 150) | QString QtSLiMGraphView_1DSampleSFS::aboutString(void)
function QString (line 182) | QString QtSLiMGraphView_1DSampleSFS::disableMessage(void)
FILE: QtSLiM/QtSLiMGraphView_1DSampleSFS.h
function class (line 28) | class QtSLiMGraphView_1DSampleSFS : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_2DPopulationSFS.cpp
function QString (line 139) | QString QtSLiMGraphView_2DPopulationSFS::graphTitle(void)
function QString (line 144) | QString QtSLiMGraphView_2DPopulationSFS::aboutString(void)
function QString (line 170) | QString QtSLiMGraphView_2DPopulationSFS::disableMessage(void)
FILE: QtSLiM/QtSLiMGraphView_2DPopulationSFS.h
function class (line 28) | class QtSLiMGraphView_2DPopulationSFS : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_2DSampleSFS.cpp
function QString (line 171) | QString QtSLiMGraphView_2DSampleSFS::graphTitle(void)
function QString (line 176) | QString QtSLiMGraphView_2DSampleSFS::aboutString(void)
function QString (line 212) | QString QtSLiMGraphView_2DSampleSFS::disableMessage(void)
FILE: QtSLiM/QtSLiMGraphView_2DSampleSFS.h
function class (line 28) | class QtSLiMGraphView_2DSampleSFS : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_AgeDistribution.cpp
function QString (line 130) | QString QtSLiMGraphView_AgeDistribution::graphTitle(void)
function QString (line 135) | QString QtSLiMGraphView_AgeDistribution::aboutString(void)
function QString (line 154) | QString QtSLiMGraphView_AgeDistribution::disableMessage(void)
function QtSLiMLegendSpec (line 218) | QtSLiMLegendSpec QtSLiMGraphView_AgeDistribution::legendKey(void)
FILE: QtSLiM/QtSLiMGraphView_AgeDistribution.h
function class (line 28) | class QtSLiMGraphView_AgeDistribution : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_CustomPlot.cpp
function QString (line 667) | QString QtSLiMGraphView_CustomPlot::graphTitle(void)
function QString (line 672) | QString QtSLiMGraphView_CustomPlot::aboutString(void)
function QtSLiMLegendSpec (line 725) | QtSLiMLegendSpec QtSLiMGraphView_CustomPlot::legendKey(void)
function QString (line 738) | QString QtSLiMGraphView_CustomPlot::disableMessage(void)
FILE: QtSLiM/QtSLiMGraphView_CustomPlot.h
type class (line 32) | enum class
function class (line 45) | class QtSLiMGraphView_CustomPlot : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_FitnessOverTime.cpp
function QString (line 99) | QString QtSLiMGraphView_FitnessOverTime::graphTitle(void)
function QString (line 104) | QString QtSLiMGraphView_FitnessOverTime::aboutString(void)
function QtSLiMLegendSpec (line 412) | QtSLiMLegendSpec QtSLiMGraphView_FitnessOverTime::legendKey(void)
FILE: QtSLiM/QtSLiMGraphView_FitnessOverTime.h
function class (line 30) | class QtSLiMGraphView_FitnessOverTime : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_FixationTimeHistogram.cpp
function QString (line 54) | QString QtSLiMGraphView_FixationTimeHistogram::graphTitle(void)
function QString (line 59) | QString QtSLiMGraphView_FixationTimeHistogram::aboutString(void)
function QtSLiMLegendSpec (line 135) | QtSLiMLegendSpec QtSLiMGraphView_FixationTimeHistogram::legendKey(void)
FILE: QtSLiM/QtSLiMGraphView_FixationTimeHistogram.h
function class (line 28) | class QtSLiMGraphView_FixationTimeHistogram : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_FrequencyTrajectory.cpp
function QString (line 320) | QString QtSLiMGraphView_FrequencyTrajectory::graphTitle(void)
function QString (line 325) | QString QtSLiMGraphView_FrequencyTrajectory::aboutString(void)
function QString (line 353) | QString QtSLiMGraphView_FrequencyTrajectory::disableMessage(void)
function QtSLiMLegendSpec (line 474) | QtSLiMLegendSpec QtSLiMGraphView_FrequencyTrajectory::legendKey(void)
FILE: QtSLiM/QtSLiMGraphView_FrequencyTrajectory.h
function virtual (line 40) | virtual ~QtSLiMGraphView_FrequencyTrajectory() override;
FILE: QtSLiM/QtSLiMGraphView_LifetimeReproduction.cpp
function QString (line 130) | QString QtSLiMGraphView_LifetimeReproduction::graphTitle(void)
function QString (line 135) | QString QtSLiMGraphView_LifetimeReproduction::aboutString(void)
function QString (line 153) | QString QtSLiMGraphView_LifetimeReproduction::disableMessage(void)
function QtSLiMLegendSpec (line 214) | QtSLiMLegendSpec QtSLiMGraphView_LifetimeReproduction::legendKey(void)
FILE: QtSLiM/QtSLiMGraphView_LifetimeReproduction.h
function class (line 28) | class QtSLiMGraphView_LifetimeReproduction : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_LossTimeHistogram.cpp
function QString (line 54) | QString QtSLiMGraphView_LossTimeHistogram::graphTitle(void)
function QString (line 59) | QString QtSLiMGraphView_LossTimeHistogram::aboutString(void)
function QtSLiMLegendSpec (line 132) | QtSLiMLegendSpec QtSLiMGraphView_LossTimeHistogram::legendKey(void)
FILE: QtSLiM/QtSLiMGraphView_LossTimeHistogram.h
function class (line 28) | class QtSLiMGraphView_LossTimeHistogram : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_MultispeciesPopSizeOverTime.cpp
function QString (line 102) | QString QtSLiMGraphView_MultispeciesPopSizeOverTime::graphTitle(void)
function QString (line 107) | QString QtSLiMGraphView_MultispeciesPopSizeOverTime::aboutString(void)
function QtSLiMLegendSpec (line 380) | QtSLiMLegendSpec QtSLiMGraphView_MultispeciesPopSizeOverTime::legendKey(...
FILE: QtSLiM/QtSLiMGraphView_MultispeciesPopSizeOverTime.h
function class (line 30) | class QtSLiMGraphView_MultispeciesPopSizeOverTime : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_PopFitnessDist.cpp
function QString (line 59) | QString QtSLiMGraphView_PopFitnessDist::graphTitle(void)
function QString (line 64) | QString QtSLiMGraphView_PopFitnessDist::aboutString(void)
FILE: QtSLiM/QtSLiMGraphView_PopFitnessDist.h
function class (line 28) | class QtSLiMGraphView_PopFitnessDist : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_PopSizeOverTime.cpp
function QString (line 99) | QString QtSLiMGraphView_PopSizeOverTime::graphTitle(void)
function QString (line 104) | QString QtSLiMGraphView_PopSizeOverTime::aboutString(void)
function QtSLiMLegendSpec (line 372) | QtSLiMLegendSpec QtSLiMGraphView_PopSizeOverTime::legendKey(void)
FILE: QtSLiM/QtSLiMGraphView_PopSizeOverTime.h
function class (line 30) | class QtSLiMGraphView_PopSizeOverTime : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_PopulationVisualization.cpp
function QString (line 52) | QString QtSLiMGraphView_PopulationVisualization::graphTitle(void)
function QString (line 57) | QString QtSLiMGraphView_PopulationVisualization::aboutString(void)
function QRectF (line 66) | QRectF QtSLiMGraphView_PopulationVisualization::rectForSubpop(Subpopulat...
function is_line_intersection (line 248) | static bool is_line_intersection(double p0_x, double p0_y, double p1_x, ...
FILE: QtSLiM/QtSLiMGraphView_PopulationVisualization.h
function class (line 28) | class QtSLiMGraphView_PopulationVisualization : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMGraphView_SubpopFitnessDists.cpp
function QString (line 60) | QString QtSLiMGraphView_SubpopFitnessDists::graphTitle(void)
function QString (line 65) | QString QtSLiMGraphView_SubpopFitnessDists::aboutString(void)
function QtSLiMLegendSpec (line 221) | QtSLiMLegendSpec QtSLiMGraphView_SubpopFitnessDists::legendKey(void)
FILE: QtSLiM/QtSLiMGraphView_SubpopFitnessDists.h
function class (line 30) | class QtSLiMGraphView_SubpopFitnessDists : public QtSLiMGraphView
FILE: QtSLiM/QtSLiMHaplotypeManager.cpp
function Species (line 416) | Species *QtSLiMHaplotypeManager::focalDisplaySpecies(void)
FILE: QtSLiM/QtSLiMHaplotypeManager.h
function class (line 51) | class QtSLiMHaplotypeManager : public QObject
function class (line 173) | class QtSLiMHaplotypeView : public QWidget
function class (line 213) | class QtSLiMHaplotypeTopView : public QWidget
FILE: QtSLiM/QtSLiMHaplotypeOptions.h
function namespace (line 28) | namespace Ui {
function class (line 32) | class QtSLiMHaplotypeOptions : public QDialog
FILE: QtSLiM/QtSLiMHaplotypeProgress.h
function namespace (line 26) | namespace Ui {
function class (line 30) | class QtSLiMHaplotypeProgress : public QDialog
FILE: QtSLiM/QtSLiMHelpWindow.cpp
function QVariant (line 57) | QVariant QtSLiMHelpItem::data(int column, int role) const
function QtSLiMHelpWindow (line 220) | QtSLiMHelpWindow &QtSLiMHelpWindow::instance(void)
function QTreeWidgetItem (line 545) | QTreeWidgetItem *QtSLiMHelpWindow::parentItemForSection(const QString &s...
function QtSLiMHelpItem (line 572) | QtSLiMHelpItem *QtSLiMHelpWindow::createItemForSection(const QString &se...
function QtSLiMHelpItem (line 1226) | QtSLiMHelpItem *QtSLiMHelpWindow::findObjectWithKeySuffix(const QString ...
function QtSLiMHelpItem (line 1254) | QtSLiMHelpItem *QtSLiMHelpWindow::findObjectForKeyEqualTo(const QString ...
FILE: QtSLiM/QtSLiMHelpWindow.h
function class (line 43) | class QtSLiMHelpItem : public QTreeWidgetItem
type QMap (line 75) | typedef QMap<QString, QtSLiMHelpItem *> QtSLiMTopicMap;
function namespace (line 80) | namespace Ui {
function class (line 84) | class QtSLiMHelpWindow : public QWidget
FILE: QtSLiM/QtSLiMIndividualsWidget.cpp
function PopulationViewDisplayMode (line 393) | PopulationViewDisplayMode QtSLiMIndividualsWidget::displayModeForSubpopu...
function QRect (line 565) | QRect QtSLiMIndividualsWidget::spatialDisplayBoundsForSubpopulation(Subp...
FILE: QtSLiM/QtSLiMIndividualsWidget.h
type PopulationViewSettings (line 40) | typedef struct {
type PopulationViewDisplayMode (line 46) | typedef enum {
function class (line 55) | class QtSLiMIndividualsWidget : public QWidget
FILE: QtSLiM/QtSLiMOpenGL.cpp
function QtSLiM_AllocateGLBuffers (line 29) | void QtSLiM_AllocateGLBuffers(void)
function QtSLiM_FreeGLBuffers (line 38) | void QtSLiM_FreeGLBuffers(void)
FILE: QtSLiM/QtSLiMPopulationTable.cpp
function QVariant (line 53) | QVariant QtSLiMPopulationTableModel::data(const QModelIndex &p_index, in...
function QVariant (line 173) | QVariant QtSLiMPopulationTableModel::headerData(int section,
FILE: QtSLiM/QtSLiMPopulationTable.h
function class (line 31) | class QtSLiMPopulationTableModel : public QAbstractTableModel
function class (line 55) | class QtSLiMPopulationTableHeaderView : public QHeaderView
FILE: QtSLiM/QtSLiMPreferences.cpp
function QFont (line 52) | static QFont &defaultDisplayFont(void)
function QtSLiMPreferencesNotifier (line 90) | QtSLiMPreferencesNotifier &QtSLiMPreferencesNotifier::instance(void)
function QFont (line 151) | QFont QtSLiMPreferencesNotifier::displayFontPref(double *tabWidth) const
function QtSLiMPreferences (line 456) | QtSLiMPreferences *QtSLiMPreferences::instanceForcingAllocation(bool for...
function QtSLiMPreferences (line 466) | QtSLiMPreferences &QtSLiMPreferences::instance(void)
FILE: QtSLiM/QtSLiMPreferences.h
function class (line 29) | class QtSLiMPreferencesNotifier : public QObject
function namespace (line 101) | namespace Ui {
function class (line 105) | class QtSLiMPreferences : public QDialog
FILE: QtSLiM/QtSLiMScriptTextEdit.cpp
function QPalette (line 239) | QPalette QtSLiMTextEdit::qtslimStandardPalette(void)
function QPalette (line 245) | QPalette QtSLiMTextEdit::qtslimErrorPalette(void)
function QStatusBar (line 255) | QStatusBar *QtSLiMTextEdit::statusBarForWindow(void)
function QtSLiMWindow (line 271) | QtSLiMWindow *QtSLiMTextEdit::slimControllerForWindow(void)
function QtSLiMEidosConsole (line 286) | QtSLiMEidosConsole *QtSLiMTextEdit::slimEidosConsoleForWindow(void)
function EidosFunctionSignature_CSP (line 710) | EidosFunctionSignature_CSP QtSLiMTextEdit::signatureForFunctionName(QStr...
function EidosMethodSignature_CSP (line 727) | EidosMethodSignature_CSP QtSLiMTextEdit::signatureForMethodName(QString ...
function EidosFunctionMap (line 746) | EidosFunctionMap *QtSLiMTextEdit::functionMapForScriptString(QString scr...
function EidosFunctionMap (line 759) | EidosFunctionMap *QtSLiMTextEdit::functionMapForTokenizedScript(EidosScr...
function EidosSymbolTable (line 806) | EidosSymbolTable *QtSLiMTextEdit::symbolsFromBaseSymbols(EidosSymbolTabl...
function EidosCallSignature_CSP (line 829) | EidosCallSignature_CSP QtSLiMTextEdit::signatureForScriptSelection(QStri...
function QStringList (line 1309) | QStringList QtSLiMTextEdit::completionsForPartialWordRange(NSRange __att...
function NSRange (line 1319) | NSRange QtSLiMTextEdit::rangeForUserCompletion(void)
function QStringList (line 1329) | QStringList QtSLiMTextEdit::globalCompletionsWithTypesFunctionsKeywordsA...
function QStringList (line 1379) | QStringList QtSLiMTextEdit::completionsForKeyPathEndingInTokenIndexOfTok...
function QStringList (line 1721) | QStringList QtSLiMTextEdit::completionsFromArrayMatchingBase(QStringList...
function QStringList (line 1767) | QStringList QtSLiMTextEdit::completionsForTokenStream(const std::vector<...
function QStringList (line 1906) | QStringList QtSLiMTextEdit::uniquedArgumentNameCompletions(std::vector<s...
class LineNumberArea (line 2528) | class LineNumberArea : public QWidget
method QSize (line 2533) | virtual QSize sizeHint() const override { return QSize(codeEditor->lin...
method paintEvent (line 2537) | virtual void paintEvent(QPaintEvent *p_paintEvent) override { codeEdit...
method mousePressEvent (line 2538) | virtual void mousePressEvent(QMouseEvent *p_mouseEvent) override { cod...
method mouseMoveEvent (line 2539) | virtual void mouseMoveEvent(QMouseEvent *p_mouseEvent) override { code...
method mouseReleaseEvent (line 2540) | virtual void mouseReleaseEvent(QMouseEvent *p_mouseEvent) override { c...
method contextMenuEvent (line 2541) | virtual void contextMenuEvent(QContextMenuEvent *p_event) override { c...
method wheelEvent (line 2542) | virtual void wheelEvent(QWheelEvent *p_wheelEvent) override { codeEdit...
function QStringList (line 2632) | QStringList QtSLiMScriptTextEdit::linesForRoundedSelection(QTextCursor &...
function QString (line 3537) | QString QtSLiMScriptTextEdit::exportAsHtml(void)
FILE: QtSLiM/QtSLiMScriptTextEdit.h
type NSRange (line 49) | typedef struct _NSRange {
function class (line 60) | class QtSLiMTextEdit : public QPlainTextEdit
function class (line 184) | class QtSLiMScriptTextEdit : public QtSLiMTextEdit
FILE: QtSLiM/QtSLiMSyntaxHighlighting.h
function class (line 33) | class QtSLiMOutputHighlighter : public QSyntaxHighlighter
function class (line 63) | class QtSLiMScriptHighlighter : public QSyntaxHighlighter
FILE: QtSLiM/QtSLiMTablesDrawer.cpp
function QImage (line 53) | static QImage imageForMutationOrInteractionType(MutationType *mut_type, ...
function QHeaderView (line 364) | QHeaderView *QtSLiMTablesDrawer::configureTableView(QTableView *tableView)
function QVariant (line 520) | QVariant QtSLiMMutTypeTableModel::data(const QModelIndex &p_index, int r...
function QVariant (line 657) | QVariant QtSLiMMutTypeTableModel::headerData(int section,
function QVariant (line 731) | QVariant QtSLiMGETypeTypeTableModel::data(const QModelIndex &p_index, in...
function QVariant (line 807) | QVariant QtSLiMGETypeTypeTableModel::headerData(int section,
function QVariant (line 877) | QVariant QtSLiMInteractionTypeTableModel::data(const QModelIndex &p_inde...
function QVariant (line 995) | QVariant QtSLiMInteractionTypeTableModel::headerData(int section,
function QVariant (line 1067) | QVariant QtSLiMEidosBlockTableModel::data(const QModelIndex &p_index, in...
function QVariant (line 1193) | QVariant QtSLiMEidosBlockTableModel::headerData(int section,
FILE: QtSLiM/QtSLiMTablesDrawer.h
function namespace (line 38) | namespace Ui {
function class (line 42) | class QtSLiMTablesDrawer : public QWidget
function virtual (line 134) | virtual ~QtSLiMEidosBlockTableModel() override;
FILE: QtSLiM/QtSLiMVariableBrowser.cpp
function QVariant (line 113) | QVariant QtSLiMBrowserItem::data(int column, int role) const
FILE: QtSLiM/QtSLiMVariableBrowser.h
function class (line 35) | class QtSLiMBrowserItem : public QTreeWidgetItem
function class (line 59) | class QtSLiMVariableBrowserDelegate : public QStyledItemDelegate
function namespace (line 71) | namespace Ui {
function class (line 75) | class QtSLiMVariableBrowser : public QWidget
FILE: QtSLiM/QtSLiMWindow.cpp
function defaultWFScriptString (line 106) | static std::string defaultWFScriptString(void)
function defaultWFScriptString_NC (line 135) | static std::string defaultWFScriptString_NC(void)
function defaultNonWFScriptString (line 153) | static std::string defaultNonWFScriptString(void)
function defaultNonWFScriptString_NC (line 190) | static std::string defaultNonWFScriptString_NC(void)
type stat (line 358) | struct stat
function QtSLiMScriptTextEdit (line 867) | QtSLiMScriptTextEdit *QtSLiMWindow::scriptTextEdit(void)
function QtSLiMTextEdit (line 872) | QtSLiMTextEdit *QtSLiMWindow::outputTextEdit(void)
function QtSLiMGraphView (line 983) | QtSLiMGraphView *QtSLiMWindow::graphViewWithTitle(QString title)
function QColor (line 1027) | const QColor &QtSLiMWindow::blackContrastingColorForIndex(int index)
function QColor (line 1046) | const QColor &QtSLiMWindow::whiteContrastingColorForIndex(int index)
function QColor (line 1096) | QColor QtSLiMWindow::qcolorForSpecies(Species *species)
function Species (line 2309) | Species *QtSLiMWindow::focalDisplaySpecies(void)
function Chromosome (line 2350) | Chromosome *QtSLiMWindow::focalChromosome(void)
function QtSLiMGraphView (line 2403) | QtSLiMGraphView *QtSLiMWindow::graphViewForGraphWindow(QWidget *p_window)
function EidosValue_SP (line 4872) | EidosValue_SP QtSLiMWindow::eidos_logFileData(LogFile *logFile, EidosVal...
function QtSLiMGraphView_CustomPlot (line 4910) | QtSLiMGraphView_CustomPlot *QtSLiMWindow::eidos_createPlot(QString title...
function QtSLiMGraphView_CustomPlot (line 5008) | QtSLiMGraphView_CustomPlot *QtSLiMWindow::eidos_plotWithTitle(QString ti...
function rectIsOnscreen (line 6115) | static bool rectIsOnscreen(QRect windowRect)
function QWidget (line 6248) | QWidget *QtSLiMWindow::imageWindowWithPath(const QString &path)
function QWidget (line 6365) | QWidget *QtSLiMWindow::graphWindowWithView(QtSLiMGraphView *graphView, d...
function QWidget (line 6651) | QWidget *QtSLiMWindow::newChromosomeDisplay(std::string chromosome_symbo...
FILE: QtSLiM/QtSLiMWindow.h
function namespace (line 61) | namespace Ui {
function class (line 65) | class QtSLiMWindow : public QMainWindow
FILE: QtSLiM/QtSLiM_Plot.cpp
function EidosClass (line 60) | const EidosClass *Plot::Class(void) const
function EidosValue_SP (line 70) | EidosValue_SP Plot::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue_SP (line 101) | EidosValue_SP Plot::ExecuteInstanceMethod(EidosGlobalStringID p_method_i...
function EidosValue_SP (line 128) | EidosValue_SP Plot::ExecuteMethod_abline(EidosGlobalStringID p_method_id...
function EidosValue_SP (line 263) | EidosValue_SP Plot::ExecuteMethod_addLegend(EidosGlobalStringID p_method...
function EidosValue_SP (line 385) | EidosValue_SP Plot::ExecuteMethod_axis(EidosGlobalStringID p_method_id, ...
function EidosValue_SP (line 459) | EidosValue_SP Plot::ExecuteMethod_image(EidosGlobalStringID p_method_id,...
function EidosValue_SP (line 634) | EidosValue_SP Plot::ExecuteMethod_legendLineEntry(EidosGlobalStringID p_...
function EidosValue_SP (line 671) | EidosValue_SP Plot::ExecuteMethod_legendPointEntry(EidosGlobalStringID p...
function EidosValue_SP (line 731) | EidosValue_SP Plot::ExecuteMethod_legendSwatchEntry(EidosGlobalStringID ...
function EidosValue_SP (line 761) | EidosValue_SP Plot::ExecuteMethod_legendTitleEntry(EidosGlobalStringID p...
function EidosValue_SP (line 779) | EidosValue_SP Plot::ExecuteMethod_lines(EidosGlobalStringID p_method_id,...
function EidosValue_SP (line 863) | EidosValue_SP Plot::ExecuteMethod_matrix(EidosGlobalStringID p_method_id...
function EidosValue_SP (line 1060) | EidosValue_SP Plot::ExecuteMethod_mtext(EidosGlobalStringID p_method_id,...
function EidosValue_SP (line 1204) | EidosValue_SP Plot::ExecuteMethod_points(EidosGlobalStringID p_method_id...
function EidosValue_SP (line 1362) | EidosValue_SP Plot::ExecuteMethod_rects(EidosGlobalStringID p_method_id,...
function EidosValue_SP (line 1532) | EidosValue_SP Plot::ExecuteMethod_segments(EidosGlobalStringID p_method_...
function EidosValue_SP (line 1666) | EidosValue_SP Plot::ExecuteMethod_setBorderless(EidosGlobalStringID p_me...
function EidosValue_SP (line 1689) | EidosValue_SP Plot::ExecuteMethod_text(EidosGlobalStringID p_method_id, ...
function EidosValue_SP (line 1833) | EidosValue_SP Plot::ExecuteMethod_write(EidosGlobalStringID p_method_id,...
FILE: QtSLiM/QtSLiM_Plot.h
function class (line 36) | class Plot : public EidosDictionaryUnretained
function class (line 84) | class Plot_Class : public EidosDictionaryUnretained_Class
FILE: QtSLiM/QtSLiM_SLiMgui.cpp
function EidosClass (line 61) | const EidosClass *SLiMgui::Class(void) const
function EidosValue_SP (line 71) | EidosValue_SP SLiMgui::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue_SP (line 102) | EidosValue_SP SLiMgui::ExecuteInstanceMethod(EidosGlobalStringID p_metho...
function EidosValue_SP (line 118) | EidosValue_SP SLiMgui::ExecuteMethod_createPlot(EidosGlobalStringID p_me...
function EidosValue_SP (line 228) | EidosValue_SP SLiMgui::ExecuteMethod_logFileData(EidosGlobalStringID p_m...
function EidosValue_SP (line 242) | EidosValue_SP SLiMgui::ExecuteMethod_openDocument(EidosGlobalStringID p_...
function EidosValue_SP (line 257) | EidosValue_SP SLiMgui::ExecuteMethod_pauseExecution(EidosGlobalStringID ...
function EidosValue_SP (line 268) | EidosValue_SP SLiMgui::ExecuteMethod_plotWithTitle(EidosGlobalStringID p...
FILE: QtSLiM/QtSLiM_SLiMgui.h
function class (line 38) | class SLiMgui : public EidosDictionaryUnretained
function class (line 78) | class SLiMgui_Class : public EidosDictionaryUnretained_Class
FILE: QtSLiM/main.cpp
function clean_up_leak_false_positives (line 19) | static void clean_up_leak_false_positives(void)
function macos_ForceLightMode (line 62) | static void macos_ForceLightMode(void)
function linux_ForceDarkMode (line 143) | static void linux_ForceDarkMode(void)
function main (line 194) | int main(int argc, char *argv[])
FILE: QtSLiM/recipes/Recipe 18.10 - Adding a neutral burn-in after simulation with recapitation II.py
function tree_heights (line 11) | def tree_heights(ts):
FILE: SLiMgui/AppDelegate.h
function interface (line 41) | interface AppDelegate : NSObject <NSApplicationDelegate>
FILE: SLiMgui/ChromosomeView.h
function interface (line 34) | interface ChromosomeView : NSView
FILE: SLiMgui/GraphView.h
function interface (line 34) | interface GraphView : NSView
FILE: SLiMgui/GraphView_FitnessOverTime.h
function interface (line 31) | interface GraphView_FitnessOverTime : GraphView
FILE: SLiMgui/GraphView_MutationFixationTimeHistogram.h
function interface (line 31) | interface GraphView_MutationFixationTimeHistogram : GraphView
FILE: SLiMgui/GraphView_MutationFrequencySpectra.h
function interface (line 34) | interface GraphView_MutationFrequencySpectra : GraphView
FILE: SLiMgui/GraphView_MutationFrequencyTrajectory.h
function interface (line 37) | interface GraphView_MutationFrequencyTrajectory : GraphView
FILE: SLiMgui/GraphView_MutationLossTimeHistogram.h
function interface (line 31) | interface GraphView_MutationLossTimeHistogram : GraphView
FILE: SLiMgui/GraphView_PopulationVisualization.h
function interface (line 31) | interface GraphView_PopulationVisualization : GraphView
FILE: SLiMgui/PopulationView.h
type PopulationViewBackgroundSettings (line 27) | typedef struct {
function interface (line 32) | interface PopulationView : NSOpenGLView
FILE: SLiMgui/Recipes/Recipe 18.10 - Adding a neutral burn-in after simulation with recapitation II.py
function tree_heights (line 11) | def tree_heights(ts):
FILE: SLiMgui/SLiMDocument.h
function interface (line 27) | interface SLiMDocument : NSDocument
FILE: SLiMgui/SLiMDocumentController.h
function interface (line 31) | interface SLiMDocumentController : NSDocumentController
FILE: SLiMgui/SLiMPDFDocument.h
function interface (line 24) | interface SLiMPDFDocument : NSDocument
FILE: SLiMgui/SLiMPDFView.h
function interface (line 24) | interface SLiMPDFView : NSView
FILE: SLiMgui/SLiMPDFWindowController.h
function interface (line 27) | interface SLiMPDFWindowController : NSWindowController
FILE: SLiMgui/TipsWindowController.h
function interface (line 28) | interface TipsWindowController : NSObject <NSWindowDelegate>
FILE: SLiMgui/plot.h
function class (line 43) | class Plot : public EidosDictionaryUnretained
function class (line 87) | class Plot_Class : public EidosDictionaryUnretained_Class
FILE: SLiMgui/slim_gui.h
function class (line 44) | class SLiMgui : public EidosDictionaryUnretained
function class (line 84) | class SLiMgui_Class : public EidosDictionaryUnretained_Class
FILE: core/chromosome.cpp
type GESubrange (line 42) | struct GESubrange
function MutationIndex (line 1030) | MutationIndex Chromosome::DrawNewMutation(std::pair<slim_position_t, Gen...
function Mutation (line 1052) | Mutation *Chromosome::ApplyMutationCallbacks(Mutation *p_mut, Haplosome ...
function MutationIndex (line 1248) | MutationIndex Chromosome::DrawNewMutationExtended(std::pair<slim_positio...
function Haplosome (line 2015) | Haplosome *Chromosome::_NewHaplosome_NULL(Individual *p_individual)
function Haplosome (line 2032) | Haplosome *Chromosome::_NewHaplosome_NONNULL(Individual *p_individual)
function EidosClass (line 2691) | const EidosClass *Chromosome::Class(void) const
function EidosValue_SP (line 2701) | EidosValue_SP Chromosome::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue_SP (line 3084) | EidosValue_SP Chromosome::ExecuteInstanceMethod(EidosGlobalStringID p_me...
function EidosValue_SP (line 3103) | EidosValue_SP Chromosome::ExecuteMethod_ancestralNucleotides(EidosGlobal...
function EidosValue_SP (line 3146) | EidosValue_SP Chromosome::ExecuteMethod_drawBreakpoints(EidosGlobalStrin...
function GenomicElement (line 3191) | GenomicElement *Chromosome::ElementForPosition(slim_position_t pos)
function EidosValue_SP (line 3209) | EidosValue_SP Chromosome::ExecuteMethod_genomicElementForPosition(EidosG...
function EidosValue_SP (line 3234) | EidosValue_SP Chromosome::ExecuteMethod_hasGenomicElementForPosition(Eid...
function EidosValue_SP (line 3256) | EidosValue_SP Chromosome::ExecuteMethod_setAncestralNucleotides(EidosGlo...
function EidosValue_SP (line 3380) | EidosValue_SP Chromosome::ExecuteMethod_setGeneConversion(EidosGlobalStr...
function EidosValue_SP (line 3421) | EidosValue_SP Chromosome::ExecuteMethod_setHotspotMap(EidosGlobalStringI...
function EidosValue_SP (line 3532) | EidosValue_SP Chromosome::ExecuteMethod_setMutationRate(EidosGlobalStrin...
function EidosValue_SP (line 3643) | EidosValue_SP Chromosome::ExecuteMethod_setRecombinationRate(EidosGlobal...
FILE: core/chromosome.h
type GESubrange (line 42) | struct GESubrange
function ID (line 301) | inline __attribute__((always_inline)) int64_t ID(void) const { return id...
function std (line 302) | inline __attribute__((always_inline)) const std::string &Symbol(void) co...
function slim_chromosome_index_t (line 303) | inline __attribute__((always_inline)) slim_chromosome_index_t Index(void...
function ChromosomeType (line 304) | inline __attribute__((always_inline)) ChromosomeType Type(void) const { ...
function std (line 305) | inline __attribute__((always_inline)) const std::string &Name(void) cons...
function SetName (line 306) | inline __attribute__((always_inline)) void SetName(const std::string &p_...
function IntrinsicPloidy (line 308) | inline __attribute__((always_inline)) int IntrinsicPloidy(void) const { ...
function AlwaysUsesNullHaplosomes (line 309) | inline __attribute__((always_inline)) bool AlwaysUsesNullHaplosomes(void...
function IsSexChromosome (line 310) | inline __attribute__((always_inline)) bool IsSexChromosome(void) const {...
function DefaultsToZeroRecombination (line 311) | inline __attribute__((always_inline)) bool DefaultsToZeroRecombination(v...
function std (line 312) | inline __attribute__((always_inline)) const std::string &TypeString(void...
function std (line 314) | inline __attribute__((always_inline)) std::vector<GenomicElement *> &Gen...
function std (line 315) | inline __attribute__((always_inline)) const std::vector<GenomicElement *...
function NucleotideArray (line 316) | inline __attribute__((always_inline)) NucleotideArray *AncestralSequence...
function UsingSingleRecombinationMap (line 325) | inline bool UsingSingleRecombinationMap(void) const { return single_reco...
function UsingSingleMutationMap (line 326) | inline bool UsingSingleMutationMap(void) const { return single_mutation_...
function GenomicElementCount (line 327) | inline size_t GenomicElementCount(void) const { return genomic_elements_...
function std (line 380) | const std::vector<Haplosome *> &HaplosomesJunkyardNonnull(void) { return...
function std (line 381) | const std::vector<Haplosome *> &HaplosomesJunkyardNull(void) { return ha...
function ChromosomeMutationRunContextCount (line 388) | inline int ChromosomeMutationRunContextCount(void) { return 1; }
function MutationRunContext (line 389) | inline __attribute__((always_inline)) MutationRunContext &ChromosomeMuta...
function MutationRunContext (line 397) | inline __attribute__((always_inline)) MutationRunContext &ChromosomeMuta...
function ChromosomeMutationRunContextCount (line 406) | inline int ChromosomeMutationRunContextCount(void) { return mutation_run...
function MutationRunContext (line 407) | inline __attribute__((always_inline)) MutationRunContext &ChromosomeMuta...
function MutationRunContext (line 415) | inline __attribute__((always_inline)) MutationRunContext &ChromosomeMuta...
function MutationRunExperimentsEnabled (line 433) | inline __attribute__((always_inline)) bool MutationRunExperimentsEnabled...
function StartMutationRunExperimentClock (line 439) | inline __attribute__((always_inline)) void StartMutationRunExperimentClo...
function StopMutationRunExperimentClock (line 454) | inline __attribute__((always_inline)) void StopMutationRunExperimentCloc...
function DrawMutationCount (line 501) | inline __attribute__((always_inline)) int Chromosome::DrawMutationCount(...
function DrawBreakpointCount (line 555) | inline __attribute__((always_inline)) int Chromosome::DrawBreakpointCoun...
function DrawMutationAndBreakpointCounts (line 611) | inline __attribute__((always_inline)) void Chromosome::DrawMutationAndBr...
function Haplosome (line 705) | inline __attribute__((always_inline)) Haplosome *Chromosome::NewHaplosom...
function Haplosome (line 723) | inline __attribute__((always_inline)) Haplosome *Chromosome::NewHaplosom...
function FreeHaplosome (line 778) | inline __attribute__((always_inline)) void Chromosome::FreeHaplosome(Hap...
function class (line 800) | class Chromosome_Class : public EidosDictionaryRetained_Class
FILE: core/community.cpp
function Subpopulation (line 1276) | Subpopulation *Community::SubpopulationWithID(slim_objectid_t p_subpop_id)
function Subpopulation (line 1289) | Subpopulation *Community::SubpopulationWithName(const std::string &p_sub...
function MutationType (line 1302) | MutationType *Community::MutationTypeWithID(slim_objectid_t p_muttype_id)
function GenomicElementType (line 1315) | GenomicElementType *Community::GenomicElementTypeWithID(slim_objectid_t ...
function SLiMEidosBlock (line 1328) | SLiMEidosBlock *Community::ScriptBlockWithID(slim_objectid_t p_script_bl...
function Species (line 1337) | Species *Community::SpeciesWithID(slim_objectid_t p_species_id)
function Species (line 1346) | Species *Community::SpeciesWithName(const std::string &species_name)
function Species (line 1369) | Species *Community::SpeciesForIndividualsVector(const Individual * const...
function Species (line 1390) | Species *Community::SpeciesForIndividuals(EidosValue *value)
function Species (line 1414) | Species *Community::SpeciesForHaplosomesVector(const Haplosome * const *...
function Species (line 1435) | Species *Community::SpeciesForHaplosomes(EidosValue *value)
function Species (line 1459) | Species *Community::SpeciesForMutationsVector(const Mutation * const *mu...
function Species (line 1480) | Species *Community::SpeciesForMutations(EidosValue *value)
function EidosValue_SP (line 1504) | EidosValue_SP Community::_EvaluateTickRangeNode(const EidosASTNode *p_no...
function SLiMCycleStage (line 1617) | SLiMCycleStage Community::CycleStageForScriptBlockType(SLiMEidosBlockTyp...
function slim_tick_t (line 2036) | slim_tick_t Community::FirstTick(void)
function slim_tick_t (line 2068) | slim_tick_t Community::EstimatedLastTick(void)
FILE: core/community.h
type EidosInterpreterDebugPointsSet_struct (line 48) | struct EidosInterpreterDebugPointsSet_struct
type EidosInterpreterDebugPointsSet_struct (line 49) | typedef EidosInterpreterDebugPointsSet_struct EidosInterpreterDebugPoint...
function InteractionType (line 239) | inline InteractionType *InteractionTypeWithID(slim_objectid_t p_inttype_...
function std (line 292) | inline __attribute__((always_inline)) const std::vector<Species *> &AllS...
function EidosSymbolTable (line 293) | inline __attribute__((always_inline)) EidosSymbolTable &SymbolTable(void...
function EidosFunctionMap (line 294) | inline __attribute__((always_inline)) EidosFunctionMap &FunctionMap(void...
function SLiMModelType (line 296) | inline __attribute__((always_inline)) SLiMModelType ModelType(void) cons...
function slim_tick_t (line 299) | inline __attribute__((always_inline)) slim_tick_t Tick(void) const ...
function SLiMCycleStage (line 302) | inline __attribute__((always_inline)) SLiMCycleStage CycleStage(void) co...
function SLiMEidosScript (line 304) | inline __attribute__((always_inline)) SLiMEidosScript *Script(void) { re...
function std (line 305) | inline __attribute__((always_inline)) std::string ScriptString(void) { r...
function SetDebugPoints (line 311) | inline void SetDebugPoints(EidosInterpreterDebugPointsSet *p_debug_point...
function virtual (line 312) | virtual EidosInterpreterDebugPointsSet *DebugPoints(void) override { ret...
function virtual (line 313) | virtual std::string DebugPointInfo(void) override { return std::string("...
function EidosSymbolTableEntry (line 350) | inline EidosSymbolTableEntry &SymbolTableEntry(void) { return self_symbo...
function class (line 392) | class Community_Class : public EidosDictionaryUnretained_Class
FILE: core/community_eidos.cpp
function PrintBytes (line 44) | static std::string PrintBytes(size_t p_bytes)
function EidosValue_SP (line 70) | EidosValue_SP Community::ContextDefinedFunctionDispatch(const std::strin...
function EidosSymbolTable (line 182) | EidosSymbolTable *Community::SymbolsFromBaseSymbols(EidosSymbolTable *p_...
function EidosValue_SP (line 193) | EidosValue_SP Community::ExecuteContextFunction_initializeSLiMModelType(...
function EidosValue_SP (line 242) | EidosValue_SP Community::ExecuteContextFunction_initializeInteractionTyp...
function EidosClass (line 310) | const EidosClass *Community::Class(void) const
function EidosValue_SP (line 320) | EidosValue_SP Community::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue_SP (line 549) | EidosValue_SP Community::ExecuteInstanceMethod(EidosGlobalStringID p_met...
function EidosValue_SP (line 576) | EidosValue_SP Community::ExecuteMethod_createLogFile(EidosGlobalStringID...
function EidosValue_SP (line 664) | EidosValue_SP Community::ExecuteMethod_estimatedLastTick(EidosGlobalStri...
function EidosValue_SP (line 674) | EidosValue_SP Community::ExecuteMethod_deregisterScriptBlock(EidosGlobal...
function EidosValue_SP (line 736) | EidosValue_SP Community::ExecuteMethod_genomicElementTypesWithIDs(EidosG...
function EidosValue_SP (line 760) | EidosValue_SP Community::ExecuteMethod_interactionTypesWithIDs(EidosGlob...
function EidosValue_SP (line 784) | EidosValue_SP Community::ExecuteMethod_mutationTypesWithIDs(EidosGlobalS...
function EidosValue_SP (line 808) | EidosValue_SP Community::ExecuteMethod_scriptBlocksWithIDs(EidosGlobalSt...
function EidosValue_SP (line 832) | EidosValue_SP Community::ExecuteMethod_speciesWithIDs(EidosGlobalStringI...
function EidosValue_SP (line 856) | EidosValue_SP Community::ExecuteMethod_subpopulationsWithIDs(EidosGlobal...
function EidosValue_SP (line 880) | EidosValue_SP Community::ExecuteMethod_subpopulationsWithNames(EidosGlob...
function EidosValue_SP (line 904) | EidosValue_SP Community::ExecuteMethod_outputUsage(EidosGlobalStringID p...
function EidosValue_SP (line 1035) | EidosValue_SP Community::ExecuteMethod_registerFirstEarlyLateEvent(Eidos...
function EidosValue_SP (line 1093) | EidosValue_SP Community::ExecuteMethod_registerInteractionCallback(Eidos...
function EidosValue_SP (line 1134) | EidosValue_SP Community::ExecuteMethod_rescheduleScriptBlock(EidosGlobal...
function EidosValue_SP (line 1281) | EidosValue_SP Community::ExecuteMethod_simulationFinished(EidosGlobalStr...
function EidosValue_SP (line 1299) | EidosValue_SP Community::ExecuteMethod_usage(EidosGlobalStringID p_metho...
FILE: core/genomic_element.cpp
function EidosClass (line 64) | const EidosClass *GenomicElement::Class(void) const
function EidosValue_SP (line 74) | EidosValue_SP GenomicElement::GetProperty(EidosGlobalStringID p_property...
function EidosValue (line 104) | EidosValue *GenomicElement::GetProperty_Accelerated_startPosition(EidosO...
function EidosValue (line 118) | EidosValue *GenomicElement::GetProperty_Accelerated_endPosition(EidosObj...
function EidosValue (line 132) | EidosValue *GenomicElement::GetProperty_Accelerated_tag(EidosObject **p_...
function EidosValue (line 150) | EidosValue *GenomicElement::GetProperty_Accelerated_genomicElementType(E...
function EidosValue_SP (line 183) | EidosValue_SP GenomicElement::ExecuteInstanceMethod(EidosGlobalStringID ...
function EidosValue_SP (line 194) | EidosValue_SP GenomicElement::ExecuteMethod_setGenomicElementType(EidosG...
FILE: core/genomic_element.h
function class (line 40) | class GenomicElement : public EidosObject
function class (line 88) | class GenomicElement_Class : public EidosClass
FILE: core/genomic_element_type.cpp
function MutationType (line 103) | MutationType *GenomicElementType::DrawMutationType(void) const
function EidosClass (line 238) | const EidosClass *GenomicElementType::Class(void) const
function EidosValue_SP (line 248) | EidosValue_SP GenomicElementType::GetProperty(EidosGlobalStringID p_prop...
function EidosValue (line 304) | EidosValue *GenomicElementType::GetProperty_Accelerated_id(EidosObject *...
function EidosValue (line 318) | EidosValue *GenomicElementType::GetProperty_Accelerated_tag(EidosObject ...
function EidosValue_SP (line 366) | EidosValue_SP GenomicElementType::ExecuteInstanceMethod(EidosGlobalStrin...
function EidosValue_SP (line 378) | EidosValue_SP GenomicElementType::ExecuteMethod_setMutationFractions(Eid...
function EidosValue_SP (line 427) | EidosValue_SP GenomicElementType::ExecuteMethod_setMutationMatrix(EidosG...
FILE: core/genomic_element_type.h
function class (line 47) | class GenomicElementType : public EidosDictionaryUnretained
function class (line 112) | class GenomicElementType_Class : public EidosDictionaryUnretained_Class
FILE: core/haplosome.cpp
function Chromosome (line 59) | Chromosome *Haplosome::AssociatedChromosome(void) const
function MutationRun (line 70) | MutationRun *Haplosome::WillModifyRun(slim_mutrun_index_t p_run_index, M...
function MutationRun (line 90) | MutationRun *Haplosome::WillModifyRun_UNSHARED(slim_mutrun_index_t p_run...
function MutationRun (line 146) | MutationRun *Haplosome::WillModifyRunForBulkOperation(int64_t p_operatio...
function EidosClass (line 396) | const EidosClass *Haplosome::Class(void) const
function EidosValue_SP (line 413) | EidosValue_SP Haplosome::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue (line 495) | EidosValue *Haplosome::GetProperty_Accelerated_haplosomePedigreeID(Eidos...
function EidosValue (line 536) | EidosValue *Haplosome::GetProperty_Accelerated_chromosomeSubposition(Eid...
function EidosValue (line 551) | EidosValue *Haplosome::GetProperty_Accelerated_isNullHaplosome(EidosObje...
function EidosValue (line 565) | EidosValue *Haplosome::GetProperty_Accelerated_tag(EidosObject **p_value...
function EidosValue_SP (line 624) | EidosValue_SP Haplosome::ExecuteInstanceMethod(EidosGlobalStringID p_met...
function EidosValue_SP (line 641) | EidosValue_SP Haplosome::ExecuteMethod_Accelerated_containsMarkerMutatio...
function EidosValue_SP (line 760) | EidosValue_SP Haplosome::ExecuteMethod_Accelerated_containsMutations(Eid...
function EidosValue_SP (line 856) | EidosValue_SP Haplosome::ExecuteMethod_Accelerated_countOfMutationsOfTyp...
function EidosValue_SP (line 915) | EidosValue_SP Haplosome::ExecuteMethod_mutationsOfType(EidosGlobalString...
function EidosValue_SP (line 990) | EidosValue_SP Haplosome::ExecuteMethod_nucleotides(EidosGlobalStringID p...
function EidosValue_SP (line 1271) | EidosValue_SP Haplosome::ExecuteMethod_positionsOfMutationsOfType(EidosG...
function EidosValue_SP (line 1308) | EidosValue_SP Haplosome::ExecuteMethod_sumOfMutationsOfType(EidosGlobalS...
function EmitHaplosomeCall_Nuc_Simplify (line 1559) | inline void EmitHaplosomeCall_Nuc_Simplify(std::ostream &p_out, const Ha...
function EmitHaplosomeCall_Nuc (line 1583) | inline void EmitHaplosomeCall_Nuc(std::ostream &p_out, const Haplosome &...
type tm (line 1644) | struct tm
function EidosValue_SP (line 2263) | EidosValue_SP Haplosome_Class::ExecuteClassMethod(EidosGlobalStringID p_...
function EidosValue_SP (line 2284) | EidosValue_SP Haplosome_Class::ExecuteMethod_addMutations(EidosGlobalStr...
function EidosValue_SP (line 2581) | EidosValue_SP Haplosome_Class::ExecuteMethod_addNewMutation(EidosGlobalS...
function EidosValue_SP (line 3008) | EidosValue_SP Haplosome_Class::ExecuteMethod_mutationFreqsCountsInHaplos...
function EidosValue_SP (line 3073) | EidosValue_SP Haplosome_Class::ExecuteMethod_outputX(EidosGlobalStringID...
function EidosValue_SP (line 3247) | EidosValue_SP Haplosome_Class::ExecuteMethod_readHaplosomesFromMS(EidosG...
function EidosValue_SP (line 3517) | EidosValue_SP Haplosome_Class::ExecuteMethod_readHaplosomesFromVCF(Eidos...
function EidosValue_SP (line 4147) | EidosValue_SP Haplosome_Class::ExecuteMethod_removeMutations(EidosGlobal...
FILE: core/haplosome.h
type robin_hood (line 51) | typedef robin_hood::unordered_flat_map<const MutationRun*, const
type robin_hood (line 52) | typedef robin_hood::pair<const MutationRun*, const
type std (line 55) | typedef std::unordered_map<const MutationRun*, const
type std (line 56) | typedef std::pair<const MutationRun*, const
function class (line 100) | class Haplosome : public EidosObject
function slim_haplosomeid_t (line 181) | inline __attribute__((always_inline)) slim_haplosomeid_t HaplosomeID(voi...
function SetHaplosomeID (line 182) | inline __attribute__((always_inline)) void SetHaplosomeID(slim_haplosome...
function Individual (line 183) | inline __attribute__((always_inline)) Individual *OwningIndividual(void)...
function Individual (line 184) | inline __attribute__((always_inline)) const Individual *OwningIndividual...
function slim_position_t (line 186) | inline __attribute__((always_inline)) slim_position_t MutrunLength(void)...
function IsNull (line 190) | inline __attribute__((always_inline)) bool IsNull(void) const //...
function IsDeferred (line 194) | inline __attribute__((always_inline)) bool IsDeferred(void) const ...
function DebugCheckStructureMatch (line 206) | static void DebugCheckStructureMatch(Haplosome *hapA, Haplosome *hapB, C...
function DebugCheckStructureMatch (line 216) | static void DebugCheckStructureMatch(Haplosome *hapA, Haplosome *hapB, H...
function DebugCheckStructureMatch (line 228) | static inline void DebugCheckStructureMatch(Haplosome *, Haplosome *, Ch...
function DebugCheckStructureMatch (line 229) | static inline void DebugCheckStructureMatch(Haplosome *, Haplosome *, Ha...
function MutationRun (line 235) | inline MutationRun *WillCreateRun(int p_run_index, MutationRunContext &p...
function MutationRun (line 250) | inline MutationRun *WillCreateRun_LOCKED(int p_run_index, MutationRunCon...
function RemoveFixedMutations (line 288) | void RemoveFixedMutations(int64_t p_operation_id, slim_mutrun_index_t p_...
function mutation_count (line 306) | inline __attribute__((always_inline)) int mutation_count(void) const // ...
function clear_to_nullptr (line 329) | inline __attribute__((always_inline)) void clear_to_nullptr(void)
function check_cleared_to_nullptr (line 335) | inline void check_cleared_to_nullptr(void)
function contains_mutation (line 344) | inline __attribute__((always_inline)) bool contains_mutation(const Mutat...
function Mutation (line 353) | inline __attribute__((always_inline)) Mutation *mutation_with_type_and_p...
function copy_from_haplosome (line 362) | inline void copy_from_haplosome(const Haplosome &p_source_haplosome)
function std (line 396) | inline const std::vector<Mutation *> *derived_mutation_ids_at_position(s...
function EidosValue_SP (line 423) | inline __attribute__((always_inline)) EidosValue_SP CachedEidosValue(voi...
function class (line 466) | class Haplosome_Class : public EidosClass
function class (line 490) | class HaplosomeWalker
function HaplosomeWalker (line 506) | inline ~HaplosomeWalker(void) {}
function Haplosome (line 508) | inline Haplosome *WalkerHaplosome(void) { return haplosome_; }
function Mutation (line 509) | inline Mutation *CurrentMutation(void) { return mutation_; }
function Finished (line 510) | inline bool Finished(void) { return (mutation_ == nullptr); }
function slim_position_t (line 511) | inline slim_position_t Position(void) { return mutation_->position_; }
FILE: core/individual.cpp
function _InPedigree (line 222) | static inline bool _InPedigree(slim_pedigreeid_t A, slim_pedigreeid_t A_...
function _Relatedness (line 233) | static double _Relatedness(slim_pedigreeid_t A, slim_pedigreeid_t A_P1, ...
type tm (line 996) | struct tm
function EidosClass (line 1106) | const EidosClass *Individual::Class(void) const
function EidosValue_SP (line 1119) | EidosValue_SP Individual::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue (line 1674) | EidosValue *Individual::GetProperty_Accelerated_index(EidosObject **p_va...
function EidosValue (line 1688) | EidosValue *Individual::GetProperty_Accelerated_pedigreeID(EidosObject *...
function EidosValue (line 1729) | EidosValue *Individual::GetProperty_Accelerated_tag(EidosObject **p_valu...
function EidosValue (line 1747) | EidosValue *Individual::GetProperty_Accelerated_age(EidosObject **p_valu...
function EidosValue (line 1764) | EidosValue *Individual::GetProperty_Accelerated_reproductiveOutput(Eidos...
function EidosValue (line 1781) | EidosValue *Individual::GetProperty_Accelerated_tagF(EidosObject **p_val...
function EidosValue (line 1799) | EidosValue *Individual::GetProperty_Accelerated_tagL0(EidosObject **p_va...
function EidosValue (line 1816) | EidosValue *Individual::GetProperty_Accelerated_tagL1(EidosObject **p_va...
function EidosValue (line 1833) | EidosValue *Individual::GetProperty_Accelerated_tagL2(EidosObject **p_va...
function EidosValue (line 1850) | EidosValue *Individual::GetProperty_Accelerated_tagL3(EidosObject **p_va...
function EidosValue (line 1867) | EidosValue *Individual::GetProperty_Accelerated_tagL4(EidosObject **p_va...
function EidosValue (line 1884) | EidosValue *Individual::GetProperty_Accelerated_migrant(EidosObject **p_...
function EidosValue (line 1898) | EidosValue *Individual::GetProperty_Accelerated_fitnessScaling(EidosObje...
function EidosValue (line 1912) | EidosValue *Individual::GetProperty_Accelerated_x(EidosObject **p_values...
function EidosValue (line 1926) | EidosValue *Individual::GetProperty_Accelerated_y(EidosObject **p_values...
function EidosValue (line 1940) | EidosValue *Individual::GetProperty_Accelerated_z(EidosObject **p_values...
function EidosValue (line 1954) | EidosValue *Individual::GetProperty_Accelerated_spatialPosition(EidosObj...
function EidosValue (line 2037) | EidosValue *Individual::GetProperty_Accelerated_subpopulation(EidosObjec...
function EidosValue (line 2054) | EidosValue *Individual::GetProperty_Accelerated_haploidGenome1(EidosObje...
function EidosValue (line 2122) | EidosValue *Individual::GetProperty_Accelerated_haploidGenome1NonNull(Ei...
function EidosValue (line 2194) | EidosValue *Individual::GetProperty_Accelerated_haploidGenome2(EidosObje...
function EidosValue (line 2262) | EidosValue *Individual::GetProperty_Accelerated_haploidGenome2NonNull(Ei...
function EidosValue (line 2334) | EidosValue *Individual::GetProperty_Accelerated_haplosomes(EidosObject *...
function EidosValue (line 2364) | EidosValue *Individual::GetProperty_Accelerated_haplosomesNonNull(EidosO...
function EidosValue_SP (line 2903) | EidosValue_SP Individual::ExecuteInstanceMethod(EidosGlobalStringID p_me...
function EidosValue_SP (line 2930) | EidosValue_SP Individual::ExecuteMethod_containsMutations(EidosGlobalStr...
function EidosValue_SP (line 2999) | EidosValue_SP Individual::ExecuteMethod_Accelerated_countOfMutationsOfTy...
function EidosValue_SP (line 3057) | EidosValue_SP Individual::ExecuteMethod_haplosomesForChromosomes(EidosGl...
function EidosValue_SP (line 3093) | EidosValue_SP Individual::ExecuteMethod_relatedness(EidosGlobalStringID ...
function EidosValue_SP (line 3156) | EidosValue_SP Individual::ExecuteMethod_sharedParentCount(EidosGlobalStr...
function EidosValue_SP (line 3202) | EidosValue_SP Individual::ExecuteMethod_Accelerated_sumOfMutationsOfType...
function EidosValue_SP (line 3264) | EidosValue_SP Individual::ExecuteMethod_uniqueMutationsOfType(EidosGloba...
function EidosValue_SP (line 3556) | EidosValue_SP Individual::ExecuteMethod_mutationsFromHaplosomes(EidosGlo...
function EidosValue_SP (line 3956) | EidosValue_SP Individual_Class::ExecuteClassMethod(EidosGlobalStringID p...
function EidosValue_SP (line 3979) | EidosValue_SP Individual_Class::ExecuteMethod_outputIndividuals(EidosGlo...
function EidosValue_SP (line 4069) | EidosValue_SP Individual_Class::ExecuteMethod_outputIndividualsToVCF(Eid...
function _AddCallToHaplosome (line 4153) | inline __attribute__((always_inline)) static void
function EidosValue_SP (line 4190) | EidosValue_SP Individual_Class::ExecuteMethod_readIndividualsFromVCF(Eid...
function EidosValue_SP (line 5001) | EidosValue_SP Individual_Class::ExecuteMethod_setSpatialPosition(EidosGl...
function EidosValue_SP (line 5196) | EidosValue_SP Individual_Class::ExecuteMethod_zygosityOfMutations(EidosG...
FILE: core/individual.h
function slim_pedigreeid_t (line 50) | inline slim_pedigreeid_t SLiM_GetNextPedigreeID(void)
function slim_pedigreeid_t (line 56) | inline slim_pedigreeid_t SLiM_GetNextPedigreeID_Block(int p_block_size)
function ClearColor (line 167) | inline __attribute__((always_inline)) void ClearColor(void) {
function TrackParentage_Biparental (line 176) | inline __attribute__((always_inline)) void TrackParentage_Biparental(sli...
function RevokeParentage_Biparental (line 198) | inline __attribute__((always_inline)) void RevokeParentage_Biparental(In...
function TrackParentage_Uniparental (line 206) | inline __attribute__((always_inline)) void TrackParentage_Uniparental(sl...
function RevokeParentage_Uniparental (line 227) | inline __attribute__((always_inline)) void RevokeParentage_Uniparental(I...
function TrackParentage_Parentless (line 236) | inline __attribute__((always_inline)) void TrackParentage_Parentless(sli...
function RevokeParentage_Parentless (line 244) | inline __attribute__((always_inline)) void RevokeParentage_Parentless()
function AddHaplosomeAtIndex (line 254) | inline __attribute__((always_inline)) void AddHaplosomeAtIndex(Haplosome...
function slim_pedigreeid_t (line 273) | inline __attribute__((always_inline)) slim_pedigreeid_t PedigreeID() con...
function slim_pedigreeid_t (line 276) | inline __attribute__((always_inline)) slim_pedigreeid_t Parent2PedigreeI...
function tsk_id_t (line 281) | inline __attribute__((always_inline)) tsk_id_t TskitNodeIdBase(void) con...
function SetTskitNodeIdBase (line 282) | inline __attribute__((always_inline)) void SetTskitNodeIdBase(tsk_id_t p...
function InheritSpatialPosition (line 285) | inline __attribute__((always_inline)) void InheritSpatialPosition(int p_...
function EidosValue_SP (line 314) | inline __attribute__((always_inline)) EidosValue_SP CachedEidosValue(voi...
function class (line 391) | class Individual_Class : public EidosDictionaryUnretained_Class
FILE: core/interaction_type.cpp
function swap (line 1484) | inline __attribute__((always_inline)) void swap(SLiM_kdNode *p_x, SLiM_k...
function SLiM_kdNode (line 1491) | SLiM_kdNode *InteractionType::FindMedian_p0(SLiM_kdNode *start, SLiM_kdN...
function SLiM_kdNode (line 1501) | SLiM_kdNode *InteractionType::FindMedian_p1(SLiM_kdNode *start, SLiM_kdN...
function SLiM_kdNode (line 1511) | SLiM_kdNode *InteractionType::FindMedian_p2(SLiM_kdNode *start, SLiM_kdN...
function SLiM_kdNode (line 1521) | SLiM_kdNode *InteractionType::MakeKDTree1_p0(SLiM_kdNode *t, int len)
function SLiM_kdNode (line 1537) | SLiM_kdNode *InteractionType::MakeKDTree2_p0(SLiM_kdNode *t, int len)
function SLiM_kdNode (line 1553) | SLiM_kdNode *InteractionType::MakeKDTree2_p1(SLiM_kdNode *t, int len)
function SLiM_kdNode (line 1569) | SLiM_kdNode *InteractionType::MakeKDTree3_p0(SLiM_kdNode *t, int len)
function SLiM_kdNode (line 1585) | SLiM_kdNode *InteractionType::MakeKDTree3_p1(SLiM_kdNode *t, int len)
function SLiM_kdNode (line 1601) | SLiM_kdNode *InteractionType::MakeKDTree3_p2(SLiM_kdNode *t, int len)
function SLiM_kdNode (line 1912) | SLiM_kdNode *InteractionType::EnsureKDTreePresent_ALL(Subpopulation *sub...
function SLiM_kdNode (line 1929) | SLiM_kdNode *InteractionType::EnsureKDTreePresent_EXERTERS(Subpopulation...
function dist_sq1 (line 2147) | inline __attribute__((always_inline)) double dist_sq1(SLiM_kdNode *a, do...
function dist_sq2 (line 2158) | inline __attribute__((always_inline)) double dist_sq2(SLiM_kdNode *a, do...
function dist_sq3 (line 2175) | inline __attribute__((always_inline)) double dist_sq3(SLiM_kdNode *a, do...
function EidosClass (line 3457) | const EidosClass *InteractionType::Class(void) const
function EidosValue_SP (line 3467) | EidosValue_SP InteractionType::GetProperty(EidosGlobalStringID p_propert...
function EidosValue (line 3527) | EidosValue *InteractionType::GetProperty_Accelerated_id(EidosObject **p_...
function EidosValue (line 3541) | EidosValue *InteractionType::GetProperty_Accelerated_tag(EidosObject **p...
function EidosValue_SP (line 3601) | EidosValue_SP InteractionType::ExecuteInstanceMethod(EidosGlobalStringID...
function InteractionsData (line 3628) | static inline __attribute__((always_inline)) InteractionsData &Interacti...
function EidosValue_SP (line 3641) | EidosValue_SP InteractionType::ExecuteMethod_clippedIntegral(EidosGlobal...
function EidosValue_SP (line 3941) | EidosValue_SP InteractionType::ExecuteMethod_distance(EidosGlobalStringI...
function EidosValue_SP (line 4043) | EidosValue_SP InteractionType::ExecuteMethod_distanceFromPoint(EidosGlob...
function DrawByWeights (line 4139) | static void DrawByWeights(int draw_count, const double *weights, int n_w...
function EidosValue_SP (line 4208) | EidosValue_SP InteractionType::ExecuteMethod_drawByStrength(EidosGlobalS...
function EidosValue_SP (line 4628) | EidosValue_SP InteractionType::ExecuteMethod_evaluate(EidosGlobalStringI...
function EidosValue_SP (line 4650) | EidosValue_SP InteractionType::ExecuteMethod_interactingNeighborCount(Ei...
function EidosValue_SP (line 4795) | EidosValue_SP InteractionType::ExecuteMethod_localPopulationDensity(Eido...
function EidosValue_SP (line 5053) | EidosValue_SP InteractionType::ExecuteMethod_interactionDistance(EidosGl...
function EidosValue_SP (line 5206) | EidosValue_SP InteractionType::ExecuteMethod_nearestInteractingNeighbors...
function EidosValue_SP (line 5400) | EidosValue_SP InteractionType::ExecuteMethod_nearestNeighbors(EidosGloba...
function EidosValue_SP (line 5569) | EidosValue_SP InteractionType::ExecuteMethod_nearestNeighborsOfPoint(Eid...
function EidosValue_SP (line 5623) | EidosValue_SP InteractionType::ExecuteMethod_neighborCount(EidosGlobalSt...
function EidosValue_SP (line 5747) | EidosValue_SP InteractionType::ExecuteMethod_neighborCountOfPoint(EidosG...
function EidosValue_SP (line 5794) | EidosValue_SP InteractionType::ExecuteMethod_setConstraints(EidosGlobalS...
function EidosValue_SP (line 5986) | EidosValue_SP InteractionType::ExecuteMethod_setInteractionFunction(Eido...
function EidosValue_SP (line 6022) | EidosValue_SP InteractionType::ExecuteMethod_strength(EidosGlobalStringI...
function EidosValue_SP (line 6243) | EidosValue_SP InteractionType::ExecuteMethod_testConstraints(EidosGlobal...
function EidosValue_SP (line 6322) | EidosValue_SP InteractionType::ExecuteMethod_totalOfNeighborStrengths(Ei...
function EidosValue_SP (line 6493) | EidosValue_SP InteractionType::ExecuteMethod_unevaluate(EidosGlobalStrin...
function _InteractionsData (line 6619) | _InteractionsData& _InteractionsData::operator=(_InteractionsData&& p_so...
FILE: core/interaction_type.h
type _SLiM_kdNode (line 61) | struct _SLiM_kdNode
type SLiM_kdNode (line 68) | typedef struct _SLiM_kdNode SLiM_kdNode;
type _InteractionsData (line 70) | struct _InteractionsData
type InteractionsData (line 131) | typedef struct _InteractionsData InteractionsData;
type InteractionConstraints (line 136) | typedef struct _InteractionConstraints {
function CheckIndividualNonSexConstraints (line 186) | static inline __attribute__((always_inline)) bool CheckIndividualNonSexC...
function CheckIndividualConstraints (line 193) | static inline __attribute__((always_inline)) bool CheckIndividualConstra...
function SparseVector (line 313) | static inline __attribute__((always_inline)) SparseVector *NewSparseVect...
function FreeSparseVector (line 349) | static inline __attribute__((always_inline)) void FreeSparseVector(Spars...
function class (line 476) | class InteractionType_Class : public EidosDictionaryUnretained_Class
FILE: core/log_file.cpp
function EidosValue_SP (line 92) | EidosValue_SP LogFile::_GeneratedValue_Cycle(const LogFileGeneratorInfo ...
function EidosValue_SP (line 101) | EidosValue_SP LogFile::_GeneratedValue_CycleStage(const LogFileGenerator...
function EidosValue_SP (line 110) | EidosValue_SP LogFile::_GeneratedValue_PopulationSexRatio(const LogFileG...
function EidosValue_SP (line 139) | EidosValue_SP LogFile::_GeneratedValue_PopulationSize(const LogFileGener...
function EidosValue_SP (line 152) | EidosValue_SP LogFile::_GeneratedValue_SubpopulationSexRatio(const LogFi...
function EidosValue_SP (line 170) | EidosValue_SP LogFile::_GeneratedValue_SubpopulationSize(const LogFileGe...
function EidosValue_SP (line 186) | EidosValue_SP LogFile::_GeneratedValue_Tick(const LogFileGeneratorInfo &...
function EidosValue_SP (line 194) | EidosValue_SP LogFile::_GeneratedValue_CustomScript(const LogFileGenerat...
function EidosClass (line 551) | const EidosClass *LogFile::Class(void) const
function EidosValue_SP (line 561) | EidosValue_SP LogFile::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue_SP (line 623) | EidosValue_SP LogFile::ExecuteInstanceMethod(EidosGlobalStringID p_metho...
function EidosValue_SP (line 660) | EidosValue_SP LogFile::ExecuteMethod_addCustomColumn(EidosGlobalStringID...
function EidosValue_SP (line 719) | EidosValue_SP LogFile::ExecuteMethod_addCycle(EidosGlobalStringID p_meth...
function EidosValue_SP (line 746) | EidosValue_SP LogFile::ExecuteMethod_addCycleStage(EidosGlobalStringID p...
function EidosValue_SP (line 759) | EidosValue_SP LogFile::ExecuteMethod_addMeanSDColumns(EidosGlobalStringI...
function EidosValue_SP (line 818) | EidosValue_SP LogFile::ExecuteMethod_addPopulationSexRatio(EidosGlobalSt...
function EidosValue_SP (line 845) | EidosValue_SP LogFile::ExecuteMethod_addPopulationSize(EidosGlobalString...
function EidosValue_SP (line 872) | EidosValue_SP LogFile::ExecuteMethod_addSubpopulationSexRatio(EidosGloba...
function EidosValue_SP (line 900) | EidosValue_SP LogFile::ExecuteMethod_addSubpopulationSize(EidosGlobalStr...
function EidosValue_SP (line 928) | EidosValue_SP LogFile::ExecuteMethod_addSuppliedColumn(EidosGlobalString...
function EidosValue_SP (line 944) | EidosValue_SP LogFile::ExecuteMethod_addTick(EidosGlobalStringID p_metho...
function EidosValue_SP (line 958) | EidosValue_SP LogFile::ExecuteMethod_flush(EidosGlobalStringID p_method_...
function EidosValue_SP (line 968) | EidosValue_SP LogFile::ExecuteMethod_logRow(EidosGlobalStringID p_method...
function EidosValue_SP (line 977) | EidosValue_SP LogFile::ExecuteMethod_setLogInterval(EidosGlobalStringID ...
function EidosValue_SP (line 1002) | EidosValue_SP LogFile::ExecuteMethod_setFilePath(EidosGlobalStringID p_m...
function EidosValue_SP (line 1059) | EidosValue_SP LogFile::ExecuteMethod_setSuppliedValue(EidosGlobalStringI...
function EidosValue_SP (line 1087) | EidosValue_SP LogFile::ExecuteMethod_willAutolog(EidosGlobalStringID p_m...
function EidosValue_SP (line 1103) | EidosValue_SP LogFile::ExecuteMethod_addKeysAndValuesFrom(EidosGlobalStr...
function EidosValue_SP (line 1109) | EidosValue_SP LogFile::ExecuteMethod_appendKeysAndValuesFrom(EidosGlobal...
function EidosValue_SP (line 1115) | EidosValue_SP LogFile::ExecuteMethod_clearKeysAndValues(EidosGlobalStrin...
function EidosValue_SP (line 1121) | EidosValue_SP LogFile::ExecuteMethod_setValue(EidosGlobalStringID p_meth...
function EidosValue_SP (line 1201) | EidosValue_SP LogFile_Class::ExecuteClassMethod(EidosGlobalStringID p_me...
function EidosValue_SP (line 1212) | EidosValue_SP LogFile_Class::ExecuteMethod_setValuesVectorized(EidosGlob...
FILE: core/log_file.h
type class (line 36) | enum class
type LogFileGeneratorInfo (line 50) | struct LogFileGeneratorInfo
function std (line 138) | inline const std::string &UserFilePath(void) const { return user_file_pa...
function std (line 139) | inline const std::string &ResolvedFilePath(void) const { return resolved...
function class (line 178) | class LogFile_Class : public EidosDictionaryRetained_Class
FILE: core/main.cpp
function PrintUsageAndDie (line 57) | static void PrintUsageAndDie(bool p_print_header, bool p_print_full_usage)
function clean_up_leak_false_positives (line 165) | static void clean_up_leak_false_positives(void)
function test_exit (line 176) | static void test_exit(int test_result)
function main (line 189) | int main(int argc, char *argv[]) // FIXME: clang-tidy flags this with bu...
FILE: core/mutation.cpp
function SLiM_CreateMutationBlock (line 50) | void SLiM_CreateMutationBlock(void)
function SLiM_IncreaseMutationBlockCapacity (line 74) | void SLiM_IncreaseMutationBlockCapacity(void)
function SLiM_ZeroRefcountBlock (line 169) | void SLiM_ZeroRefcountBlock(MutationRun &p_mutation_registry, bool p_reg...
function SLiMMemoryUsageForMutationBlock (line 200) | size_t SLiMMemoryUsageForMutationBlock(void)
function SLiMMemoryUsageForFreeMutations (line 205) | size_t SLiMMemoryUsageForFreeMutations(void)
function SLiMMemoryUsageForMutationRefcounts (line 219) | size_t SLiMMemoryUsageForMutationRefcounts(void)
function EidosClass (line 356) | const EidosClass *Mutation::Class(void) const
function EidosValue_SP (line 366) | EidosValue_SP Mutation::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue (line 444) | EidosValue *Mutation::GetProperty_Accelerated_id(EidosObject **p_values,...
function EidosValue (line 458) | EidosValue *Mutation::GetProperty_Accelerated_isFixed(EidosObject **p_va...
function EidosValue (line 472) | EidosValue *Mutation::GetProperty_Accelerated_isSegregating(EidosObject ...
function EidosValue (line 486) | EidosValue *Mutation::GetProperty_Accelerated_nucleotide(EidosObject **p...
function EidosValue (line 511) | EidosValue *Mutation::GetProperty_Accelerated_nucleotideValue(EidosObjec...
function EidosValue (line 529) | EidosValue *Mutation::GetProperty_Accelerated_originTick(EidosObject **p...
function EidosValue (line 543) | EidosValue *Mutation::GetProperty_Accelerated_position(EidosObject **p_v...
function EidosValue (line 557) | EidosValue *Mutation::GetProperty_Accelerated_subpopID(EidosObject **p_v...
function EidosValue (line 571) | EidosValue *Mutation::GetProperty_Accelerated_tag(EidosObject **p_values...
function EidosValue (line 589) | EidosValue *Mutation::GetProperty_Accelerated_selectionCoeff(EidosObject...
function EidosValue (line 603) | EidosValue *Mutation::GetProperty_Accelerated_mutationType(EidosObject *...
function EidosValue_SP (line 707) | EidosValue_SP Mutation::ExecuteInstanceMethod(EidosGlobalStringID p_meth...
function EidosValue_SP (line 719) | EidosValue_SP Mutation::ExecuteMethod_setSelectionCoeff(EidosGlobalStrin...
function EidosValue_SP (line 763) | EidosValue_SP Mutation::ExecuteMethod_setMutationType(EidosGlobalStringI...
FILE: core/mutation.h
type MutationIndex (line 52) | typedef int32_t MutationIndex;
type MutationState (line 60) | typedef enum {
function class (line 68) | class Mutation : public EidosDictionaryRetained
function CompareMutations (line 165) | inline __attribute__((always_inline)) bool CompareMutations(const Mutati...
function class (line 173) | class Mutation_Class : public EidosDictionaryRetained_Class
function MutationIndex (line 220) | inline __attribute__((always_inline)) MutationIndex SLiM_NewMutationFrom...
function SLiM_DisposeMutationToBlock (line 243) | inline __attribute__((always_inline)) void SLiM_DisposeMutationToBlock(M...
FILE: core/mutation_run.cpp
function Mutation (line 148) | Mutation *MutationRun::mutation_with_type_and_position(MutationType *p_m...
FILE: core/mutation_run.h
type std (line 55) | typedef std::vector<const MutationRun *> MutationRunPool;
type MutationRunContext (line 59) | typedef struct MutationRunContext {
function class (line 98) | class MutationRun
function validate_nonneutral_cache (line 784) | inline __attribute__((always_inline)) void validate_nonneutral_cache(int...
function tally_nonneutral_mutations (line 816) | inline __attribute__((always_inline)) void tally_nonneutral_mutations(in...
function enforce_stack_policy_for_addition (line 841) | inline __attribute__((always_inline)) bool MutationRun::enforce_stack_po...
FILE: core/mutation_type.cpp
function EidosClass (line 420) | const EidosClass *MutationType::Class(void) const
function EidosValue_SP (line 430) | EidosValue_SP MutationType::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue (line 547) | EidosValue *MutationType::GetProperty_Accelerated_id(EidosObject **p_val...
function EidosValue (line 561) | EidosValue *MutationType::GetProperty_Accelerated_tag(EidosObject **p_va...
function EidosValue (line 579) | EidosValue *MutationType::GetProperty_Accelerated_dominanceCoeff(EidosOb...
function EidosValue_SP (line 735) | EidosValue_SP MutationType::ExecuteInstanceMethod(EidosGlobalStringID p_...
function EidosValue_SP (line 747) | EidosValue_SP MutationType::ExecuteMethod_drawSelectionCoefficient(Eidos...
function EidosValue_SP (line 768) | EidosValue_SP MutationType::ExecuteMethod_setDistribution(EidosGlobalStr...
FILE: core/mutation_type.h
type class (line 50) | enum class
function class (line 63) | class MutationType : public EidosDictionaryUnretained
function class (line 204) | class MutationType_Class : public EidosDictionaryUnretained_Class
FILE: core/polymorphism.cpp
function slim_polymorphismid_t (line 165) | slim_polymorphismid_t FindMutationInPolymorphismMap(const PolymorphismMa...
function AddMutationToPolymorphismMap (line 176) | void AddMutationToPolymorphismMap(PolymorphismMap *p_polymorphisms, cons...
FILE: core/polymorphism.h
type std (line 40) | typedef std::map<const slim_mutationid_t,Polymorphism> PolymorphismMap;
type std (line 41) | typedef std::pair<const slim_mutationid_t,Polymorphism> PolymorphismPair;
function class (line 44) | class Polymorphism
FILE: core/population.cpp
function Subpopulation (line 177) | Subpopulation *Population::AddSubpopulation(slim_objectid_t p_subpop_id,...
function Subpopulation (line 221) | Subpopulation *Population::AddSubpopulationSplit(slim_objectid_t p_subpo...
function slim_popsize_t (line 697) | slim_popsize_t Population::ApplyMateChoiceCallbacks(slim_popsize_t p_par...
type slim_pair_hash (line 5866) | struct slim_pair_hash {
function slim_refcount_t (line 6787) | slim_refcount_t Population::_CountNonNullHaplosomesForChromosome(Chromos...
function EidosValue_SP (line 7290) | EidosValue_SP Population::Eidos_FrequenciesForTalliedMutations(EidosValu...
function EidosValue_SP (line 7377) | EidosValue_SP Population::Eidos_CountsForTalliedMutations(EidosValue *mu...
FILE: core/population.h
type class (line 54) | enum class
function class (line 61) | class SLiM_DeferredReproduction_NonRecombinant {
function class (line 80) | class SLiM_DeferredReproduction_Recombinant {
type FitnessHistory (line 106) | typedef struct FitnessHistory {
type SubpopSizeHistory (line 112) | typedef struct SubpopSizeHistory {
function class (line 119) | class Population
FILE: core/slim_eidos_block.cpp
function SLiM_TokenIsCallbackIdentifier (line 52) | static inline bool SLiM_TokenIsCallbackIdentifier(EidosToken *token)
function EidosASTNode (line 95) | EidosASTNode *SLiMEidosScript::Parse_SLiMFile(void)
function EidosASTNode (line 133) | EidosASTNode *SLiMEidosScript::Parse_SpeciesSpecifier(void)
function EidosASTNode (line 167) | EidosASTNode *SLiMEidosScript::Parse_TicksSpecifier(void)
function EidosASTNode (line 201) | EidosASTNode *SLiMEidosScript::Parse_SLiMEidosBlock(void)
function slim_objectid_t (line 813) | slim_objectid_t SLiMEidosScript::ExtractIDFromStringWithPrefix(const std...
function SLiMEidosBlockType (line 849) | SLiMEidosBlockType SLiMEidosBlock::BlockTypeForRootNode(EidosASTNode *p_...
function EidosClass (line 1602) | const EidosClass *SLiMEidosBlock::Class(void) const
function EidosValue_SP (line 1650) | EidosValue_SP SLiMEidosBlock::GetProperty(EidosGlobalStringID p_property...
function EidosTypeSpecifier (line 1862) | EidosTypeSpecifier SLiMTypeTable::GetTypeForSymbol(EidosGlobalStringID p...
function EidosTypeSpecifier (line 1976) | EidosTypeSpecifier SLiMTypeInterpreter::_TypeEvaluate_FunctionCall_Inter...
function EidosTypeSpecifier (line 2003) | EidosTypeSpecifier SLiMTypeInterpreter::_TypeEvaluate_MethodCall_Interna...
FILE: core/slim_eidos_block.h
type class (line 43) | enum class
function class (line 71) | class SLiMEidosScript : public EidosScript
function class (line 118) | class SLiMEidosBlock : public EidosDictionaryUnretained
function class (line 245) | class SLiMEidosBlock_Class : public EidosClass
function class (line 263) | class SLiMTypeTable : public EidosTypeTable
function class (line 289) | class SLiMTypeInterpreter : public EidosTypeInterpreter
FILE: core/slim_functions.cpp
function EidosValue_SP (line 1319) | EidosValue_SP SLiM_ExecuteFunction_codonsToAminoAcids(const std::vector<...
function EidosValue_SP (line 1461) | EidosValue_SP SLiM_ExecuteFunction_nucleotidesToCodons(const std::vector...
function CountNucleotides (line 1568) | static void CountNucleotides(EidosValue *sequence_value, int64_t *total_...
function EidosValue_SP (line 1646) | EidosValue_SP SLiM_ExecuteFunction_mm16To256(const std::vector<EidosValu...
function EidosValue_SP (line 1673) | EidosValue_SP SLiM_ExecuteFunction_mmJukesCantor(const std::vector<Eidos...
function EidosValue_SP (line 1712) | EidosValue_SP SLiM_ExecuteFunction_mmKimura(const std::vector<EidosValue...
function EidosValue_SP (line 1756) | EidosValue_SP SLiM_ExecuteFunction_nucleotideCounts(const std::vector<Ei...
function EidosValue_SP (line 1774) | EidosValue_SP SLiM_ExecuteFunction_nucleotideFrequencies(const std::vect...
function EidosValue_SP (line 1793) | EidosValue_SP SLiM_ExecuteFunction_randomNucleotides(const std::vector<E...
function EidosValue_SP (line 1937) | EidosValue_SP SLiM_ExecuteFunction_codonsToNucleotides(const std::vector...
function SummarizeGridIndex_1D (line 2057) | static inline int SummarizeGridIndex_1D(Individual *individual, int comp...
function SummarizeGridIndex_2D (line 2082) | static inline int SummarizeGridIndex_2D(Individual *individual, int comp...
function SummarizeGridIndex_3D (line 2109) | static inline int SummarizeGridIndex_3D(Individual *individual, int comp...
function EidosValue_SP (line 2139) | EidosValue_SP SLiM_ExecuteFunction_summarizeIndividuals(const std::vecto...
function EidosValue_SP (line 2579) | EidosValue_SP SLiM_ExecuteFunction_treeSeqMetadata(const std::vector<Eid...
FILE: core/slim_globals.cpp
function SLiM_WarmUp (line 66) | void SLiM_WarmUp(void)
function SLiM_RaiseTickRangeError (line 195) | void SLiM_RaiseTickRangeError(int64_t p_long_value)
function SLiM_RaiseAgeRangeError (line 200) | void SLiM_RaiseAgeRangeError(int64_t p_long_value)
function SLiM_RaisePositionRangeError (line 205) | void SLiM_RaisePositionRangeError(int64_t p_long_value)
function SLiM_RaisePedigreeIDRangeError (line 210) | void SLiM_RaisePedigreeIDRangeError(int64_t p_long_value)
function SLiM_RaiseObjectidRangeError (line 215) | void SLiM_RaiseObjectidRangeError(int64_t p_long_value)
function SLiM_RaisePopsizeRangeError (line 220) | void SLiM_RaisePopsizeRangeError(int64_t p_long_value)
function SLiM_RaiseUsertagRangeError (line 225) | void SLiM_RaiseUsertagRangeError(int64_t p_long_value)
function SLiM_RaisePolymorphismidRangeError (line 230) | void SLiM_RaisePolymorphismidRangeError(int64_t p_long_value)
function Community (line 235) | Community &SLiM_GetCommunityFromInterpreter(EidosInterpreter &p_interpre...
function slim_objectid_t (line 250) | slim_objectid_t SLiM_ExtractObjectIDFromEidosValue_is(EidosValue *p_valu...
function MutationType (line 255) | MutationType *SLiM_ExtractMutationTypeFromEidosValue_io(EidosValue *p_va...
function GenomicElementType (line 306) | GenomicElementType *SLiM_ExtractGenomicElementTypeFromEidosValue_io(Eido...
function Subpopulation (line 357) | Subpopulation *SLiM_ExtractSubpopulationFromEidosValue_io(EidosValue *p_...
function SLiMEidosBlock (line 408) | SLiMEidosBlock *SLiM_ExtractSLiMEidosBlockFromEidosValue_io(EidosValue *...
function Species (line 448) | Species *SLiM_ExtractSpeciesFromEidosValue_No(EidosValue *p_value, int p...
function SumUpMemoryUsage_Species (line 483) | void SumUpMemoryUsage_Species(SLiMMemoryUsage_Species &p_usage)
function SumUpMemoryUsage_Community (line 517) | void SumUpMemoryUsage_Community(SLiMMemoryUsage_Community &p_usage)
function AccumulateMemoryUsageIntoTotal_Species (line 533) | void AccumulateMemoryUsageIntoTotal_Species(SLiMMemoryUsage_Species &p_u...
function AccumulateMemoryUsageIntoTotal_Community (line 591) | void AccumulateMemoryUsageIntoTotal_Community(SLiMMemoryUsage_Community ...
function StringForSLiMCycleStage (line 626) | std::string StringForSLiMCycleStage(SLiMCycleStage p_stage)
function StringForChromosomeType (line 655) | std::string StringForChromosomeType(ChromosomeType p_chromosome_type)
function ChromosomeType (line 675) | ChromosomeType ChromosomeTypeForString(std::string type)
function StringForIndividualSex (line 699) | std::string StringForIndividualSex(IndividualSex p_sex)
function EidosValue_SP (line 875) | EidosValue_SP NucleotideArray::NucleotidesAsIntegerVector(int64_t start,...
function EidosValue_SP (line 905) | EidosValue_SP NucleotideArray::NucleotidesAsCodonVector(int64_t start, i...
function EidosValue_SP (line 944) | EidosValue_SP NucleotideArray::NucleotidesAsStringVector(int64_t start, ...
function EidosValue_SP (line 984) | EidosValue_SP NucleotideArray::NucleotidesAsStringSingleton(int64_t star...
function SLiM_ConfigureContext (line 1648) | void SLiM_ConfigureContext(void)
function StringForByteCount (line 1815) | static std::string StringForByteCount(int64_t bytes)
function SpanTagForColorFraction (line 1849) | static std::string SpanTagForColorFraction(double color_fraction)
function _ColorScriptWithProfileCounts (line 1873) | static void _ColorScriptWithProfileCounts(const EidosASTNode *node, doub...
function ColorScriptWithProfileCounts (line 1897) | static std::string ColorScriptWithProfileCounts(std::string script, cons...
function ColoredSpanForByteCount (line 1941) | static std::string ColoredSpanForByteCount(int64_t bytes, double total)
function HTMLEncodeString (line 1951) | static std::string HTMLEncodeString(const std::string &data)
function HTMLMakeSpacesNonBreaking (line 1974) | static std::string HTMLMakeSpacesNonBreaking(const char *data)
function WriteProfileResults (line 1994) | void WriteProfileResults(std::string profile_output_path, std::string mo...
FILE: core/slim_globals.h
type slim_tick_t (line 114) | typedef int32_t slim_tick_t;
type slim_age_t (line 115) | typedef int32_t slim_age_t;
type slim_position_t (line 116) | typedef int64_t slim_position_t;
type slim_chromosome_index_t (line 117) | typedef uint8_t slim_chromosome_index_t;
type slim_mutrun_index_t (line 118) | typedef int64_t slim_mutrun_index_t;
type slim_objectid_t (line 119) | typedef int32_t slim_objectid_t;
type slim_popsize_t (line 120) | typedef int32_t slim_popsize_t;
type slim_usertag_t (line 121) | typedef int64_t slim_usertag_t;
type slim_refcount_t (line 122) | typedef int32_t slim_refcount_t;
type slim_mutationid_t (line 123) | typedef int64_t slim_mutationid_t;
type slim_pedigreeid_t (line 124) | typedef int64_t slim_pedigreeid_t;
type slim_haplosomeid_t (line 125) | typedef int64_t slim_haplosomeid_t;
type slim_polymorphismid_t (line 126) | typedef int32_t slim_polymorphismid_t;
type slim_selcoeff_t (line 127) | typedef float slim_selcoeff_t;
function slim_tick_t (line 148) | inline __attribute__((always_inline)) slim_tick_t SLiMCastToTickTypeOrRa...
function slim_age_t (line 156) | inline __attribute__((always_inline)) slim_age_t SLiMCastToAgeTypeOrRais...
function slim_position_t (line 164) | inline __attribute__((always_inline)) slim_position_t SLiMCastToPosition...
function slim_pedigreeid_t (line 172) | inline __attribute__((always_inline)) slim_pedigreeid_t SLiMCastToPedigr...
function slim_objectid_t (line 180) | inline __attribute__((always_inline)) slim_objectid_t SLiMCastToObjectid...
function slim_popsize_t (line 188) | inline __attribute__((always_inline)) slim_popsize_t SLiMCastToPopsizeTy...
function slim_usertag_t (line 196) | inline __attribute__((always_inline)) slim_usertag_t SLiMCastToUsertagTy...
function slim_polymorphismid_t (line 204) | inline __attribute__((always_inline)) slim_polymorphismid_t SLiMCastToPo...
function slim_tick_t (line 212) | inline __attribute__((always_inline)) slim_tick_t SLiMClampToTickType(in...
function slim_position_t (line 221) | inline __attribute__((always_inline)) slim_position_t SLiMClampToPositio...
function slim_objectid_t (line 230) | inline __attribute__((always_inline)) slim_objectid_t SLiMClampToObjecti...
function slim_popsize_t (line 239) | inline __attribute__((always_inline)) slim_popsize_t SLiMClampToPopsizeT...
function slim_usertag_t (line 248) | inline __attribute__((always_inline)) slim_usertag_t SLiMClampToUsertagT...
type SLiMMemoryUsage_Species (line 392) | typedef struct
type SLiMMemoryUsage_Community (line 449) | typedef struct
type class (line 539) | enum class
type class (line 545) | enum class
type class (line 578) | enum class
type class (line 600) | enum class
type class (line 614) | enum class
function BoundaryCondition (line 630) | enum class BoundaryCondition : char {
type _SLiMGlobalStringID (line 1222) | enum _SLiMGlobalStringID : int {
FILE: core/slim_test.cpp
function SLiMAssertScriptSuccess (line 46) | void SLiMAssertScriptSuccess(const std::string &p_script_string, int p_l...
function SLiMAssertScriptRaise (line 113) | void SLiMAssertScriptRaise(const std::string &p_script_string, const std...
function SLiMAssertScriptStop (line 222) | void SLiMAssertScriptStop(const std::string &p_script_string, int p_line...
function SLiMAssertScriptRaisePosition (line 291) | void SLiMAssertScriptRaisePosition(const std::string &p_script_string, c...
function RunSLiMTests (line 416) | int RunSLiMTests(void)
function _RunBasicTests (line 510) | void _RunBasicTests(void)
function _RunErrorPositionTests (line 685) | void _RunErrorPositionTests(void)
function _RunRelatednessTests (line 847) | void _RunRelatednessTests(void)
function _RunSLiMTimingTests (line 1117) | void _RunSLiMTimingTests(void)
function _RunParallelSLiMTests (line 1387) | extern void _RunParallelSLiMTests()
FILE: core/slim_test_core.cpp
function _RunInitTests (line 29) | void _RunInitTests(void)
function _RunCommunityTests (line 309) | void _RunCommunityTests(void)
function _RunSpeciesTests (line 357) | void _RunSpeciesTests(const std::string &temp_path)
function _RunSubpopulationTests (line 945) | void _RunSubpopulationTests(void)
function _RunIndividualTests (line 1892) | void _RunIndividualTests(void)
function _RunSLiMEidosBlockTests (line 2168) | void _RunSLiMEidosBlockTests(void)
FILE: core/slim_test_genetics.cpp
function _RunMutationTypeTests (line 29) | void _RunMutationTypeTests(void)
function _RunGenomicElementTypeTests (line 148) | void _RunGenomicElementTypeTests(void)
function _RunGenomicElementTests (line 187) | void _RunGenomicElementTests(void)
function _RunChromosomeTests (line 229) | void _RunChromosomeTests(void)
function _RunMutationTests (line 644) | void _RunMutationTests(void)
function _RunSubstitutionTests (line 679) | void _RunSubstitutionTests(void)
function _RunHaplosomeTests (line 703) | void _RunHaplosomeTests(const std::string &temp_path)
FILE: core/slim_test_other.cpp
function _RunInteractionTypeTests (line 40) | void _RunInteractionTypeTests(void)
function _RunInteractionTypeTests_Nonspatial (line 119) | void _RunInteractionTypeTests_Nonspatial(bool p_sex_enabled, const std::...
function _RunInteractionTypeTests_Spatial (line 159) | void _RunInteractionTypeTests_Spatial(const std::string &p_max_distance,...
function _RunInteractionTypeTests_LocalPopDensity (line 1114) | void _RunInteractionTypeTests_LocalPopDensity()
function _RunContinuousSpaceTests (line 1174) | void _RunContinuousSpaceTests(void)
function _RunSpatialMapTests (line 1627) | void _RunSpatialMapTests(void)
function _RunNonWFTests (line 1991) | void _RunNonWFTests(void)
function _RunTreeSeqTests (line 2084) | void _RunTreeSeqTests(const std::string &temp_path)
function _RunNucleotideFunctionTests (line 2235) | void _RunNucleotideFunctionTests(void)
function _RunNucleotideMethodTests (line 2489) | void _RunNucleotideMethodTests(void)
function _RunPopGenFunctionTests (line 2811) | void _RunPopGenFunctionTests(void)
function _RunSpatialKernelValueTests (line 3040) | void _RunSpatialKernelValueTests(void)
function _RunSpatialKernelSIMDTests (line 3363) | void _RunSpatialKernelSIMDTests(void)
FILE: core/slim_test_parallel.h
function mutationEffect (line 91) | mutationEffect(m2) { return 1.0; }
FILE: core/sparse_vector.h
type sv_value_t (line 41) | typedef float sv_value_t;
type SparseVectorDataType (line 44) | typedef enum {
function class (line 51) | class SparseVector
function Reset (line 111) | inline void SparseVector::Reset(unsigned int p_ncols, SparseVectorDataTy...
function AddEntryPresence (line 125) | inline void SparseVector::AddEntryPresence(const uint32_t p_column)
function AddEntryDistance (line 143) | inline void SparseVector::AddEntryDistance(const uint32_t p_column, sv_v...
function AddEntryStrength (line 162) | inline void SparseVector::AddEntryStrength(const uint32_t p_column, sv_v...
function Finished (line 181) | inline __attribute__((always_inline)) void SparseVector::Finished(void)
function Presences (line 194) | inline void SparseVector::Presences(uint32_t *p_nnz) const
function Presences (line 207) | inline void SparseVector::Presences(uint32_t *p_nnz, const uint32_t **p_...
function sv_value_t (line 221) | inline const sv_value_t *SparseVector::Distances(uint32_t *p_nnz) const
function sv_value_t (line 236) | inline const sv_value_t *SparseVector::Distances(uint32_t *p_nnz, const ...
function Distances (line 252) | inline void SparseVector::Distances(uint32_t *p_nnz, uint32_t **p_column...
function sv_value_t (line 268) | inline const sv_value_t *SparseVector::Strengths(uint32_t *p_nnz) const
function sv_value_t (line 283) | inline const sv_value_t *SparseVector::Strengths(uint32_t *p_nnz, const ...
function Strengths (line 299) | inline void SparseVector::Strengths(uint32_t *p_nnz, uint32_t **p_column...
FILE: core/spatial_kernel.h
type class (line 39) | enum class
function class (line 55) | class SpatialKernel
FILE: core/spatial_map.cpp
function EidosClass (line 1317) | const EidosClass *SpatialMap::Class(void) const
function EidosValue_SP (line 1327) | EidosValue_SP SpatialMap::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue_SP (line 1422) | EidosValue_SP SpatialMap::ExecuteInstanceMethod(EidosGlobalStringID p_me...
function EidosValue_SP (line 1451) | EidosValue_SP SpatialMap::ExecuteMethod_add(EidosGlobalStringID p_method...
function EidosValue_SP (line 1495) | EidosValue_SP SpatialMap::ExecuteMethod_blend(EidosGlobalStringID p_meth...
function EidosValue_SP (line 1546) | EidosValue_SP SpatialMap::ExecuteMethod_multiply(EidosGlobalStringID p_m...
function EidosValue_SP (line 1590) | EidosValue_SP SpatialMap::ExecuteMethod_subtract(EidosGlobalStringID p_m...
function EidosValue_SP (line 1634) | EidosValue_SP SpatialMap::ExecuteMethod_divide(EidosGlobalStringID p_met...
function EidosValue_SP (line 1678) | EidosValue_SP SpatialMap::ExecuteMethod_power(EidosGlobalStringID p_meth...
function EidosValue_SP (line 1720) | EidosValue_SP SpatialMap::ExecuteMethod_exp(EidosGlobalStringID p_method...
function EidosValue_SP (line 1733) | EidosValue_SP SpatialMap::ExecuteMethod_changeColors(EidosGlobalStringID...
function EidosValue_SP (line 1746) | EidosValue_SP SpatialMap::ExecuteMethod_changeValues(EidosGlobalStringID...
function EidosValue_SP (line 1785) | EidosValue_SP SpatialMap::ExecuteMethod_gridValues(EidosGlobalStringID p...
function EidosValue_SP (line 1821) | EidosValue_SP SpatialMap::ExecuteMethod_interpolate(EidosGlobalStringID ...
function EidosValue_SP (line 2110) | EidosValue_SP SpatialMap::ExecuteMethod_mapColor(EidosGlobalStringID p_m...
function EidosValue_SP (line 2139) | EidosValue_SP SpatialMap::ExecuteMethod_mapImage(EidosGlobalStringID p_m...
function EidosValue_SP (line 2250) | EidosValue_SP SpatialMap::ExecuteMethod_mapValue(EidosGlobalStringID p_m...
function EidosValue_SP (line 2562) | EidosValue_SP SpatialMap::ExecuteMethod_range(EidosGlobalStringID p_meth...
function EidosValue_SP (line 2575) | EidosValue_SP SpatialMap::ExecuteMethod_rescale(EidosGlobalStringID p_me...
function EidosValue_SP (line 2605) | EidosValue_SP SpatialMap::ExecuteMethod_sampleImprovedNearbyPoint(EidosG...
function EidosValue_SP (line 2849) | EidosValue_SP SpatialMap::ExecuteMethod_sampleNearbyPoint(EidosGlobalStr...
function EidosValue_SP (line 3079) | EidosValue_SP SpatialMap::ExecuteMethod_smooth(EidosGlobalStringID p_met...
function EidosValue_SP (line 3130) | EidosValue_SP SpatialMap::_DeriveTemporarySpatialMapWithEidosValue(Eidos...
function EidosValue_SP (line 3151) | static EidosValue_SP SLiM_Instantiate_SpatialMap(const std::vector<Eidos...
FILE: core/spatial_map.h
function class (line 48) | class SpatialMap : public EidosDictionaryRetained
function class (line 190) | class SpatialMap_Class : public EidosDictionaryRetained_Class
FILE: core/species.cpp
function Chromosome (line 304) | Chromosome *Species::ChromosomeFromID(int64_t p_id)
function Chromosome (line 314) | Chromosome *Species::ChromosomeFromSymbol(const std::string &p_symbol)
function Chromosome (line 354) | Chromosome *Species::CurrentlyInitializingChromosome(void)
function Chromosome (line 403) | Chromosome *Species::GetChromosomeFromEidosValue(EidosValue *chromosome_...
function GetInputLine (line 519) | void GetInputLine(std::istream &p_input_file, std::string &p_line)
function SLiMFileFormat (line 533) | SLiMFileFormat Species::FormatOfPopulationFile(const std::string &p_file...
function slim_tick_t (line 708) | slim_tick_t Species::InitializePopulationFromFile(const std::string &p_f...
function slim_tick_t (line 805) | slim_tick_t Species::_InitializePopulationFromTextFile(const char *p_fil...
function slim_tick_t (line 1443) | slim_tick_t Species::_InitializePopulationFromBinaryFile(const char *p_f...
function slim_tick_t (line 2403) | slim_tick_t Species::_InitializePopulationFromBinaryFile(const char *p_f...
function Subpopulation (line 2423) | Subpopulation *Species::SubpopulationWithName(const std::string &p_subpo...
type edge_plus_time (line 4689) | struct edge_plus_time {
function _Eidos_ParallelQuicksort_ASCENDING (line 4698) | static void _Eidos_ParallelQuicksort_ASCENDING(edge_plus_time *values, i...
function slim_sort_edges (line 4781) | static int
function slim_sort_edges_PARALLEL (line 4839) | static int
function slim_objectid_t (line 6278) | static slim_objectid_t CheckSLiMPopulationMetadata(const char *p_metadat...
type tm (line 6722) | struct tm
type utsname (line 6740) | struct utsname
type stat (line 7230) | struct stat
type dirent (line 7253) | struct dirent
type dirent (line 7306) | struct dirent
type ts_subpop_info (line 8501) | struct ts_subpop_info {
type ts_mut_info (line 9489) | struct ts_mut_info {
function table_memcmp (line 9949) | static int table_memcmp(const void *__s1, const void *__s2, size_t __n)
function _CompareNodeTables (line 9974) | void _CompareNodeTables(tsk_node_table_t &nodes0, tsk_node_table_t &nodes1)
function _CompareIndividualTables (line 10010) | void _CompareIndividualTables(tsk_individual_table_t &individuals0, tsk_...
function _ComparePopulationTables (line 10055) | void _ComparePopulationTables(tsk_population_table_t &population0, tsk_p...
function slim_tick_t (line 10338) | slim_tick_t Species::_InitializePopulationFromTskitBinaryFile(const char...
function slim_tick_t (line 10410) | slim_tick_t Species::_InitializePopulationFromTskitDirectory(std::string...
FILE: core/species.h
type ts_subpop_info (line 60) | struct ts_subpop_info
type ts_mut_info (line 61) | struct ts_mut_info
function SLiMFileFormat (line 65) | enum class SLiMFileFormat
function GraveyardSize (line 486) | inline __attribute__((always_inline)) size_t GraveyardSize(void) const ...
function Subpopulation (line 488) | inline Subpopulation *SubpopulationWithID(slim_objectid_t p_subpop_id) {
function MutationType (line 493) | inline MutationType *MutationTypeWithID(slim_objectid_t p_muttype_id) {
function MutationType (line 498) | inline MutationType *MutationTypeWithIndex(int p_muttype_index) {
function class (line 666) | class Species_Class : public EidosDictionaryUnretained_Class
FILE: core/species_eidos.cpp
function EidosValue_SP (line 54) | EidosValue_SP Species::ExecuteContextFunction_initializeAncestralNucleot...
function EidosValue_SP (line 193) | EidosValue_SP Species::ExecuteContextFunction_initializeChromosome(const...
function EidosValue_SP (line 359) | EidosValue_SP Species::ExecuteContextFunction_initializeGenomicElement(c...
function EidosValue_SP (line 489) | EidosValue_SP Species::ExecuteContextFunction_initializeGenomicElementTy...
function EidosValue_SP (line 591) | EidosValue_SP Species::ExecuteContextFunction_initializeMutationType(con...
function EidosValue_SP (line 673) | EidosValue_SP Species::ExecuteContextFunction_initializeRecombinationRat...
function EidosValue_SP (line 834) | EidosValue_SP Species::ExecuteContextFunction_initializeGeneConversion(c...
function EidosValue_SP (line 895) | EidosValue_SP Species::ExecuteContextFunction_initializeHotspotMap(const...
function EidosValue_SP (line 1057) | EidosValue_SP Species::ExecuteContextFunction_initializeMutationRate(con...
function EidosValue_SP (line 1220) | EidosValue_SP Species::ExecuteContextFunction_initializeSex(const std::s...
function EidosValue_SP (line 1290) | EidosValue_SP Species::ExecuteContextFunction_initializeSLiMOptions(cons...
function EidosValue_SP (line 1501) | EidosValue_SP Species::ExecuteContextFunction_initializeSpecies(const st...
function EidosValue_SP (line 1588) | EidosValue_SP Species::ExecuteContextFunction_initializeTreeSeq(const st...
function EidosClass (line 1747) | const EidosClass *Species::Class(void) const
function EidosValue_SP (line 1761) | EidosValue_SP Species::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue_SP (line 2010) | EidosValue_SP Species::ExecuteInstanceMethod(EidosGlobalStringID p_metho...
function EidosValue_SP (line 2059) | EidosValue_SP Species::ExecuteMethod_addPatternForClone(EidosGlobalStrin...
function EidosValue_SP (line 2142) | EidosValue_SP Species::ExecuteMethod_addPatternForCross(EidosGlobalStrin...
function EidosValue_SP (line 2229) | EidosValue_SP Species::ExecuteMethod_addPatternForNull(EidosGlobalString...
function EidosValue_SP (line 2317) | EidosValue_SP Species::ExecuteMethod_addPatternForRecombinant(EidosGloba...
function EidosValue_SP (line 2480) | EidosValue_SP Species::ExecuteMethod_addSubpop(EidosGlobalStringID p_met...
function EidosValue_SP (line 2533) | EidosValue_SP Species::ExecuteMethod_addSubpopSplit(EidosGlobalStringID ...
function EidosValue_SP (line 2577) | EidosValue_SP Species::ExecuteMethod_chromosomesOfType(EidosGlobalString...
function EidosValue_SP (line 2602) | EidosValue_SP Species::ExecuteMethod_chromosomesWithIDs(EidosGlobalStrin...
function EidosValue_SP (line 2629) | EidosValue_SP Species::ExecuteMethod_chromosomesWithSymbols(EidosGlobalS...
function EidosValue_SP (line 2656) | EidosValue_SP Species::ExecuteMethod_individualsWithPedigreeIDs(EidosGlo...
function EidosValue_SP (line 2813) | EidosValue_SP Species::ExecuteMethod_killIndividuals(EidosGlobalStringID...
function EidosValue_SP (line 2930) | EidosValue_SP Species::ExecuteMethod_mutationFreqsCounts(EidosGlobalStri...
function EidosValue_SP (line 2992) | EidosValue_SP Species::ExecuteMethod_mutationsOfType(EidosGlobalStringID...
function EidosValue_SP (line 3088) | EidosValue_SP Species::ExecuteMethod_countOfMutationsOfType(EidosGlobalS...
function EidosValue_SP (line 3146) | EidosValue_SP Species::ExecuteMethod_outputFixedMutations(EidosGlobalStr...
function EidosValue_SP (line 3243) | EidosValue_SP Species::ExecuteMethod_outputFull(EidosGlobalStringID p_me...
function EidosValue_SP (line 3336) | EidosValue_SP Species::ExecuteMethod_outputMutations(EidosGlobalStringID...
function EidosValue_SP (line 3473) | EidosValue_SP Species::ExecuteMethod_readFromPopulationFile(EidosGlobalS...
function EidosValue_SP (line 3553) | EidosValue_SP Species::ExecuteMethod_recalculateFitness(EidosGlobalStrin...
function EidosValue_SP (line 3586) | EidosValue_SP Species::ExecuteMethod_registerFitnessEffectCallback(Eidos...
function EidosValue_SP (line 3628) | EidosValue_SP Species::ExecuteMethod_registerMateModifyRecSurvCallback(E...
function EidosValue_SP (line 3692) | EidosValue_SP Species::ExecuteMethod_registerMutationCallback(EidosGloba...
function EidosValue_SP (line 3736) | EidosValue_SP Species::ExecuteMethod_registerMutationEffectCallback(Eido...
function EidosValue_SP (line 3780) | EidosValue_SP Species::ExecuteMethod_registerReproductionCallback(EidosG...
function EidosValue_SP (line 3838) | EidosValue_SP Species::ExecuteMethod_simulationFinished(EidosGlobalStrin...
function EidosValue_SP (line 3853) | EidosValue_SP Species::ExecuteMethod_skipTick(EidosGlobalStringID p_meth...
function EidosValue_SP (line 3883) | EidosValue_SP Species::ExecuteMethod_subsetMutations(EidosGlobalStringID...
function EidosValue_SP (line 4080) | EidosValue_SP Species::ExecuteMethod_substitutionsOfType(EidosGlobalStri...
function EidosValue_SP (line 4107) | EidosValue_SP Species::ExecuteMethod_treeSeqCoalesced(EidosGlobalStringI...
function EidosValue_SP (line 4127) | EidosValue_SP Species::ExecuteMethod_treeSeqSimplify(EidosGlobalStringID...
function EidosValue_SP (line 4150) | EidosValue_SP Species::ExecuteMethod_treeSeqRememberIndividuals(EidosGlo...
function EidosValue_SP (line 4192) | EidosValue_SP Species::ExecuteMethod_treeSeqOutput(EidosGlobalStringID p...
function EidosValue_SP (line 4231) | EidosValue_SP Species::ExecuteMethod__debug(EidosGlobalStringID p_method...
FILE: core/subpopulation.cpp
function slim_refcount_t (line 1320) | slim_refcount_t Subpopulation::NullHaplosomeCount(void)
function Individual (line 3445) | Individual *Subpopulation::GenerateIndividualCrossed(Individual *p_paren...
function Individual (line 3829) | Individual *Subpopulation::GenerateIndividualSelfed(Individual *p_parent)
function Individual (line 4026) | Individual *Subpopulation::GenerateIndividualCloned(Individual *p_parent)
function Individual (line 4214) | Individual *Subpopulation::GenerateIndividualEmpty(slim_popsize_t p_indi...
function EidosClass (line 6209) | const EidosClass *Subpopulation::Class(void) const
function EidosValue_SP (line 6219) | EidosValue_SP Subpopulation::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue (line 6454) | EidosValue *Subpopulation::GetProperty_Accelerated_id(EidosObject **p_va...
function EidosValue (line 6468) | EidosValue *Subpopulation::GetProperty_Accelerated_firstMaleIndex(EidosO...
function EidosValue (line 6482) | EidosValue *Subpopulation::GetProperty_Accelerated_individualCount(Eidos...
function EidosValue (line 6496) | EidosValue *Subpopulation::GetProperty_Accelerated_tag(EidosObject **p_v...
function EidosValue (line 6514) | EidosValue *Subpopulation::GetProperty_Accelerated_fitnessScaling(EidosO...
function EidosValue_SP (line 6617) | EidosValue_SP Subpopulation::ExecuteInstanceMethod(EidosGlobalStringID p...
function IndividualSex (line 6668) | IndividualSex Subpopulation::_ValidateHaplosomesAndChooseSex(ChromosomeT...
function IndividualSex (line 6865) | IndividualSex Subpopulation::_SexForSexValue(EidosValue *p_sex_value, bo...
function EidosValue_SP (line 6918) | EidosValue_SP Subpopulation::ExecuteMethod_addCloned(EidosGlobalStringID...
function EidosValue_SP (line 7008) | EidosValue_SP Subpopulation::ExecuteMethod_addCrossed(EidosGlobalStringI...
function EidosValue_SP (line 7123) | EidosValue_SP Subpopulation::ExecuteMethod_addEmpty(EidosGlobalStringID ...
function EidosValue_SP (line 7198) | EidosValue_SP Subpopulation::ExecuteMethod_addMultiRecombinant(EidosGlob...
function EidosValue_SP (line 8068) | EidosValue_SP Subpopulation::ExecuteMethod_addRecombinant(EidosGlobalStr...
function EidosValue_SP (line 8660) | EidosValue_SP Subpopulation::ExecuteMethod_addSelfed(EidosGlobalStringID...
function EidosValue_SP (line 8750) | EidosValue_SP Subpopulation::ExecuteMethod_takeMigrants(EidosGlobalStrin...
function EidosValue_SP (line 8918) | EidosValue_SP Subpopulation::ExecuteMethod_setMigrationRates(EidosGlobal...
function EidosValue_SP (line 8967) | EidosValue_SP Subpopulation::ExecuteMethod_haplosomesForChromosomes(Eido...
function EidosValue_SP (line 9003) | EidosValue_SP Subpopulation::ExecuteMethod_deviatePositions(EidosGlobalS...
function EidosValue_SP (line 9428) | EidosValue_SP Subpopulation::ExecuteMethod_deviatePositionsWithMap(Eidos...
function EidosValue_SP (line 10131) | EidosValue_SP Subpopulation::ExecuteMethod_pointDeviated(EidosGlobalStri...
function EidosValue_SP (line 10510) | EidosValue_SP Subpopulation::ExecuteMethod_pointInBounds(EidosGlobalStri...
function EidosValue_SP (line 10624) | EidosValue_SP Subpopulation::ExecuteMethod_pointReflected(EidosGlobalStr...
function EidosValue_SP (line 10741) | EidosValue_SP Subpopulation::ExecuteMethod_pointStopped(EidosGlobalStrin...
function EidosValue_SP (line 10822) | EidosValue_SP Subpopulation::ExecuteMethod_pointPeriodic(EidosGlobalStri...
function EidosValue_SP (line 10946) | EidosValue_SP Subpopulation::ExecuteMethod_pointUniform(EidosGlobalStrin...
function EidosValue_SP (line 11033) | EidosValue_SP Subpopulation::ExecuteMethod_pointUniformWithMap(EidosGlob...
function EidosValue_SP (line 11216) | EidosValue_SP Subpopulation::ExecuteMethod_setCloningRate(EidosGlobalStr...
function EidosValue_SP (line 11264) | EidosValue_SP Subpopulation::ExecuteMethod_setSelfingRate(EidosGlobalStr...
function EidosValue_SP (line 11288) | EidosValue_SP Subpopulation::ExecuteMethod_setSexRatio(EidosGlobalString...
function EidosValue_SP (line 11317) | EidosValue_SP Subpopulation::ExecuteMethod_setSpatialBounds(EidosGlobalS...
function EidosValue_SP (line 11395) | EidosValue_SP Subpopulation::ExecuteMethod_setSubpopulationSize(EidosGlo...
function EidosValue_SP (line 11413) | EidosValue_SP Subpopulation::ExecuteMethod_removeSubpopulation(EidosGlob...
function EidosValue_SP (line 11431) | EidosValue_SP Subpopulation::ExecuteMethod_cachedFitness(EidosGlobalStri...
function EidosValue_SP (line 11486) | EidosValue_SP Subpopulation::ExecuteMethod_sampleIndividuals(EidosGlobal...
function EidosValue_SP (line 11942) | EidosValue_SP Subpopulation::ExecuteMethod_subsetIndividuals(EidosGlobal...
function EidosValue_SP (line 12153) | EidosValue_SP Subpopulation::ExecuteMethod_defineSpatialMap(EidosGlobalS...
function EidosValue_SP (line 12199) | EidosValue_SP Subpopulation::ExecuteMethod_addSpatialMap(EidosGlobalStri...
function EidosValue_SP (line 12232) | EidosValue_SP Subpopulation::ExecuteMethod_removeSpatialMap(EidosGlobalS...
function EidosValue_SP (line 12284) | EidosValue_SP Subpopulation::ExecuteMethod_spatialMapColor(EidosGlobalSt...
function EidosValue_SP (line 12316) | EidosValue_SP Subpopulation::ExecuteMethod_spatialMapImage(EidosGlobalSt...
function EidosValue_SP (line 12348) | EidosValue_SP Subpopulation::ExecuteMethod_spatialMapValue(EidosGlobalSt...
function EidosValue_SP (line 12401) | EidosValue_SP Subpopulation::ExecuteMethod_outputXSample(EidosGlobalStri...
function EidosValue_SP (line 12584) | EidosValue_SP Subpopulation::ExecuteMethod_configureDisplay(EidosGlobalS...
FILE: core/subpopulation.h
type std (line 75) | typedef std::pair<std::string, SpatialMap *> SpatialMapPair;
type std (line 76) | typedef std::map<std::string, SpatialMap *> SpatialMapMap;
function class (line 83) | class Subpopulation : public EidosDictionaryUnretained
function slim_popsize_t (line 505) | inline __attribute__((always_inline)) slim_popsize_t Subpopulation::Draw...
function slim_popsize_t (line 518) | inline __attribute__((always_inline)) slim_popsize_t Subpopulation::Draw...
function slim_popsize_t (line 529) | inline __attribute__((always_inline)) slim_popsize_t Subpopulation::Draw...
function slim_popsize_t (line 543) | inline __attribute__((always_inline)) slim_popsize_t Subpopulation::Draw...
function slim_popsize_t (line 554) | inline __attribute__((always_inline)) slim_popsize_t Subpopulation::Draw...
function slim_popsize_t (line 568) | inline __attribute__((always_inline)) slim_popsize_t Subpopulation::Draw...
function class (line 578) | class Subpopulation_Class : public EidosDictionaryUnretained_Class
FILE: core/substitution.cpp
function EidosClass (line 118) | const EidosClass *Substitution::Class(void) const
function EidosValue_SP (line 128) | EidosValue_SP Substitution::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue (line 204) | EidosValue *Substitution::GetProperty_Accelerated_id(EidosObject **p_val...
function EidosValue (line 218) | EidosValue *Substitution::GetProperty_Accelerated_nucleotide(EidosObject...
function EidosValue (line 243) | EidosValue *Substitution::GetProperty_Accelerated_nucleotideValue(EidosO...
function EidosValue (line 261) | EidosValue *Substitution::GetProperty_Accelerated_originTick(EidosObject...
function EidosValue (line 275) | EidosValue *Substitution::GetProperty_Accelerated_fixationTick(EidosObje...
function EidosValue (line 289) | EidosValue *Substitution::GetProperty_Accelerated_position(EidosObject *...
function EidosValue (line 303) | EidosValue *Substitution::GetProperty_Accelerated_subpopID(EidosObject *...
function EidosValue (line 317) | EidosValue *Substitution::GetProperty_Accelerated_tag(EidosObject **p_va...
function EidosValue (line 335) | EidosValue *Substitution::GetProperty_Accelerated_selectionCoeff(EidosOb...
function EidosValue (line 349) | EidosValue *Substitution::GetProperty_Accelerated_mutationType(EidosObje...
function EidosValue_SP (line 390) | EidosValue_SP Substitution::ExecuteInstanceMethod(EidosGlobalStringID p_...
FILE: core/substitution.h
function class (line 41) | class Substitution : public EidosDictionaryRetained
function class (line 96) | class Substitution_Class : public EidosDictionaryRetained_Class
FILE: eidos/eidos_ast_node.cpp
function EidosErrorPosition (line 426) | EidosErrorPosition EidosASTNode::ErrorPositionForNodeAndChildren(void) c...
function eidos_profile_t (line 462) | eidos_profile_t EidosASTNode::ConvertProfileTotalsToSelfCounts(void) const
function eidos_profile_t (line 493) | eidos_profile_t EidosASTNode::TotalOfSelfCounts(void) const
FILE: eidos/eidos_ast_node.h
type EidosASTNode_ArgumentFill (line 48) | struct EidosASTNode_ArgumentFill
type EidosASTNode_ArgumentCache (line 59) | struct EidosASTNode_ArgumentCache
function class (line 68) | class EidosASTNode
FILE: eidos/eidos_beep.cpp
function Eidos_Beep_BASE (line 52) | std::string Eidos_Beep_BASE(const std::string &p_sound_name)
FILE: eidos/eidos_call_signature.cpp
function EidosCallSignature (line 51) | EidosCallSignature *EidosCallSignature::AddArg(EidosValueMask p_arg_mask...
function EidosCallSignature (line 57) | EidosCallSignature *EidosCallSignature::AddArgWithDefault(EidosValueMask...
function EidosCallSignature (line 170) | EidosCallSignature *EidosCallSignature::AddEllipsis(void)
function EidosCallSignature (line 189) | EidosCallSignature *EidosCallSignature::AddLogical(const std::string &p_...
function EidosCallSignature (line 190) | EidosCallSignature *EidosCallSignature::AddInt(const std::string &p_argu...
function EidosCallSignature (line 191) | EidosCallSignature *EidosCallSignature::AddFloat(const std::string &p_ar...
function EidosCallSignature (line 192) | EidosCallSignature *EidosCallSignature::AddIntString(const std::string &...
function EidosCallSignature (line 193) | EidosCallSignature *EidosCallSignature::AddString(const std::string &p_a...
function EidosCallSignature (line 194) | EidosCallSignature *EidosCallSignature::AddNumeric(const std::string &p_...
function EidosCallSignature (line 195) | EidosCallSignature *EidosCallSignature::AddLogicalEquiv(const std::strin...
function EidosCallSignature (line 196) | EidosCallSignature *EidosCallSignature::AddAnyBase(const std::string &p_...
function EidosCallSignature (line 197) | EidosCallSignature *EidosCallSignature::AddAny(const std::string &p_argu...
function EidosCallSignature (line 198) | EidosCallSignature *EidosCallSignature::AddIntObject(const std::string &...
function EidosCallSignature (line 199) | EidosCallSignature *EidosCallSignature::AddObject(const std::string &p_a...
function EidosCallSignature (line 201) | EidosCallSignature *EidosCallSignature::AddLogical_O(const std::string &...
function EidosCallSignature (line 202) | EidosCallSignature *EidosCallSignature::AddInt_O(const std::string &p_ar...
function EidosCallSignature (line 203) | EidosCallSignature *EidosCallSignature::AddFloat_O(const std::string &p_...
function EidosCallSignature (line 204) | EidosCallSignature *EidosCallSignature::AddIntString_O(const std::string...
function EidosCallSignature (line 205) | EidosCallSignature *EidosCallSignature::AddString_O(const std::string &p...
function EidosCallSignature (line 206) | EidosCallSignature *EidosCallSignature::AddNumeric_O(const std::string &...
function EidosCallSignature (line 207) | EidosCallSignature *EidosCallSignature::AddLogicalEquiv_O(const std::str...
function EidosCallSignature (line 208) | EidosCallSignature *EidosCallSignature::AddAnyBase_O(const std::string &...
function EidosCallSignature (line 209) | EidosCallSignature *EidosCallSignature::AddAny_O(const std::string &p_ar...
function EidosCallSignature (line 210) | EidosCallSignature *EidosCallSignature::AddIntObject_O(const std::string...
function EidosCallSignature (line 211) | EidosCallSignature *EidosCallSignature::AddObject_O(const std::string &p...
function EidosCallSignature (line 213) | EidosCallSignature *EidosCallSignature::AddLogical_S(const std::string &...
function EidosCallSignature (line 214) | EidosCallSignature *EidosCallSignature::AddInt_S(const std::string &p_ar...
function EidosCallSignature (line 215) | EidosCallSignature *EidosCallSignature::AddFloat_S(const std::string &p_...
function EidosCallSignature (line 216) | EidosCallSignature *EidosCallSignature::AddIntString_S(const std::string...
function EidosCallSignature (line 217) | EidosCallSignature *EidosCallSignature::AddString_S(const std::string &p...
function EidosCallSignature (line 218) | EidosCallSignature *EidosCallSignature::AddNumeric_S(const std::string &...
function EidosCallSignature (line 219) | EidosCallSignature *EidosCallSignature::AddLogicalEquiv_S(const std::str...
function EidosCallSignature (line 220) | EidosCallSignature *EidosCallSignature::AddAnyBase_S(const std::string &...
function EidosCallSignature (line 221) | EidosCallSignature *EidosCallSignature::AddAny_S(const std::string &p_ar...
function EidosCallSignature (line 222) | EidosCallSignature *EidosCallSignature::AddIntObject_S(const std::string...
function EidosCallSignature (line 223) | EidosCallSignature *EidosCallSignature::AddObject_S(const std::string &p...
function EidosCallSignature (line 225) | EidosCallSignature *EidosCallSignature::AddLogical_OS(const std::string ...
function EidosCallSignature (line 226) | EidosCallSignature *EidosCallSignature::AddInt_OS(const std::string &p_a...
function EidosCallSignature (line 227) | EidosCallSignature *EidosCallSignature::AddFloat_OS(const std::string &p...
function EidosCallSignature (line 228) | EidosCallSignature *EidosCallSignature::AddIntString_OS(const std::strin...
function EidosCallSignature (line 229) | EidosCallSignature *EidosCallSignature::AddString_OS(const std::string &...
function EidosCallSignature (line 230) | EidosCallSignature *EidosCallSignature::AddNumeric_OS(const std::string ...
function EidosCallSignature (line 231) | EidosCallSignature *EidosCallSignature::AddLogicalEquiv_OS(const std::st...
function EidosCallSignature (line 232) | EidosCallSignature *EidosCallSignature::AddAnyBase_OS(const std::string ...
function EidosCallSignature (line 233) | EidosCallSignature *EidosCallSignature::AddAny_OS(const std::string &p_a...
function EidosCallSignature (line 234) | EidosCallSignature *EidosCallSignature::AddIntObject_OS(const std::strin...
function EidosCallSignature (line 235) | EidosCallSignature *EidosCallSignature::AddObject_OS(const std::string &...
function EidosCallSignature (line 237) | EidosCallSignature *EidosCallSignature::AddLogical_N(const std::string &...
function EidosCallSignature (line 238) | EidosCallSignature *EidosCallSignature::AddInt_N(const std::string &p_ar...
function EidosCallSignature (line 239) | EidosCallSignature *EidosCallSignature::AddFloat_N(const std::string &p_...
function EidosCallSignature (line 240) | EidosCallSignature *EidosCallSignature::AddIntString_N(const std::string...
function EidosCallSignature (line 241) | EidosCallSignature *EidosCallSignature::AddString_N(const std::string &p...
function EidosCallSignature (line 242) | EidosCallSignature *EidosCallSignature::AddNumeric_N(const std::string &...
function EidosCallSignature (line 243) | EidosCallSignature *EidosCallSignature::AddLogicalEquiv_N(const std::str...
function EidosCallSignature (line 244) | EidosCallSignature *EidosCallSignature::AddIntObject_N(const std::string...
function EidosCallSignature (line 245) | EidosCallSignature *EidosCallSignature::AddObject_N(const std::string &p...
function EidosCallSignature (line 247) | EidosCallSignature *EidosCallSignature::AddLogical_ON(const std::string ...
function EidosCallSignature (line 248) | EidosCallSignature *EidosCallSignature::AddInt_ON(const std::string &p_a...
function EidosCallSignature (line 249) | EidosCallSignature *EidosCallSignature::AddFloat_ON(const std::string &p...
function EidosCallSignature (line 250) | EidosCallSignature *EidosCallSignature::AddIntString_ON(const std::strin...
function EidosCallSignature (line 251) | EidosCallSignature *EidosCallSignature::AddString_ON(const std::string &...
function EidosCallSignature (line 252) | EidosCallSignature *EidosCallSignature::AddNumeric_ON(const std::string ...
function EidosCallSignature (line 253) | EidosCallSignature *EidosCallSignature::AddLogicalEquiv_ON(const std::st...
function EidosCallSignature (line 254) | EidosCallSignature *EidosCallSignature::AddIntObject_ON(const std::strin...
function EidosCallSignature (line 255) | EidosCallSignature *EidosCallSignature::AddObject_ON(const std::string &...
function EidosCallSignature (line 257) | EidosCallSignature *EidosCallSignature::AddLogical_SN(const std::string ...
function EidosCallSignature (line 258) | EidosCallSignature *EidosCallSignature::AddInt_SN(const std::string &p_a...
function EidosCallSignature (line 259) | EidosCallSignature *EidosCallSignature::AddFloat_SN(const std::string &p...
function EidosCallSignature (line 260) | EidosCallSignature *EidosCallSignature::AddIntString_SN(const std::strin...
function EidosCallSignature (line 261) | EidosCallSignature *EidosCallSignature::AddString_SN(const std::string &...
function EidosCallSignature (line 262) | EidosCallSignature *EidosCallSignature::AddNumeric_SN(const std::string ...
function EidosCallSignature (line 263) | EidosCallSignature *EidosCallSignature::AddLogicalEquiv_SN(const std::st...
function EidosCallSignature (line 264) | EidosCallSignature *EidosCallSignature::AddIntObject_SN(const std::strin...
function EidosCallSignature (line 265) | EidosCallSignature *EidosCallSignature::AddObject_SN(const std::string &...
function EidosCallSignature (line 267) | EidosCallSignature *EidosCallSignature::AddLogical_OSN(const std::string...
function EidosCallSignature (line 268) | EidosCallSignature *EidosCallSignature::AddInt_OSN(const std::string &p_...
function EidosCallSignature (line 269) | EidosCallSignature *EidosCallSignature::AddFloat_OSN(const std::string &...
function EidosCallSignature (line 270) | EidosCallSignature *EidosCallSignature::AddIntString_OSN(const std::stri...
function EidosCallSignature (line 271) | EidosCallSignature *EidosCallSignature::AddString_OSN(const std::string ...
function EidosCallSignature (line 272) | EidosCallSignature *EidosCallSignature::AddNumeric_OSN(const std::string...
function EidosCallSignature (line 273) | EidosCallSignature *EidosCallSignature::AddLogicalEquiv_OSN(const std::s...
function EidosCallSignature (line 274) | EidosCallSignature *EidosCallSignature::AddIntObject_OSN(const std::stri...
function EidosCallSignature (line 275) | EidosCallSignature *EidosCallSignature::AddObject_OSN(const std::string ...
function EidosCallSignature (line 277) | EidosCallSignature *EidosCallSignature::MarkDeprecated(void)
function CompareEidosCallSignatures (line 582) | bool CompareEidosCallSignatures(const EidosCallSignature_CSP &p_i, const...
function CompareEidosFunctionSignatures (line 682) | bool CompareEidosFunctionSignatures(const EidosFunctionSignature_CSP &p_...
function EidosInstanceMethodSignature (line 741) | EidosInstanceMethodSignature *EidosInstanceMethodSignature::DeclareAccel...
FILE: eidos/eidos_call_signature.h
type EidosValue_SP (line 33) | typedef EidosValue_SP (*EidosInternalFunctionPtr)(const std::vector<Eido...
type EidosValue_SP (line 42) | typedef EidosValue_SP (*Eidos_AcceleratedMethodImp)(EidosObject **p_valu...
function class (line 51) | class EidosCallSignature
type std (line 201) | typedef std::shared_ptr<EidosCallSignature const> EidosCallSignature_CSP;
function class (line 211) | class EidosFunctionSignature : public EidosCallSignature
type std (line 253) | typedef std::shared_ptr<EidosFunctionSignature const> EidosFunctionSigna...
function class (line 262) | class EidosMethodSignature : public EidosCallSignature
function class (line 286) | class EidosInstanceMethodSignature : public EidosMethodSignature
function class (line 314) | class EidosClassMethodSignature : public EidosMethodSignature
type std (line 337) | typedef std::shared_ptr<EidosMethodSignature const> EidosMethodSignature...
type std (line 338) | typedef std::shared_ptr<EidosInstanceMethodSignature const> EidosInstanc...
type std (line 339) | typedef std::shared_ptr<EidosClassMethodSignature const> EidosClassMetho...
FILE: eidos/eidos_class_DataFrame.cpp
function EidosDataFrame (line 60) | EidosDataFrame *EidosDataFrame::SubsetColumns(EidosValue *index_value)
function EidosDataFrame (line 151) | EidosDataFrame *EidosDataFrame::SubsetRows(EidosValue *index_value, bool...
function EidosClass (line 286) | const EidosClass *EidosDataFrame::Class(void) const
function EidosValue_SP (line 407) | EidosValue_SP EidosDataFrame::GetProperty(EidosGlobalStringID p_property...
function EidosValue_SP (line 433) | EidosValue_SP EidosDataFrame::ExecuteInstanceMethod(EidosGlobalStringID ...
function EidosValue_SP (line 454) | EidosValue_SP EidosDataFrame::ExecuteMethod_asMatrix(EidosGlobalStringID...
function EidosValue_SP (line 526) | EidosValue_SP EidosDataFrame::ExecuteMethod_cbind(EidosGlobalStringID p_...
function EidosValue_SP (line 556) | EidosValue_SP EidosDataFrame::ExecuteMethod_rbind(EidosGlobalStringID p_...
function EidosValue_SP (line 586) | EidosValue_SP EidosDataFrame::ExecuteMethod_subset(EidosGlobalStringID p...
function EidosValue_SP (line 650) | EidosValue_SP EidosDataFrame::ExecuteMethod_subsetColumns(EidosGlobalStr...
function EidosValue_SP (line 669) | EidosValue_SP EidosDataFrame::ExecuteMethod_subsetRows(EidosGlobalString...
function EidosValue_SP (line 696) | static EidosValue_SP Eidos_Instantiate_EidosDataFrame(const std::vector<...
function EidosValue_SP (line 714) | static EidosValue_SP Eidos_ExecuteFunction_readCSV(const std::vector<Eid...
FILE: eidos/eidos_class_DataFrame.h
function class (line 36) | class EidosDataFrame : public EidosDictionaryRetained
function class (line 93) | class EidosDataFrame_Class : public EidosDictionaryRetained_Class
FILE: eidos/eidos_class_Dictionary.cpp
function EidosValue_SP (line 441) | EidosValue_SP EidosDictionaryUnretained::Serialization_CSV(const std::st...
function EidosValue_SP (line 687) | EidosValue_SP EidosDictionaryUnretained::GetValueForKey_StringKeys(const...
function EidosValue_SP (line 709) | EidosValue_SP EidosDictionaryUnretained::GetValueForKey_IntegerKeys(int6...
function EidosValue_SP (line 731) | EidosValue_SP EidosDictionaryUnretained::AllKeys(void) const
function EidosClass (line 1155) | const EidosClass *EidosDictionaryUnretained::Class(void) const
function EidosValue_SP (line 1165) | EidosValue_SP EidosDictionaryUnretained::GetProperty(EidosGlobalStringID...
function EidosValue_SP (line 1185) | EidosValue_SP EidosDictionaryUnretained::ExecuteInstanceMethod(EidosGlob...
function EidosValue_SP (line 1209) | EidosValue_SP EidosDictionaryUnretained::ExecuteMethod_addKeysAndValuesF...
function EidosValue_SP (line 1228) | EidosValue_SP EidosDictionaryUnretained::ExecuteMethod_appendKeysAndValu...
function EidosValue_SP (line 1249) | EidosValue_SP EidosDictionaryUnretained::ExecuteMethod_clearKeysAndValue...
function EidosValue_SP (line 1261) | EidosValue_SP EidosDictionaryUnretained::ExecuteMethod_compactIndices(Ei...
function EidosValue_SP (line 1337) | EidosValue_SP EidosDictionaryUnretained::ExecuteMethod_getRowValues(Eido...
function EidosValue_SP (line 1407) | EidosValue_SP EidosDictionaryUnretained::ExecuteMethod_getValue(EidosGlo...
function EidosValue_SP (line 1450) | EidosValue_SP EidosDictionaryUnretained::ExecuteMethod_identicalContents...
function EidosValue_SP (line 1542) | EidosValue_SP EidosDictionaryUnretained::ExecuteMethod_Accelerated_setVa...
function EidosValue_SP (line 1581) | EidosValue_SP EidosDictionaryUnretained::ExecuteMethod_serialize(EidosGl...
function EidosValue_SP (line 1673) | EidosValue_SP EidosDictionaryUnretained_Class::ExecuteClassMethod(EidosG...
function EidosValue_SP (line 1684) | EidosValue_SP EidosDictionaryUnretained_Class::ExecuteMethod_setValuesVe...
function EidosValue_SP (line 1886) | static EidosValue_SP Eidos_Instantiate_EidosDictionaryRetained(const std...
function EidosClass (line 1912) | const EidosClass *EidosDictionaryRetained::Class(void) const
FILE: eidos/eidos_class_Dictionary.h
type robin_hood (line 30) | typedef robin_hood::unordered_flat_map<std::string, EidosValue_SP> Eidos...
type std (line 33) | typedef std::unordered_map<std::string, EidosValue_SP> EidosDictionaryHa...
type robin_hood (line 38) | typedef robin_hood::unordered_flat_map<int64_t, EidosValue_SP> EidosDict...
type std (line 41) | typedef std::unordered_map<int64_t, EidosValue_SP> EidosDictionaryHashTa...
type EidosDictionaryState_StringKeys (line 78) | struct EidosDictionaryState_StringKeys
type EidosDictionaryState_IntegerKeys (line 85) | struct EidosDictionaryState_IntegerKeys
function class (line 100) | class EidosDictionaryUnretained : public EidosObject
function class (line 227) | class EidosDictionaryUnretained_Class : public EidosClass
function class (line 268) | class EidosDictionaryRetained : public EidosDictionaryUnretained
function class (line 314) | class EidosDictionaryRetained_Class : public EidosDictionaryUnretained_C...
FILE: eidos/eidos_class_Image.cpp
function EidosClass (line 113) | const EidosClass *EidosImage::Class(void) const
function EidosValue_SP (line 134) | EidosValue_SP EidosImage::ValueForIntegerChannel(EidosValue_SP &p_channe...
function EidosValue_SP (line 162) | EidosValue_SP EidosImage::ValueForFloatChannel(EidosValue_SP &p_channel_...
function EidosValue_SP (line 190) | EidosValue_SP EidosImage::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue_SP (line 227) | EidosValue_SP EidosImage::ExecuteInstanceMethod(EidosGlobalStringID p_me...
function EidosValue_SP (line 238) | EidosValue_SP EidosImage::ExecuteMethod_write(EidosGlobalStringID p_meth...
function EidosValue_SP (line 267) | static EidosValue_SP Eidos_Instantiate_EidosImage(const std::vector<Eido...
FILE: eidos/eidos_class_Image.h
function class (line 35) | class EidosImage : public EidosDictionaryRetained
function class (line 95) | class EidosImage_Class : public EidosDictionaryRetained_Class
FILE: eidos/eidos_class_Object.cpp
function EidosClass (line 50) | const EidosClass *EidosObject::Superclass(void) const
function EidosValue_SP (line 90) | EidosValue_SP EidosObject::GetProperty(EidosGlobalStringID p_property_id)
function EidosValue_SP (line 114) | EidosValue_SP EidosObject::ExecuteInstanceMethod(EidosGlobalStringID p_m...
function EidosValue_SP (line 140) | EidosValue_SP EidosObject::ExecuteMethod_str(EidosGlobalStringID p_metho...
function EidosValue_SP (line 243) | EidosValue_SP EidosObject::ExecuteMethod_stringRepresentation(EidosGloba...
function EidosValue_SP (line 254) | EidosValue_SP EidosObject::ContextDefinedFunctionDispatch(const std::str...
function EidosValue_SP (line 585) | EidosValue_SP EidosClass::ExecuteClassMethod(EidosGlobalStringID p_metho...
function EidosValue_SP (line 612) | EidosValue_SP EidosClass::ExecuteMethod_propertySignature(EidosGlobalStr...
function EidosValue_SP (line 646) | EidosValue_SP EidosClass::ExecuteMethod_methodSignature(EidosGlobalStrin...
function EidosValue_SP (line 705) | EidosValue_SP EidosClass::ExecuteMethod_size_length(EidosGlobalStringID ...
FILE: eidos/eidos_class_Object.h
type EidosInterpreterDebugPointsSet_struct (line 37) | struct EidosInterpreterDebugPointsSet_struct
type EidosInterpreterDebugPointsSet_struct (line 38) | typedef EidosInterpreterDebugPointsSet_struct EidosInterpreterDebugPoint...
function class (line 59) | class EidosObject
function class (line 125) | class EidosClass
FILE: eidos/eidos_class_TestElement.cpp
function EidosClass (line 53) | const EidosClass *EidosTestElement::Class(void) const
function EidosValue_SP (line 63) | EidosValue_SP EidosTestElement::GetProperty(EidosGlobalStringID p_proper...
function EidosValue (line 81) | EidosValue *EidosTestElement::GetProperty_Accelerated__yolk(EidosObject ...
function EidosValue_SP (line 126) | EidosValue_SP EidosTestElement::ExecuteInstanceMethod(EidosGlobalStringI...
function EidosValue_SP (line 137) | EidosValue_SP EidosTestElement::ExecuteMethod_Accelerated_cubicYolk(Eido...
function EidosValue_SP (line 152) | EidosValue_SP EidosTestElement::ExecuteMethod_squareTest(EidosGlobalStri...
function EidosValue_SP (line 171) | static EidosValue_SP Eidos_Instantiate_EidosTestElement(const std::vecto...
function EidosClass (line 272) | const EidosClass *EidosTestElementNRR::Class(void) const
function EidosValue_SP (line 282) | EidosValue_SP EidosTestElementNRR::GetProperty(EidosGlobalStringID p_pro...
function EidosValue_SP (line 314) | static EidosValue_SP Eidos_Instantiate_EidosTestElementNRR(const std::ve...
FILE: eidos/eidos_class_TestElement.h
function class (line 43) | class EidosTestElement : public EidosDictionaryRetained
function class (line 76) | class EidosTestElement_Class : public EidosDictionaryRetained_Class
function class (line 102) | class EidosTestElementNRR : public EidosObject
function class (line 127) | class EidosTestElementNRR_Class : public EidosClass
FILE: eidos/eidos_functions.cpp
function IdenticalEidosValues (line 443) | bool IdenticalEidosValues(EidosValue *x_value, EidosValue *y_value, bool...
function EidosValue_SP (line 514) | EidosValue_SP ConcatenateEidosValues(const std::vector<EidosValue_SP> &p...
function EidosValue_SP (line 777) | EidosValue_SP UniqueEidosValue(const EidosValue *p_x_value, bool p_prese...
function EidosValue_SP (line 1030) | EidosValue_SP SubsetEidosValue(const EidosValue *p_original_value, const...
function EidosValue_SP (line 1263) | EidosValue_SP AppendEidosValues(EidosValue_SP x_value, EidosValue_SP y_v...
FILE: eidos/eidos_functions_colors.cpp
function EidosValue_SP (line 38) | EidosValue_SP Eidos_ExecuteFunction_cmColors(const std::vector<EidosValu...
function EidosValue_SP (line 67) | EidosValue_SP Eidos_ExecuteFunction_colors(const std::vector<EidosValue_...
function EidosValue_SP (line 126) | EidosValue_SP Eidos_ExecuteFunction_color2rgb(const std::vector<EidosVal...
function EidosValue_SP (line 165) | EidosValue_SP Eidos_ExecuteFunction_heatColors(const std::vector<EidosVa...
function EidosValue_SP (line 194) | EidosValue_SP Eidos_ExecuteFunction_hsv2rgb(const std::vector<EidosValue...
function EidosValue_SP (line 229) | EidosValue_SP Eidos_ExecuteFunction_rainbow(const std::vector<EidosValue...
function EidosValue_SP (line 298) | EidosValue_SP Eidos_ExecuteFunction_rgb2color(const std::vector<EidosVal...
function EidosValue_SP (line 332) | EidosValue_SP Eidos_ExecuteFunction_rgb2hsv(const std::vector<EidosValue...
function EidosValue_SP (line 368) | EidosValue_SP Eidos_ExecuteFunction_terrainColors(const std::vector<Eido...
FILE: eidos/eidos_functions_distributions.cpp
function EidosValue_SP (line 58) | EidosValue_SP Eidos_ExecuteFunction_findInterval(const std::vector<Eidos...
function EidosValue_SP (line 304) | EidosValue_SP Eidos_ExecuteFunction_dmvnorm(const std::vector<EidosValue...
function EidosValue_SP (line 452) | EidosValue_SP Eidos_ExecuteFunction_dnorm(const std::vector<EidosValue_S...
function EidosValue_SP (line 571) | EidosValue_SP Eidos_ExecuteFunction_qnorm(const std::vector<EidosValue_S...
function EidosValue_SP (line 634) | EidosValue_SP Eidos_ExecuteFunction_pnorm(const std::vector<EidosValue_S...
function EidosValue_SP (line 691) | EidosValue_SP Eidos_ExecuteFunction_dbeta(const std::vector<EidosValue_S...
function EidosValue_SP (line 752) | EidosValue_SP Eidos_ExecuteFunction_rbeta(const std::vector<EidosValue_S...
function EidosValue_SP (line 814) | EidosValue_SP Eidos_ExecuteFunction_rbinom(const std::vector<EidosValue_...
function EidosValue_SP (line 921) | EidosValue_SP Eidos_ExecuteFunction_rcauchy(const std::vector<EidosValue...
function EidosValue_SP (line 979) | EidosValue_SP Eidos_ExecuteFunction_rdirichlet(const std::vector<EidosVa...
function EidosValue_SP (line 1046) | EidosValue_SP Eidos_ExecuteFunction_rdunif(const std::vector<EidosValue_...
function EidosValue_SP (line 1147) | EidosValue_SP Eidos_ExecuteFunction_rdunif64(const std::vector<EidosValu...
function EidosValue_SP (line 1169) | EidosValue_SP Eidos_ExecuteFunction_dexp(const std::vector<EidosValue_SP...
function EidosValue_SP (line 1212) | EidosValue_SP Eidos_ExecuteFunction_rexp(const std::vector<EidosValue_SP...
function EidosValue_SP (line 1283) | EidosValue_SP Eidos_ExecuteFunction_rf(const std::vector<EidosValue_SP> ...
function EidosValue_SP (line 1345) | EidosValue_SP Eidos_ExecuteFunction_dgamma(const std::vector<EidosValue_...
function EidosValue_SP (line 1404) | EidosValue_SP Eidos_ExecuteFunction_rgamma(const std::vector<EidosValue_...
function EidosValue_SP (line 1464) | EidosValue_SP Eidos_ExecuteFunction_rgeom(const std::vector<EidosValue_S...
function EidosValue_SP (line 1534) | EidosValue_SP Eidos_ExecuteFunction_rlaplace(const std::vector<EidosValu...
function EidosValue_SP (line 1601) | EidosValue_SP Eidos_ExecuteFunction_rlnorm(const std::vector<EidosValue_...
function EidosValue_SP (line 1660) | EidosValue_SP Eidos_ExecuteFunction_rmultinom(const std::vector<EidosVal...
function EidosValue_SP (line 1762) | EidosValue_SP Eidos_ExecuteFunction_rmvnorm(const std::vector<EidosValue...
function EidosValue_SP (line 1873) | EidosValue_SP Eidos_ExecuteFunction_rnbinom(const std::vector<EidosValue...
function EidosValue_SP (line 1937) | EidosValue_SP Eidos_ExecuteFunction_rnorm(const std::vector<EidosValue_S...
function EidosValue_SP (line 2036) | EidosValue_SP Eidos_ExecuteFunction_rpois(const std::vector<EidosValue_S...
function EidosValue_SP (line 2112) | EidosValue_SP Eidos_ExecuteFunction_runif(const std::vector<EidosValue_S...
function EidosValue_SP (line 2213) | EidosValue_SP Eidos_ExecuteFunction_rweibull(const std::vector<EidosValu...
function EidosValue_SP (line 2275) | EidosValue_SP Eidos_ExecuteFunction_rztpois(const std::vector<EidosValue...
FILE: eidos/eidos_functions_files.cpp
function EidosValue_SP (line 47) | EidosValue_SP Eidos_ExecuteFunction_createDirectory(const std::vector<Ei...
function EidosValue_SP (line 65) | EidosValue_SP Eidos_ExecuteFunction_deleteFile(const std::vector<EidosVa...
function EidosValue_SP (line 81) | EidosValue_SP Eidos_ExecuteFunction_fileExists(const std::vector<EidosVa...
function EidosValue_SP (line 100) | EidosValue_SP Eidos_ExecuteFunction_filesAtPath(const std::vector<EidosV...
function EidosValue_SP (line 166) | EidosValue_SP Eidos_ExecuteFunction_getwd(__attribute__((unused)) const ...
function EidosValue_SP (line 177) | EidosValue_SP Eidos_ExecuteFunction_readFile(const std::vector<EidosValu...
function EidosValue_SP (line 226) | EidosValue_SP Eidos_ExecuteFunction_readLine(const std::vector<EidosValu...
function EidosValue_SP (line 257) | EidosValue_SP Eidos_ExecuteFunction_setwd(const std::vector<EidosValue_S...
function EidosValue_SP (line 282) | EidosValue_SP Eidos_ExecuteFunction_tempdir(__attribute__((unused)) cons...
function EidosValue_SP (line 288) | EidosValue_SP Eidos_ExecuteFunction_flushFile(const std::vector<EidosVal...
function EidosValue_SP (line 309) | EidosValue_SP Eidos_ExecuteFunction_writeFile(const std::vector<EidosVal...
function EidosValue_SP (line 364) | EidosValue_SP Eidos_ExecuteFunction_writeTempFile(const std::vector<Eido...
FILE: eidos/eidos_functions_math.cpp
function EidosValue_SP (line 55) | EidosValue_SP Eidos_ExecuteFunction_abs(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 109) | EidosValue_SP Eidos_ExecuteFunction_acos(const std::vector<EidosValue_SP...
function EidosValue_SP (line 141) | EidosValue_SP Eidos_ExecuteFunction_asin(const std::vector<EidosValue_SP...
function EidosValue_SP (line 173) | EidosValue_SP Eidos_ExecuteFunction_atan(const std::vector<EidosValue_SP...
function EidosValue_SP (line 205) | EidosValue_SP Eidos_ExecuteFunction_atan2(const std::vector<EidosValue_S...
function EidosValue_SP (line 252) | EidosValue_SP Eidos_ExecuteFunction_ceil(const std::vector<EidosValue_SP...
function EidosValue_SP (line 279) | EidosValue_SP Eidos_ExecuteFunction_cos(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 311) | EidosValue_SP Eidos_ExecuteFunction_cumProduct(const std::vector<EidosVa...
function EidosValue_SP (line 358) | EidosValue_SP Eidos_ExecuteFunction_cumSum(const std::vector<EidosValue_...
function EidosValue_SP (line 405) | EidosValue_SP Eidos_ExecuteFunction_exp(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 445) | EidosValue_SP Eidos_ExecuteFunction_floor(const std::vector<EidosValue_S...
function EidosValue_SP (line 472) | EidosValue_SP Eidos_ExecuteFunction_integerDiv(const std::vector<EidosVa...
function EidosValue_SP (line 560) | EidosValue_SP Eidos_ExecuteFunction_integerMod(const std::vector<EidosVa...
function EidosValue_SP (line 648) | EidosValue_SP Eidos_ExecuteFunction_isFinite(const std::vector<EidosValu...
function EidosValue_SP (line 676) | EidosValue_SP Eidos_ExecuteFunction_isInfinite(const std::vector<EidosVa...
function EidosValue_SP (line 704) | EidosValue_SP Eidos_ExecuteFunction_isNAN(const std::vector<EidosValue_S...
function EidosValue_SP (line 732) | EidosValue_SP Eidos_ExecuteFunction_log(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 772) | EidosValue_SP Eidos_ExecuteFunction_log10(const std::vector<EidosValue_S...
function EidosValue_SP (line 812) | EidosValue_SP Eidos_ExecuteFunction_log2(const std::vector<EidosValue_SP...
function EidosValue_SP (line 852) | EidosValue_SP Eidos_ExecuteFunction_product(const std::vector<EidosValue...
function EidosValue_SP (line 906) | EidosValue_SP Eidos_ExecuteFunction_round(const std::vector<EidosValue_S...
function EidosValue_SP (line 933) | EidosValue_SP Eidos_ExecuteFunction_setDifference(const std::vector<Eido...
function EidosValue_SP (line 1347) | EidosValue_SP Eidos_ExecuteFunction_setIntersection(const std::vector<Ei...
function EidosValue_SP (line 1699) | EidosValue_SP Eidos_ExecuteFunction_setSymmetricDifference(const std::ve...
function EidosValue_SP (line 2171) | EidosValue_SP Eidos_ExecuteFunction_setUnion(const std::vector<EidosValu...
function EidosValue_SP (line 2440) | EidosValue_SP Eidos_ExecuteFunction_sign(const std::vector<EidosValue_SP...
function EidosValue_SP (line 2497) | EidosValue_SP Eidos_ExecuteFunction_sin(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 2529) | EidosValue_SP Eidos_ExecuteFunction_sqrt(const std::vector<EidosValue_SP...
function EidosValue_SP (line 2569) | EidosValue_SP Eidos_ExecuteFunction_sum(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 2677) | EidosValue_SP Eidos_ExecuteFunction_sumExact(const std::vector<EidosValu...
function EidosValue_SP (line 2701) | EidosValue_SP Eidos_ExecuteFunction_tan(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 2733) | EidosValue_SP Eidos_ExecuteFunction_trunc(const std::vector<EidosValue_S...
FILE: eidos/eidos_functions_matrices.cpp
function EidosValue_SP (line 44) | EidosValue_SP Eidos_ExecuteFunction_apply(const std::vector<EidosValue_S...
function EidosValue_SP (line 302) | EidosValue_SP Eidos_ExecuteFunction_array(const std::vector<EidosValue_S...
function EidosValue_SP (line 339) | EidosValue_SP Eidos_ExecuteFunction_cbind(const std::vector<EidosValue_S...
function EidosValue_SP (line 445) | EidosValue_SP Eidos_ExecuteFunction_dim(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 467) | EidosValue_SP Eidos_ExecuteFunction_drop(const std::vector<EidosValue_SP...
function EidosValue_SP (line 525) | EidosValue_SP Eidos_ExecuteFunction_matrix(const std::vector<EidosValue_...
function EidosValue_SP (line 615) | EidosValue_SP Eidos_ExecuteFunction_matrixMult(const std::vector<EidosVa...
function EidosValue_SP (line 829) | EidosValue_SP Eidos_ExecuteFunction_ncol(const std::vector<EidosValue_SP...
function EidosValue_SP (line 843) | EidosValue_SP Eidos_ExecuteFunction_nrow(const std::vector<EidosValue_SP...
function EidosValue_SP (line 857) | EidosValue_SP Eidos_ExecuteFunction_rbind(const std::vector<EidosValue_S...
function EidosValue_SP (line 980) | EidosValue_SP Eidos_ExecuteFunction_t(const std::vector<EidosValue_SP> &...
function EidosValue_SP (line 1016) | EidosValue_SP Eidos_ExecuteFunction_lowerTri(const std::vector<EidosValu...
function EidosValue_SP (line 1064) | EidosValue_SP Eidos_ExecuteFunction_upperTri(const std::vector<EidosValu...
function EidosValue_SP (line 1112) | EidosValue_SP Eidos_ExecuteFunction_diag(const std::vector<EidosValue_SP...
function EidosValue_SP (line 1253) | EidosValue_SP Eidos_ExecuteFunction_tr(const std::vector<EidosValue_SP> ...
function EidosValue_SP (line 1297) | EidosValue_SP Eidos_ExecuteFunction_det(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 1399) | EidosValue_SP Eidos_ExecuteFunction_inverse(const std::vector<EidosValue...
function EidosValue_SP (line 1521) | EidosValue_SP Eidos_ExecuteFunction_asVector(const std::vector<EidosValu...
function EidosValue_SP (line 1541) | EidosValue_SP Eidos_ExecuteFunction_rowSums(const std::vector<EidosValue...
function EidosValue_SP (line 1630) | EidosValue_SP Eidos_ExecuteFunction_colSums(const std::vector<EidosValue...
FILE: eidos/eidos_functions_other.cpp
function EidosValue_SP (line 56) | EidosValue_SP Eidos_ExecuteFunction_assert(const std::vector<EidosValue_...
function EidosValue_SP (line 98) | EidosValue_SP Eidos_ExecuteFunction_beep(const std::vector<EidosValue_SP...
function EidosValue_SP (line 123) | EidosValue_SP Eidos_ExecuteFunction_citation(__attribute__((unused)) con...
function EidosValue_SP (line 146) | EidosValue_SP Eidos_ExecuteFunction_clock(__attribute__((unused)) const ...
function EidosValue_SP (line 175) | EidosValue_SP Eidos_ExecuteFunction_date(__attribute__((unused)) const s...
function EidosValue_SP (line 195) | EidosValue_SP Eidos_ExecuteFunction_debugIndent(__attribute__((unused)) ...
function Eidos_IsIdentifier (line 204) | static bool Eidos_IsIdentifier(const std::string &symbol_name)
function EidosValue_SP (line 273) | EidosValue_SP Eidos_ExecuteFunction_defineConstant(const std::vector<Eid...
function EidosValue_SP (line 303) | EidosValue_SP Eidos_ExecuteFunction_defineGlobal(const std::vector<Eidos...
function EidosValue_SP (line 334) | EidosValue_SP Eidos_ExecuteFunction_doCall(const std::vector<EidosValue_...
function EidosValue_SP (line 405) | EidosValue_SP Eidos_ExecuteLambdaInternal(const std::vector<EidosValue_S...
function EidosValue_SP (line 577) | EidosValue_SP Eidos_ExecuteFunction_executeLambda(const std::vector<Eido...
function EidosValue_SP (line 585) | EidosValue_SP Eidos_ExecuteFunction__executeLambda_OUTER(const std::vect...
function EidosValue_SP (line 593) | EidosValue_SP Eidos_ExecuteFunction_exists(const std::vector<EidosValue_...
function EidosValue_SP (line 627) | EidosValue_SP Eidos_ExecuteFunction_functionSignature(const std::vector<...
function EidosValue_SP (line 677) | EidosValue_SP Eidos_ExecuteFunction_functionSource(const std::vector<Eid...
function EidosValue_SP (line 724) | EidosValue_SP Eidos_ExecuteFunction_getSeed(__attribute__((unused)) cons...
function EidosValue_SP (line 744) | EidosValue_SP Eidos_ExecuteFunction_license(__attribute__((unused)) cons...
function EidosValue_SP (line 779) | EidosValue_SP Eidos_ExecuteFunction_ls(__attribute__((unused)) const std...
function EidosValue_SP (line 814) | EidosValue_SP Eidos_ExecuteFunction_parallelGetNumThreads(__attribute__(...
function EidosValue_SP (line 824) | EidosValue_SP Eidos_ExecuteFunction_parallelGetMaxThreads(__attribute__(...
function EidosValue_SP (line 834) | EidosValue_SP Eidos_ExecuteFunction_parallelGetTaskThreadCounts(__attrib...
function EidosValue_SP (line 974) | EidosValue_SP Eidos_ExecuteFunction_parallelSetNumThreads(__attribute__(...
function EidosValue_SP (line 1007) | EidosValue_SP Eidos_ExecuteFunction_parallelSetTaskThreadCounts(__attrib...
function EidosValue_SP (line 1195) | EidosValue_SP Eidos_ExecuteFunction_rm(const std::vector<EidosValue_SP> ...
function EidosValue_SP (line 1221) | EidosValue_SP Eidos_ExecuteFunction_sapply(const std::vector<EidosValue_...
function EidosValue_SP (line 1404) | EidosValue_SP Eidos_ExecuteFunction_setSeed(const std::vector<EidosValue...
function EidosValue_SP (line 1416) | EidosValue_SP Eidos_ExecuteFunction_stop(const std::vector<EidosValue_SP...
function EidosValue_SP (line 1445) | EidosValue_SP Eidos_ExecuteFunction_suppressWarnings(const std::vector<E...
function EidosValue_SP (line 1457) | EidosValue_SP Eidos_ExecuteFunction_sysinfo(const std::vector<EidosValue...
function EidosValue_SP (line 1536) | EidosValue_SP Eidos_ExecuteFunction_system(const std::vector<EidosValue_...
function EidosValue_SP (line 1674) | EidosValue_SP Eidos_ExecuteFunction_time(__attribute__((unused)) const s...
function EidosValue_SP (line 1694) | EidosValue_SP Eidos_ExecuteFunction_usage(__attribute__((unused)) const ...
function EidosValue_SP (line 1730) | EidosValue_SP Eidos_ExecuteFunction_version(__attribute__((unused)) cons...
function EidosValue_SP (line 1767) | EidosValue_SP SLiM_ExecuteFunction__startBenchmark(const std::vector<Eid...
function EidosValue_SP (line 1807) | EidosValue_SP SLiM_ExecuteFunction__stopBenchmark(__attribute__((unused)...
FILE: eidos/eidos_functions_stats.cpp
function _Eidos_CalcCorrelation (line 39) | static double _Eidos_CalcCorrelation(size_t count, EidosValue *x_value, ...
function EidosValue_SP (line 60) | EidosValue_SP Eidos_ExecuteFunction_cor(const std::vector<EidosValue_SP>...
function _Eidos_CalcCovariance (line 167) | static double _Eidos_CalcCovariance(size_t count, EidosValue *x_value, E...
function EidosValue_SP (line 188) | EidosValue_SP Eidos_ExecuteFunction_cov(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 292) | EidosValue_SP Eidos_ExecuteFunction_filter(const std::vector<EidosValue_...
function EidosValue_SP (line 595) | EidosValue_SP Eidos_ExecuteFunction_max(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 760) | EidosValue_SP Eidos_ExecuteFunction_mean(const std::vector<EidosValue_SP...
function EidosValue_SP (line 793) | EidosValue_SP Eidos_ExecuteFunction_min(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 958) | EidosValue_SP Eidos_ExecuteFunction_pmax(const std::vector<EidosValue_SP...
function EidosValue_SP (line 1156) | EidosValue_SP Eidos_ExecuteFunction_pmin(const std::vector<EidosValue_SP...
function EidosValue_SP (line 1344) | EidosValue_SP Eidos_ExecuteFunction_quantile(const std::vector<EidosValu...
function EidosValue_SP (line 1444) | EidosValue_SP Eidos_ExecuteFunction_range(const std::vector<EidosValue_S...
function EidosValue_SP (line 1550) | EidosValue_SP Eidos_ExecuteFunction_sd(const std::vector<EidosValue_SP> ...
function EidosValue_SP (line 1583) | EidosValue_SP Eidos_ExecuteFunction_ttest(const std::vector<EidosValue_S...
function EidosValue_SP (line 1633) | EidosValue_SP Eidos_ExecuteFunction_var(const std::vector<EidosValue_SP>...
FILE: eidos/eidos_functions_strings.cpp
function EidosValue_SP (line 39) | EidosValue_SP Eidos_ExecuteFunction_grep(const std::vector<EidosValue_SP...
function EidosValue_SP (line 224) | EidosValue_SP Eidos_ExecuteFunction_nchar(const std::vector<EidosValue_S...
function EidosValue_SP (line 244) | EidosValue_SP Eidos_ExecuteFunction_strcontains(const std::vector<EidosV...
function EidosValue_SP (line 288) | EidosValue_SP Eidos_ExecuteFunction_strfind(const std::vector<EidosValue...
function EidosValue_SP (line 321) | EidosValue_SP Eidos_ExecuteFunction_strprefix(const std::vector<EidosVal...
function EidosValue_SP (line 361) | EidosValue_SP Eidos_ExecuteFunction_strsplit(const std::vector<EidosValu...
function EidosValue_SP (line 406) | EidosValue_SP Eidos_ExecuteFunction_strsuffix(const std::vector<EidosVal...
function EidosValue_SP (line 446) | EidosValue_SP Eidos_ExecuteFunction_substr(const std::vector<EidosValue_...
FILE: eidos/eidos_functions_values.cpp
function EidosStringFormat (line 46) | std::string EidosStringFormat(const std::string& format, Args ... args)
function EidosValue_SP (line 65) | EidosValue_SP Eidos_ExecuteFunction_c(const std::vector<EidosValue_SP> &...
function EidosValue_SP (line 80) | EidosValue_SP Eidos_ExecuteFunction_float(const std::vector<EidosValue_S...
function EidosValue_SP (line 105) | EidosValue_SP Eidos_ExecuteFunction_integer(const std::vector<EidosValue...
function EidosValue_SP (line 152) | EidosValue_SP Eidos_ExecuteFunction_logical(const std::vector<EidosValue...
function EidosValue_SP (line 177) | EidosValue_SP Eidos_ExecuteFunction_object(__attribute__((unused)) const...
function EidosValue_SP (line 189) | EidosValue_SP Eidos_ExecuteFunction_rep(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 216) | EidosValue_SP Eidos_ExecuteFunction_repEach(const std::vector<EidosValue...
function EidosValue_SP (line 264) | EidosValue_SP Eidos_ExecuteFunction_sample(const std::vector<EidosValue_...
function EidosValue_SP (line 882) | EidosValue_SP Eidos_ExecuteFunction_seq(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 1030) | EidosValue_SP Eidos_ExecuteFunction_seqAlong(const std::vector<EidosValu...
function EidosValue_SP (line 1051) | EidosValue_SP Eidos_ExecuteFunction_seqLen(const std::vector<EidosValue_...
function EidosValue_SP (line 1071) | EidosValue_SP Eidos_ExecuteFunction_string(const std::vector<EidosValue_...
function EidosValue_SP (line 1106) | EidosValue_SP Eidos_ExecuteFunction_all(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 1138) | EidosValue_SP Eidos_ExecuteFunction_allClose(const std::vector<EidosValu...
function EidosValue_SP (line 1206) | EidosValue_SP Eidos_ExecuteFunction_any(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 1238) | EidosValue_SP Eidos_ExecuteFunction_cat(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 1268) | EidosValue_SP Eidos_ExecuteFunction_catn(const std::vector<EidosValue_SP...
function EidosValue_SP (line 1300) | EidosValue_SP Eidos_ExecuteFunction_format(const std::vector<EidosValue_...
function EidosValue_SP (line 1533) | EidosValue_SP Eidos_ExecuteFunction_identical(const std::vector<EidosVal...
function EidosValue_SP (line 1551) | EidosValue_SP Eidos_ExecuteFunction_ifelse(const std::vector<EidosValue_...
function EidosValue_SP (line 1766) | EidosValue_SP Eidos_ExecuteFunction_isClose(const std::vector<EidosValue...
function EidosValue_SP (line 1863) | EidosValue_SP Eidos_ExecuteFunction_match(const std::vector<EidosValue_S...
function EidosValue_SP (line 2248) | EidosValue_SP Eidos_ExecuteFunction_order(const std::vector<EidosValue_S...
function EidosValue_SP (line 2291) | EidosValue_SP Eidos_ExecuteFunction_paste(const std::vector<EidosValue_S...
function EidosValue_SP (line 2343) | EidosValue_SP Eidos_ExecuteFunction_paste0(const std::vector<EidosValue_...
function EidosValue_SP (line 2376) | EidosValue_SP Eidos_ExecuteFunction_print(const std::vector<EidosValue_S...
function EidosValue_SP (line 2391) | EidosValue_SP Eidos_ExecuteFunction_rank(const std::vector<EidosValue_SP...
function EidosValue_SP (line 2633) | EidosValue_SP Eidos_ExecuteFunction_rev(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 2653) | EidosValue_SP Eidos_ExecuteFunction_size_length(const std::vector<EidosV...
function EidosValue_SP (line 2667) | EidosValue_SP Eidos_ExecuteFunction_sort(const std::vector<EidosValue_SP...
function EidosValue_SP (line 2688) | EidosValue_SP Eidos_ExecuteFunction_sortBy(const std::vector<EidosValue_...
function EidosValue_SP (line 2717) | EidosValue_SP Eidos_ExecuteFunction_str(const std::vector<EidosValue_SP>...
function EidosValue_SP (line 2733) | EidosValue_SP Eidos_ExecuteFunction_tabulate(const std::vector<EidosValu...
function EidosValue_SP (line 2831) | EidosValue_SP Eidos_ExecuteFunction_unique(const std::vector<EidosValue_...
function EidosValue_SP (line 2839) | EidosValue_SP Eidos_ExecuteFunction_which(const std::vector<EidosValue_S...
function EidosValue_SP (line 2859) | EidosValue_SP Eidos_ExecuteFunction_whichMax(const std::vector<EidosValu...
function EidosValue_SP (line 2929) | EidosValue_SP Eidos_ExecuteFunction_whichMin(const std::vector<EidosValu...
function EidosValue_SP (line 3009) | EidosValue_SP Eidos_ExecuteFunction_asFloat(const std::vector<EidosValue...
function EidosValue_SP (line 3027) | EidosValue_SP Eidos_ExecuteFunction_asInteger(const std::vector<EidosVal...
function EidosValue_SP (line 3045) | EidosValue_SP Eidos_ExecuteFunction_asLogical(const std::vector<EidosVal...
function EidosValue_SP (line 3072) | EidosValue_SP Eidos_ExecuteFunction_asString(const std::vector<EidosValu...
function EidosValue_SP (line 3098) | EidosValue_SP Eidos_ExecuteFunction_elementType(const std::vector<EidosV...
function EidosValue_SP (line 3112) | EidosValue_SP Eidos_ExecuteFunction_isFloat(const std::vector<EidosValue...
function EidosValue_SP (line 3127) | EidosValue_SP Eidos_ExecuteFunction_isInteger(const std::vector<EidosVal...
function EidosValue_SP (line 3142) | EidosValue_SP Eidos_ExecuteFunction_isLogical(const std::vector<EidosVal...
function EidosValue_SP (line 3157) | EidosValue_SP Eidos_ExecuteFunction_isNULL(const std::vector<EidosValue_...
function EidosValue_SP (line 3172) | EidosValue_SP Eidos_ExecuteFunction_isObject(const std::vector<EidosValu...
function EidosValue_SP (line 3187) | EidosValue_SP Eidos_ExecuteFunction_isString(const std::vector<EidosValu...
function EidosValue_SP (line 3202) | EidosValue_SP Eidos_ExecuteFunction_type(const std::vector<EidosValue_SP...
FILE: eidos/eidos_globals.cpp
function TranslateErrorContextToUserScript (line 118) | void TranslateErrorContextToUserScript(__attribute__ ((unused)) const ch...
function Eidos_ElapsedProfileTime (line 220) | double Eidos_ElapsedProfileTime(eidos_profile_t p_elapsed_profile_time)
function Eidos_ElapsedProfileTime (line 246) | double Eidos_ElapsedProfileTime(eidos_profile_t p_elapsed_profile_time)
function Eidos_PrepareForProfiling (line 275) | void Eidos_PrepareForProfiling(void)
function _Eidos_SetOpenMPThreadCounts (line 464) | void _Eidos_SetOpenMPThreadCounts(EidosPerTaskThreadCounts per_task_thre...
function _Eidos_ChooseDefaultOpenMPThreadCounts (line 900) | void _Eidos_ChooseDefaultOpenMPThreadCounts()
function _Eidos_ClipOpenMPThreadCounts (line 924) | void _Eidos_ClipOpenMPThreadCounts(void)
function Eidos_WarmUpOpenMP (line 1056) | void Eidos_WarmUpOpenMP(std::ostream *outstream, bool changed_max_thread...
function Eidos_WarmUp (line 1156) | void Eidos_WarmUp(void)
function Eidos_GoodSymbolForDefine (line 1375) | bool Eidos_GoodSymbolForDefine(std::string &p_symbol_name)
function EidosValue_SP (line 1446) | EidosValue_SP Eidos_ValueForCommandLineExpression(std::string &p_value_e...
function Eidos_DefineConstantsFromCommandLine (line 1470) | void Eidos_DefineConstantsFromCommandLine(const std::vector<std::string>...
function Eidos_StartProgress (line 1615) | void Eidos_StartProgress(std::ostream *p_progress_stream)
function Eidos_WriteProgress (line 1621) | void Eidos_WriteProgress(const std::string &p_progress_line)
function Eidos_EraseProgress (line 1634) | void Eidos_EraseProgress(void)
function Eidos_PrintStacktrace (line 1672) | void Eidos_PrintStacktrace(FILE *p_out, unsigned int p_max_frames)
function Eidos_LogScriptError (line 1832) | void Eidos_LogScriptError(std::ostream& p_out, const EidosErrorContext &...
function Eidos_GetTrimmedRaiseMessage (line 1978) | std::string Eidos_GetTrimmedRaiseMessage(void)
function Eidos_GetUntrimmedRaiseMessage (line 2000) | std::string Eidos_GetUntrimmedRaiseMessage(void)
function CheckLongTermBoundary (line 2022) | void CheckLongTermBoundary()
function Eidos_GetPeakRSS (line 2088) | size_t Eidos_GetPeakRSS(void)
function Eidos_GetCurrentRSS (line 2131) | size_t Eidos_GetCurrentRSS(void)
function Eidos_GetVMUsage (line 2174) | size_t Eidos_GetVMUsage(void)
function Eidos_GetMaxRSS (line 2213) | size_t Eidos_GetMaxRSS(void)
function Eidos_CheckRSSAgainstMax (line 2287) | void Eidos_CheckRSSAgainstMax(const std::string &p_message1, const std::...
function Eidos_WallTimeSeconds (line 2343) | double Eidos_WallTimeSeconds(void)
function Eidos_GetUserSysTime (line 2352) | void Eidos_GetUserSysTime(double *p_user_time, double *p_sys_time)
function Eidos_ResolvedPath (line 2397) | std::string Eidos_ResolvedPath(const std::string &p_path)
function Eidos_AbsolutePath (line 2449) | std::string Eidos_AbsolutePath(const std::string &p_path)
function Eidos_LastPathComponent (line 2498) | std::string Eidos_LastPathComponent(const std::string &p_path)
function Eidos_CurrentDirectory (line 2516) | std::string Eidos_CurrentDirectory(void)
function Eidos_StripTrailingSlash (line 2543) | std::string Eidos_StripTrailingSlash(const std::string &p_path)
function Eidos_CreateDirectory (line 2565) | bool Eidos_CreateDirectory(const std::string &p_path, std::string *p_err...
function Eidos_TemporaryDirectory (line 2617) | std::string Eidos_TemporaryDirectory(void)
function Eidos_TemporaryDirectoryExists (line 2635) | bool Eidos_TemporaryDirectoryExists(void)
function Eidos_mkstemps (line 2748) | int Eidos_mkstemps(char *p_pattern, int p_suffix_len)
function Eidos_mkstemps_directory (line 2802) | int Eidos_mkstemps_directory(char *p_pattern, int p_suffix_len)
function _Eidos_FlushZipBuffer (line 2863) | bool _Eidos_FlushZipBuffer(const std::string &file_path, const std::stri...
function Eidos_FlushFile (line 2905) | void Eidos_FlushFile(const std::string &p_file_path)
function Eidos_FlushFiles (line 2926) | bool Eidos_FlushFiles(void)
function Eidos_WriteToFile (line 2956) | void Eidos_WriteToFile(const std::string &p_file_path, const std::vector...
function Eidos_TTest_TwoSampleWelch (line 3086) | double Eidos_TTest_TwoSampleWelch(const double *p_set1, int p_count1, co...
function Eidos_TTest_OneSample (line 3144) | double Eidos_TTest_OneSample(const double *p_set1, int p_count1, double ...
function Eidos_ExactSum (line 3312) | double Eidos_ExactSum(const double *p_double_vec, int64_t p_vec_length)
function Eidos_ApproximatelyEqual (line 3431) | bool Eidos_ApproximatelyEqual(double a, double b)
function Eidos_string_split (line 3456) | std::vector<std::string> Eidos_string_split(const std::string &joined_st...
function Eidos_string_join (line 3490) | std::string Eidos_string_join(const std::vector<std::string> &p_vec, con...
function Eidos_string_hasPrefix (line 3506) | bool Eidos_string_hasPrefix(std::string const &fullString, std::string c...
function Eidos_string_hasSuffix (line 3516) | bool Eidos_string_hasSuffix(std::string const &fullString, std::string c...
function Eidos_string_containsCaseInsensitive (line 3526) | bool Eidos_string_containsCaseInsensitive(const std::string &strHaystack...
function Eidos_string_equalsCaseInsensitive (line 3536) | bool Eidos_string_equalsCaseInsensitive(const std::string &s1, const std...
function Eidos_string_escaped (line 3545) | std::string Eidos_string_escaped(const std::string &unescapedString, Eid...
function Eidos_string_escaped_CSV (line 3598) | std::string Eidos_string_escaped_CSV(const std::string &unescapedString)
function EidosStringForFloat (line 3633) | std::string EidosStringForFloat(double p_value)
function DisplayDigitsForIntegerPart (line 3688) | int DisplayDigitsForIntegerPart(double x)
function Eidos_RegexWorks (line 3699) | bool Eidos_RegexWorks(void)
function Eidos_ContainsIllegalUnicode (line 3722) | bool Eidos_ContainsIllegalUnicode(const std::string &symbol_name)
type SHA_buffer_state (line 3853) | struct SHA_buffer_state {
function right_rot (line 3861) | static inline uint32_t right_rot(uint32_t value, unsigned int count)
function init_buf_state (line 3870) | static void init_buf_state(struct SHA_buffer_state * state, const void *...
function calc_chunk (line 3880) | static int calc_chunk(uint8_t chunk[CHUNK_SIZE], struct SHA_buffer_state...
function Eidos_calc_sha_256 (line 3944) | void Eidos_calc_sha_256(uint8_t hash[32], const void *input, size_t len)
function Eidos_hash_to_string (line 4044) | void Eidos_hash_to_string(char string[65], const uint8_t hash[32])
function EidosGlobalStringID (line 4264) | EidosGlobalStringID EidosStringRegistry::_GlobalStringIDForString(const ...
function Eidos_GetColorComponents (line 5001) | void Eidos_GetColorComponents(const std::string &p_color_name, float *p_...
function Eidos_GetColorComponents (line 5042) | void Eidos_GetColorComponents(const std::string &p_color_name, uint8_t *...
function Eidos_GetColorString (line 5083) | void Eidos_GetColorString(double p_red, double p_green, double p_blue, c...
function Eidos_GetColorString (line 5111) | void Eidos_GetColorString(uint8_t p_red, uint8_t p_green, uint8_t p_blue...
function Eidos_HSV2RGB (line 5129) | void Eidos_HSV2RGB(double h, double s, double v, double *p_r, double *p_...
function Eidos_RGB2HSV (line 5158) | void Eidos_RGB2HSV(double r, double g, double b, double *p_h, double *p_...
function EidosColorPalette (line 5196) | EidosColorPalette Eidos_PaletteForName(const std::string &name)
function Eidos_ColorPaletteLookup (line 5214) | void Eidos_ColorPaletteLookup(double fraction, EidosColorPalette palette...
FILE: eidos/eidos_globals.h
type EidosPerTaskThreadCounts (line 64) | typedef enum {
type EidosErrorPosition (line 142) | typedef struct
type EidosErrorContext (line 163) | typedef struct {
function RestoreErrorPosition (line 174) | inline __attribute__((always_inline)) void RestoreErrorPosition(const Ei...
function class (line 246) | class EidosDebugPointIndent
function std (line 256) | static inline const std::string Indent(void) { return std::string(gEidos...
type eidos_profile_t (line 316) | typedef uint64_t eidos_profile_t;
function eidos_profile_t (line 319) | inline __attribute__((always_inline)) eidos_profile_t Eidos_BenchmarkTim...
type eidos_profile_t (line 324) | typedef uint64_t eidos_profile_t;
function eidos_profile_t (line 327) | inline __attribute__((always_inline)) eidos_profile_t Eidos_BenchmarkTim...
type EidosBenchmarkType (line 351) | typedef enum {
function eidos_profile_t (line 403) | inline __attribute__((always_inline)) eidos_profile_t Eidos_ProfileTime(...
function eidos_profile_t (line 408) | inline __attribute__((always_inline)) eidos_profile_t Eidos_ProfileTime(...
function Eidos_ShowingProgress (line 492) | inline bool Eidos_ShowingProgress(void) { return !!(gEidos_progress_outs...
function Eidos_ProgressLength (line 495) | inline int Eidos_ProgressLength(void) { return gEidos_progress_length; }
function class (line 528) | class EidosTerminate
function class (line 557) | class SLiMUndefinedIdentifierException : public std::exception
function class (line 573) | class SLiMUndefinedFunctionException : public std::exception
function EidosFileFlush (line 634) | enum class EidosFileFlush {
function class (line 1056) | class _EidosRegisteredString
type _EidosGlobalStringID (line 1201) | enum _EidosGlobalStringID : uint32_t
type EidosNamedColor (line 1347) | typedef struct {
type class (line 1363) | enum class
type eidos_logical_t (line 1421) | typedef uint8_t eidos_logical_t;
type Eidos_intrusive_ptr (line 1427) | typedef Eidos_intrusive_ptr<EidosValue> EidosValue_SP;
type Eidos_intrusive_ptr (line 1428) | typedef Eidos_intrusive_ptr<EidosValue_VOID> EidosValue_VOID_SP;
type Eidos_intrusive_ptr (line 1429) | typedef Eidos_intrusive_ptr<EidosValue_NULL> EidosValue_NULL_SP;
type Eidos_intrusive_ptr (line 1430) | typedef Eidos_intrusive_ptr<EidosValue_Logical> EidosValue_Logical_SP;
type Eidos_intrusive_ptr (line 1431) | typedef Eidos_intrusive_ptr<EidosValue_Int> EidosValue_Int_SP;
type Eidos_intrusive_ptr (line 1432) | typedef Eidos_intrusive_ptr<EidosValue_Float> EidosValue_Float_SP;
type Eidos_intrusive_ptr (line 1433) | typedef Eidos_intrusive_ptr<EidosValue_String> EidosValue_String_SP;
type Eidos_intrusive_ptr (line 1434) | typedef Eidos_intrusive_ptr<EidosValue_Object> EidosValue_Object_SP;
type class (line 1440) | enum class
type EidosValueMask (line 1459) | typedef uint32_t EidosValueMask;
type EidosTypeSpecifier (line 1484) | typedef struct {
FILE: eidos/eidos_interpreter.cpp
function TypeCheckAssignmentOfEidosValueIntoEidosValue (line 66) | bool TypeCheckAssignmentOfEidosValueIntoEidosValue(const EidosValue &p_b...
function EidosValue_SP (line 175) | EidosValue_SP EidosInterpreter::EvaluateInternalBlock(EidosScript *p_scr...
function EidosValue_SP (line 225) | EidosValue_SP EidosInterpreter::EvaluateInterpreterBlock(bool p_print_ou...
function EidosValue_SP (line 910) | EidosValue_SP EidosInterpreter::EvaluateNode(const EidosASTNode *p_node)
function EidosValue_SP (line 955) | EidosValue_SP EidosInterpreter::Evaluate_NullStatement(const EidosASTNod...
function EidosValue_SP (line 979) | EidosValue_SP EidosInterpreter::Evaluate_CompoundStatement(const EidosAS...
function EidosValue_SP (line 1013) | EidosValue_SP EidosInterpreter::_Evaluate_RangeExpr_Internal(const Eidos...
function EidosValue_SP (line 1140) | EidosValue_SP EidosInterpreter::Evaluate_RangeExpr(const EidosASTNode *p...
function EidosValue_SP (line 1422) | EidosValue_SP EidosInterpreter::DispatchUserDefinedFunction(const EidosF...
function EidosValue_SP (line 1569) | EidosValue_SP EidosInterpreter::Evaluate_Call(const EidosASTNode *p_node)
function EidosValue_SP (line 1820) | EidosValue_SP EidosInterpreter::Evaluate_Subset(const EidosASTNode *p_node)
function EidosValue_SP (line 2053) | EidosValue_SP EidosInterpreter::Evaluate_MemberRef(const EidosASTNode *p...
function EidosValue_SP (line 2153) | EidosValue_SP EidosInterpreter::Evaluate_Plus(const EidosASTNode *p_node)
function EidosValue_SP (line 2437) | EidosValue_SP EidosInterpreter::Evaluate_Minus(const EidosASTNode *p_node)
function EidosValue_SP (line 2688) | EidosValue_SP EidosInterpreter::Evaluate_Mod(const EidosASTNode *p_node)
function EidosValue_SP (line 2821) | EidosValue_SP EidosInterpreter::Evaluate_Mult(const EidosASTNode *p_node)
function EidosValue_SP (line 2998) | __attribute__((no_sanitize("float-divide-by-zero")))
function EidosValue_SP (line 3134) | EidosValue_SP EidosInterpreter::Evaluate_Conditional(const EidosASTNode ...
function EidosValue_SP (line 3174) | EidosValue_SP EidosInterpreter::Evaluate_Exp(const EidosASTNode *p_node)
function EidosValue_SP (line 3304) | EidosValue_SP EidosInterpreter::Evaluate_And(const EidosASTNode *p_node)
function EidosValue_SP (line 3525) | EidosValue_SP EidosInterpreter::Evaluate_Or(const EidosASTNode *p_node)
function EidosValue_SP (line 3746) | EidosValue_SP EidosInterpreter::Evaluate_Not(const EidosASTNode *p_node)
function EidosValue_SP (line 3823) | EidosValue_SP EidosInterpreter::Evaluate_Assign(const EidosASTNode *p_node)
function EidosValue_SP (line 4086) | EidosValue_SP EidosInterpreter::Evaluate_Assign_R(const EidosASTNode *p_...
function EidosValue_SP (line 4099) | EidosValue_SP EidosInterpreter::Evaluate_Eq(const EidosASTNode *p_node)
function EidosValue_SP (line 4333) | EidosValue_SP EidosInterpreter::Evaluate_Lt(const EidosASTNode *p_node)
function EidosValue_SP (line 4477) | EidosValue_SP EidosInterpreter::Evaluate_LtEq(const EidosASTNode *p_node)
function EidosValue_SP (line 4621) | EidosValue_SP EidosInterpreter::Evaluate_Gt(const EidosASTNode *p_node)
function EidosValue_SP (line 4765) | EidosValue_SP EidosInterpreter::Evaluate_GtEq(const EidosASTNode *p_node)
function EidosValue_SP (line 4909) | EidosValue_SP EidosInterpreter::Evaluate_NotEq(const EidosASTNode *p_node)
function EidosValue_SP (line 5203) | EidosValue_SP EidosInterpreter::NumericValueForString(const std::string ...
function EidosValue_SP (line 5248) | EidosValue_SP EidosInterpreter::Evaluate_Number(const EidosASTNode *p_node)
function EidosValue_SP (line 5268) | EidosValue_SP EidosInterpreter::Evaluate_String(const EidosASTNode *p_node)
function EidosValue_SP (line 5286) | EidosValue_SP EidosInterpreter::Evaluate_Identifier(const EidosASTNode *...
function EidosValue_SP (line 5312) | EidosValue_SP EidosInterpreter::Evaluate_If(const EidosASTNode *p_node)
function EidosValue_SP (line 5433) | EidosValue_SP EidosInterpreter::Evaluate_Do(const EidosASTNode *p_node)
function EidosValue_SP (line 5549) | EidosValue_SP EidosInterpreter::Evaluate_While(const EidosASTNode *p_node)
function EidosValue_SP (line 5653) | EidosValue_SP EidosInterpreter::Evaluate_For(const EidosASTNode *p_node)
function EidosValue_SP (line 6121) | EidosValue_SP EidosInterpreter::Evaluate_Next(const EidosASTNode *p_node)
function EidosValue_SP (line 6149) | EidosValue_SP EidosInterpreter::Evaluate_Break(const EidosASTNode *p_node)
function EidosValue_SP (line 6177) | EidosValue_SP EidosInterpreter::Evaluate_Return(const EidosASTNode *p_node)
function EidosValue_SP (line 6229) | EidosValue_SP EidosInterpreter::Evaluate_FunctionDecl(const EidosASTNode...
FILE: eidos/eidos_interpreter.h
type EidosObject (line 50) | typedef EidosObject EidosContext;
type std (line 54) | typedef std::pair<std::string, EidosFunctionSignature_CSP> EidosFunction...
type std (line 55) | typedef std::map<std::string, EidosFunctionSignature_CSP> EidosFunctionMap;
type EidosInterpreterDebugPointsSet_struct (line 67) | struct EidosInterpreterDebugPointsSet_struct {
type EidosInterpreterDebugPointsSet_struct (line 70) | typedef EidosInterpreterDebugPointsSet_struct EidosInterpreterDebugPoint...
type EidosInterpreterDebugPointsSet_struct (line 73) | struct EidosInterpreterDebugPointsSet_struct {
type EidosInterpreterDebugPointsSet_struct (line 76) | typedef EidosInterpreterDebugPointsSet_struct EidosInterpreterDebugPoint...
function EidosInterpreter (line 147) | inline ~EidosInterpreter(void)
function std (line 157) | inline __attribute__((always_inline)) std::string IndentString(int p_ind...
function std (line 163) | inline __attribute__((always_inline)) std::ostream &ExecutionOutputStrea...
function std (line 164) | inline __attribute__((always_inline)) std::ostream &ErrorOutputStream(vo...
function EidosSymbolTable (line 166) | inline __attribute__((always_inline)) EidosSymbolTable &SymbolTable(void...
function EidosFunctionMap (line 167) | inline __attribute__((always_inline)) EidosFunctionMap &FunctionMap(void...
function EidosContext (line 168) | inline __attribute__((always_inline)) EidosContext *Context(void) const ...
function EidosFunctionMap (line 327) | static inline __attribute__((always_inline)) const EidosFunctionMap *Bui...
function EidosValue_SP (line 336) | inline __attribute__((always_inline)) EidosValue_SP FastEvaluateNode(con...
function UseCustomUndefinedIdentifierRaise (line 348) | bool UseCustomUndefinedIdentifierRaise(void) { return use_custom_undefin...
function SetUseCustomUndefinedIdentifierRaise (line 349) | void SetUseCustomUndefinedIdentifierRaise(bool p_flag) { use_custom_unde...
function UseCustomUndefinedFunctionRaise (line 351) | bool UseCustomUndefinedFunctionRaise(void) { return use_custom_undefined...
function SetUseCustomUndefinedFunctionRaise (line 352) | void SetUseCustomUndefinedFunctionRaise(bool p_flag) { use_custom_undefi...
FILE: eidos/eidos_intrusive_ptr.h
function px (line 93) | inline __attribute__((always_inline)) Eidos_intrusive_ptr() : px( 0 )
function px (line 103) | __attribute__((always_inline)) Eidos_intrusive_ptr( Eidos_intrusive_ptr<...
function px (line 108) | inline __attribute__((always_inline)) Eidos_intrusive_ptr(Eidos_intrusiv...
function px (line 127) | inline __attribute__((always_inline)) Eidos_intrusive_ptr(Eidos_intrusiv...
function reset (line 151) | inline __attribute__((always_inline)) void reset()
function reset (line 156) | inline __attribute__((always_inline)) void reset( T * rhs )
function reset (line 161) | inline __attribute__((always_inline)) void reset( T * rhs, bool add_ref )
function T (line 166) | inline __attribute__((always_inline)) T * get() const
function T (line 171) | inline __attribute__((always_inline)) T * detach()
function T (line 183) | inline __attribute__((always_inline)) T * operator->() const
function swap (line 200) | inline __attribute__((always_inline)) void swap(Eidos_intrusive_ptr & rhs)
function T (line 254) | __attribute__((always_inline)) T * get_pointer(Eidos_intrusive_ptr<T> co...
FILE: eidos/eidos_object_pool.h
function class (line 43) | class EidosObjectPool
function _AllocateNewNode (line 87) | void _AllocateNewNode()
function MemoryUsageForAllNodes (line 150) | size_t MemoryUsageForAllNodes(void)
function DisposeChunk (line 198) | inline __attribute__((always_inline)) void DisposeChunk(void *content)
FILE: eidos/eidos_openmp.h
function class (line 173) | class OMPLock
function class (line 187) | class OMPNestLock
function class (line 208) | class EidosDebugLock
function omp_set_num_threads (line 687) | inline void omp_set_num_threads(__attribute__((unused)) int num_threads)
function omp_get_num_threads (line 691) | inline int omp_get_num_threads(void)
function omp_get_max_threads (line 696) | inline int omp_get_max_threads(void)
function omp_get_thread_num (line 701) | inline int omp_get_thread_num(void)
function omp_get_num_procs (line 706) | inline int omp_get_num_procs(void)
function omp_in_parallel (line 711) | inline int omp_in_parallel(void)
function omp_set_dynamic (line 716) | inline void omp_set_dynamic(__attribute__((unused)) int dynamic_threads)
function omp_get_dynamic (line 720) | inline int omp_get_dynamic(void)
function omp_get_cancellation (line 725) | inline int omp_get_cancellation(void)
function omp_set_nested (line 730) | inline void omp_set_nested(__attribute__((unused)) int nested)
function omp_get_nested (line 734) | inline int omp_get_nested(void)
type omp_sched_t (line 739) | typedef enum omp_sched_t {
function omp_set_schedule (line 746) | inline void omp_set_schedule(__attribute__((unused)) omp_sched_t kind, _...
function omp_get_schedule (line 750) | inline void omp_get_schedule(omp_sched_t *kind, int *chunk_size)
function omp_get_thread_limit (line 756) | inline int omp_get_thread_limit(void)
function omp_set_max_active_levels (line 761) | inline void omp_set_max_active_levels(__attribute__((unused)) int max_ac...
function omp_get_max_active_levels (line 765) | inline int omp_get_max_active_levels(void)
function omp_get_level (line 770) | inline int omp_get_level(void)
function omp_get_ancestor_thread_num (line 775) | inline int omp_get_ancestor_thread_num(int level)
function omp_get_team_size (line 787) | inline int omp_get_team_size(int level)
function omp_get_active_level (line 799) | inline int omp_get_active_level(void)
function omp_in_final (line 804) | inline int omp_in_final(void)
type omp_proc_bind_t (line 809) | typedef enum omp_proc_bind_t
function omp_proc_bind_t (line 818) | inline omp_proc_bind_t omp_get_proc_bind(void)
function omp_get_num_places (line 823) | inline int omp_get_num_places(void)
function omp_get_place_num_procs (line 828) | inline int omp_get_place_num_procs(__attribute__((unused)) int place_num)
function omp_get_place_proc_ids (line 833) | inline void omp_get_place_proc_ids(__attribute__((unused)) int place_num...
function omp_get_place_num (line 837) | inline int omp_get_place_num(void)
function omp_get_partition_num_places (line 842) | inline int omp_get_partition_num_places(void)
function omp_get_partition_place_nums (line 847) | inline void omp_get_partition_place_nums(__attribute__((unused)) int *pl...
function omp_set_default_device (line 851) | inline void omp_set_default_device(__attribute__((unused)) int device_num)
function omp_get_default_device (line 855) | inline int omp_get_default_device(void)
function omp_get_num_devices (line 860) | inline int omp_get_num_devices(void)
function omp_get_num_teams (line 865) | inline int omp_get_num_teams(void)
function omp_get_team_num (line 870) | inline int omp_get_team_num(void)
function omp_is_initial_device (line 875) | inline int omp_is_initial_device(void)
function omp_get_initial_device (line 880) | inline int omp_get_initial_device(void)
function omp_get_max_task_priority (line 885) | inline int omp_get_max_task_priority(void)
type __omp_lock (line 890) | struct __omp_lock
type omp_lock_t (line 895) | typedef struct __omp_lock omp_lock_t;
function omp_init_lock (line 899) | inline void omp_init_lock(omp_lock_t *arg)
type omp_lock_hint_t (line 905) | typedef enum omp_lock_hint_t
function omp_init_lock_with_hint (line 916) | inline void omp_init_lock_with_hint(omp_lock_t *arg, __attribute__((unus...
function omp_destroy_lock (line 921) | inline void omp_destroy_lock(omp_lock_t *arg)
function omp_set_lock (line 927) | inline void omp_set_lock(omp_lock_t *arg)
function omp_unset_lock (line 946) | inline void omp_unset_lock(omp_lock_t *arg)
function omp_test_lock (line 965) | inline int omp_test_lock(omp_lock_t *arg)
type __omp_nest_lock (line 984) | struct __omp_nest_lock
type omp_nest_lock_t (line 990) | typedef struct __omp_nest_lock omp_nest_lock_t;
function omp_init_nest_lock (line 994) | inline void omp_init_nest_lock(omp_nest_lock_t *arg)
function omp_init_nest_lock_with_hint (line 1001) | inline void omp_init_nest_lock_with_hint(omp_nest_lock_t *arg, __attribu...
function omp_destroy_nest_lock (line 1006) | inline void omp_destroy_nest_lock(omp_nest_lock_t *arg)
function omp_set_nest_lock (line 1013) | inline void omp_set_nest_lock(omp_nest_lock_t *arg)
function omp_unset_nest_lock (line 1032) | inline void omp_unset_nest_lock(omp_nest_lock_t *arg)
function omp_test_nest_lock (line 1055) | inline int omp_test_nest_lock(omp_nest_lock_t *arg)
function omp_get_wtime (line 1062) | inline double omp_get_wtime(void)
function omp_get_wtick (line 1071) | inline double omp_get_wtick(void)
function omp_target_free (line 1087) | inline void omp_target_free(void *device_ptr, __attribute__((unused)) in...
function omp_target_is_present (line 1092) | inline int omp_target_is_present(__attribute__((unused)) void *ptr, __at...
function omp_target_memcpy (line 1097) | inline int omp_target_memcpy(void *dst, void *src, size_t length,
function omp_target_memcpy_rect (line 1108) | inline int omp_target_memcpy_rect(
function omp_target_associate_ptr (line 1166) | inline int omp_target_associate_ptr(__attribute__((unused)) void *host_p...
function omp_target_disassociate_ptr (line 1175) | inline int omp_target_disassociate_ptr(__attribute__((unused)) void *ptr...
FILE: eidos/eidos_property_signature.cpp
function EidosPropertySignature (line 219) | EidosPropertySignature *EidosPropertySignature::DeclareAcceleratedGet(Ei...
function EidosPropertySignature (line 239) | EidosPropertySignature *EidosPropertySignature::DeclareAcceleratedSet(Ei...
function EidosPropertySignature (line 266) | EidosPropertySignature *EidosPropertySignature::MarkDeprecated(void)
function CompareEidosPropertySignatures (line 282) | bool CompareEidosPropertySignatures(const EidosPropertySignature_CSP &p_...
FILE: eidos/eidos_property_signature.h
type EidosValue (line 37) | typedef EidosValue *(*Eidos_AcceleratedPropertyGetter)(EidosObject **p_v...
function class (line 50) | class EidosPropertySignature
type std (line 95) | typedef std::shared_ptr<EidosPropertySignature const> EidosPropertySigna...
FILE: eidos/eidos_rng.cpp
function Eidos_GSL_RNG_PCG64_set (line 39) | static void Eidos_GSL_RNG_PCG64_set(void *state, unsigned long int seed)
function Eidos_GSL_RNG_PCG64_get (line 52) | static unsigned long int Eidos_GSL_RNG_PCG64_get(void *state)
function Eidos_GSL_RNG_PCG64_get_double (line 59) | static double Eidos_GSL_RNG_PCG64_get_double(void *state)
function _Eidos_GenerateRNGSeed (line 88) | static unsigned long int _Eidos_GenerateRNGSeed(void)
function Eidos_GenerateRNGSeed (line 136) | unsigned long int Eidos_GenerateRNGSeed(void)
function _Eidos_InitializeOneRNG (line 158) | void _Eidos_InitializeOneRNG(Eidos_RNG_State &r)
function Eidos_InitializeRNG (line 176) | void Eidos_InitializeRNG(void)
function _Eidos_FreeOneRNG (line 215) | void _Eidos_FreeOneRNG(Eidos_RNG_State &r)
function Eidos_FreeRNG (line 226) | void Eidos_FreeRNG(void)
function _Eidos_SetOneRNGSeed (line 254) | void _Eidos_SetOneRNGSeed(Eidos_RNG_State &r, unsigned long int p_seed)
function Eidos_SetRNGSeed (line 277) | void Eidos_SetRNGSeed(unsigned long int p_seed)
function Eidos_FastRandomPoisson_PRECALCULATE (line 300) | double Eidos_FastRandomPoisson_PRECALCULATE(double p_mu)
FILE: eidos/eidos_rng.h
type pcg32_fast (line 58) | typedef pcg32_fast EidosRNG_32_bit;
type pcg64_fast (line 59) | typedef pcg64_fast EidosRNG_64_bit;
type Eidos_RNG_State (line 62) | typedef struct Eidos_RNG_State
function Eidos_rng_uniform_uint32 (line 146) | inline __attribute__((always_inline)) uint32_t Eidos_rng_uniform_uint32(...
function Eidos_rng_uniform_int32 (line 153) | inline __attribute__((always_inline)) int32_t Eidos_rng_uniform_int32(Ei...
function Eidos_rng_uniform_uint64 (line 160) | inline __attribute__((always_inline)) uint64_t Eidos_rng_uniform_uint64(...
function Eidos_rng_uniform_int64 (line 167) | inline __attribute__((always_inline)) int64_t Eidos_rng_uniform_int64(Ei...
function Eidos_rng_uniform_doubleCC (line 174) | inline __attribute__((always_inline)) double Eidos_rng_uniform_doubleCC(...
function Eidos_rng_uniform_doubleCO (line 181) | inline __attribute__((always_inline)) double Eidos_rng_uniform_doubleCO(...
function Eidos_rng_uniform_doubleOO (line 188) | inline __attribute__((always_inline)) double Eidos_rng_uniform_doubleOO(...
function Eidos_rng_interval_uint32 (line 196) | inline __attribute__((always_inline)) uint32_t Eidos_rng_interval_uint32...
function Eidos_rng_interval_uint64 (line 222) | inline __attribute__((always_inline)) uint64_t Eidos_rng_interval_uint64...
function Eidos_rng_interval_uint64_FAST (line 249) | inline __attribute__((always_inline)) uint64_t Eidos_rng_interval_uint64...
function Eidos_FastRandomPoisson (line 310) | inline __attribute__((always_inline)) unsigned int Eidos_FastRandomPoiss...
function Eidos_FastRandomPoisson (line 336) | inline __attribute__((always_inline)) unsigned int Eidos_FastRandomPoiss...
function Eidos_FastRandomPoisson_NONZERO (line 368) | inline __attribute__((always_inline)) unsigned int Eidos_FastRandomPoiss...
function Eidos_RandomBool (line 430) | inline __attribute__((always_inline)) bool Eidos_RandomBool(Eidos_RNG_St...
FILE: eidos/eidos_script.cpp
function EidosASTNode (line 824) | EidosASTNode *EidosScript::Parse_InterpreterBlock(bool p_allow_functions)
function EidosASTNode (line 876) | EidosASTNode *EidosScript::Parse_CompoundStatement(void)
function EidosASTNode (line 924) | EidosASTNode *EidosScript::Parse_Statement(void)
function EidosASTNode (line 969) | EidosASTNode *EidosScript::Parse_ExprStatement(void)
function EidosASTNode (line 1005) | EidosASTNode *EidosScript::Parse_SelectionStatement(void)
function EidosASTNode (line 1051) | EidosASTNode *EidosScript::Parse_DoWhileStatement(void)
function EidosASTNode (line 1095) | EidosASTNode *EidosScript::Parse_WhileStatement(void)
function EidosASTNode (line 1133) | EidosASTNode *EidosScript::Parse_ForStatement(void)
function EidosASTNode (line 1189) | EidosASTNode *EidosScript::Parse_JumpStatement(void)
function EidosASTNode (line 1240) | EidosASTNode *EidosScript::Parse_Expr(void)
function EidosASTNode (line 1245) | EidosASTNode *EidosScript::Parse_AssignmentExpr(void)
function EidosASTNode (line 1282) | EidosASTNode *EidosScript::Parse_ConditionalExpr(void)
function EidosASTNode (line 1323) | EidosASTNode *EidosScript::Parse_LogicalOrExpr(void)
function EidosASTNode (line 1363) | EidosASTNode *EidosScript::Parse_LogicalAndExpr(void)
function EidosASTNode (line 1403) | EidosASTNode *EidosScript::Parse_EqualityExpr(void)
function EidosASTNode (line 1444) | EidosASTNode *EidosScript::Parse_RelationalExpr(void)
function EidosASTNode (line 1485) | EidosASTNode *EidosScript::Parse_AddExpr(void)
function EidosASTNode (line 1526) | EidosASTNode *EidosScript::Parse_MultExpr(void)
function EidosASTNode (line 1567) | EidosASTNode *EidosScript::Parse_SeqExpr(void)
function EidosASTNode (line 1607) | EidosASTNode *EidosScript::Parse_UnaryExpExpr(void)
function EidosASTNode (line 1657) | EidosASTNode *EidosScript::Parse_PostfixExpr(void)
function EidosASTNode (line 1797) | EidosASTNode *EidosScript::Parse_PrimaryExpr(void)
function EidosASTNode (line 1873) | EidosASTNode *EidosScript::Parse_ArgumentExpr(void)
function EidosASTNode (line 1920) | EidosASTNode *EidosScript::Parse_Constant(void)
function EidosASTNode (line 1963) | EidosASTNode *EidosScript::Parse_FunctionDecl(void)
function EidosASTNode (line 2004) | EidosASTNode *EidosScript::Parse_ReturnTypeSpec()
function EidosASTNode (line 2035) | EidosASTNode *EidosScript::Parse_TypeSpec(void)
function EidosASTNode (line 2184) | EidosASTNode *EidosScript::Parse_ObjectClassSpec(EidosASTNode *p_type_node)
function EidosASTNode (line 2224) | EidosASTNode *EidosScript::Parse_ParamList(void)
function EidosASTNode (line 2278) | EidosASTNode *EidosScript::Parse_ParamSpec(void)
function EidosASTNode (line 2347) | EidosASTNode *EidosScript::Parse_DefaultValue(void)
function EidosASTNode (line 2462) | EidosASTNode *EidosScript::Parse_ConditionalExpr_NOSEQ(void)
function EidosASTNode (line 2503) | EidosASTNode *EidosScript::Parse_LogicalOrExpr_NOSEQ(void)
function EidosASTNode (line 2543) | EidosASTNode *EidosScript::Parse_LogicalAndExpr_NOSEQ(void)
function EidosASTNode (line 2583) | EidosASTNode *EidosScript::Parse_EqualityExpr_NOSEQ(void)
function EidosASTNode (line 2624) | EidosASTNode *EidosScript::Parse_RelationalExpr_NOSEQ(void)
function EidosASTNode (line 2665) | EidosASTNode *EidosScript::Parse_AddExpr_NOSEQ(void)
function EidosASTNode (line 2706) | EidosASTNode *EidosScript::Parse_MultExpr_NOSEQ(void)
FILE: eidos/eidos_script.h
function class (line 46) | class EidosScript
FILE: eidos/eidos_simd.h
function namespace (line 91) | namespace Eidos_SIMD {
FILE: eidos/eidos_sorting.h
function _Eidos_ParallelQuicksort_Comparator (line 70) |
Copy disabled (too large)
Download .json
Condensed preview — 1314 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (25,261K chars).
[
{
"path": ".gitattributes",
"chars": 96,
"preview": "# see http://robots.thoughtbot.com/xcode-and-git-bridging-the-gap\n\n*.pbxproj binary merge=union\n"
},
{
"path": ".github/ISSUE_TEMPLATE/issue.md",
"chars": 1119,
"preview": "---\nname: Issue\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\nHi! Please don't ask"
},
{
"path": ".github/workflows/tests.yml",
"chars": 12948,
"preview": "name: tests\non:\n # Run tests on every push to the main branch,\n # on every pull request, and once a week (every monday"
},
{
"path": ".gitignore",
"chars": 6783,
"preview": "#########################\n# .gitignore file for Xcode4 and Xcode5 Source projects\n#\n# Apple bugs, waiting for Apple to f"
},
{
"path": ".travis.yml",
"chars": 3232,
"preview": "# the Qt stuff is adapted from https://github.com/VioletGiraffe/file-commander/blob/master/.travis.yml\n# there seems to "
},
{
"path": "CMakeLists.txt",
"chars": 29923,
"preview": "# To use CMake to build SLiM, create a new subdirectory alongside your source directory (assumed here\n# to be named SLiM"
},
{
"path": "CONTENTS.txt",
"chars": 2748,
"preview": "This file briefly describes the top-level contents of this repository, for reference.\nIf new files/directories are added"
},
{
"path": "CONTRIBUTING.md",
"chars": 10849,
"preview": "# Contributing to SLiM\n\nWelcome! This document outlines some guidelines and procedures for participating in and contrib"
},
{
"path": "EidosSLiMTests/EidosTests.mm",
"chars": 1921,
"preview": "//\n// EidosTests.m\n// SLiM\n//\n// Created by Ben Haller on 1/27/17.\n// Copyright (c) 2017-2022 Benjamin C. Haller. A"
},
{
"path": "EidosSLiMTests/Info.plist",
"chars": 680,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "EidosSLiMTests/SLiMTests.mm",
"chars": 2255,
"preview": "//\n// SLiMTests.m\n// SLiM\n//\n// Created by Ben Haller on 1/27/17.\n// Copyright (c) 2017-2022 Benjamin C. Haller. Al"
},
{
"path": "EidosScribe/Base.lproj/EidosAboutWindow.xib",
"chars": 12640,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion"
},
{
"path": "EidosScribe/Base.lproj/EidosConsoleWindow.xib",
"chars": 48244,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion"
},
{
"path": "EidosScribe/Base.lproj/EidosHelpWindow.xib",
"chars": 12625,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion"
},
{
"path": "EidosScribe/Base.lproj/MainMenu.xib",
"chars": 25433,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.Cocoa.XIB\" version=\"3.0\" toolsVersion"
},
{
"path": "EidosScribe/EidosAppDelegate.h",
"chars": 1737,
"preview": "//\n// EidosAppDelegate.h\n// EidosScribe\n//\n// Created by Ben Haller on 4/7/15.\n// Copyright (c) 2015-2025 Benjamin C"
},
{
"path": "EidosScribe/EidosAppDelegate.mm",
"chars": 6865,
"preview": "//\n// EidosAppDelegate.m\n// EidosScribe\n//\n// Created by Ben Haller on 4/7/15.\n// Copyright (c) 2015-2025 Benjamin C"
},
{
"path": "EidosScribe/EidosCocoaExtra.h",
"chars": 3951,
"preview": "//\n// EidosCocoaExtra.h\n// SLiM\n//\n// Created by Ben Haller on 9/11/15.\n// Copyright (c) 2015-2025 Benjamin C. Halle"
},
{
"path": "EidosScribe/EidosCocoaExtra.mm",
"chars": 26546,
"preview": "//\n// EidosCocoaExtra.m\n// SLiM\n//\n// Created by Ben Haller on 9/11/15.\n// Copyright (c) 2015-2025 Benjamin C. Halle"
},
{
"path": "EidosScribe/EidosConsoleTextView.h",
"chars": 3771,
"preview": "//\n// EidosConsoleTextView.h\n// EidosScribe\n//\n// Created by Ben Haller on 4/8/15.\n// Copyright (c) 2015-2025 Benjam"
},
{
"path": "EidosScribe/EidosConsoleTextView.mm",
"chars": 11541,
"preview": "//\n// EidosConsoleTextView.m\n// EidosScribe\n//\n// Created by Ben Haller on 4/8/15.\n// Copyright (c) 2015-2025 Benjam"
},
{
"path": "EidosScribe/EidosConsoleTextViewDelegate.h",
"chars": 1332,
"preview": "//\n// EidosConsoleTextViewDelegate.h\n// SLiM\n//\n// Created by Ben Haller on 9/11/15.\n// Copyright (c) 2015-2025 Benj"
},
{
"path": "EidosScribe/EidosConsoleWindowController.h",
"chars": 5143,
"preview": "//\n// EidosConsoleWindowController.h\n// EidosScribe\n//\n// Created by Ben Haller on 6/13/15.\n// Copyright (c) 2015-20"
},
{
"path": "EidosScribe/EidosConsoleWindowController.mm",
"chars": 44378,
"preview": "//\n// EidosConsoleWindowController.m\n// EidosScribe\n//\n// Created by Ben Haller on 6/13/15.\n// Copyright (c) 2015-20"
},
{
"path": "EidosScribe/EidosConsoleWindowControllerDelegate.h",
"chars": 5219,
"preview": "//\n// EidosConsoleWindowControllerDelegate.h\n// EidosScribe\n//\n// Created by Ben Haller on 9/10/15.\n// Copyright (c)"
},
{
"path": "EidosScribe/EidosHelpClasses.rtf",
"chars": 50109,
"preview": "{\\rtf1\\ansi\\ansicpg1252\\cocoartf2709\n\\cocoatextscaling0\\cocoaplatform0{\\fonttbl\\f0\\fswiss\\fcharset0 Optima-Bold;\\f1\\fswi"
},
{
"path": "EidosScribe/EidosHelpController.h",
"chars": 2121,
"preview": "//\n// EidosHelpController.h\n// SLiM\n//\n// Created by Ben Haller on 9/12/15.\n// Copyright (c) 2015-2025 Benjamin C. H"
},
{
"path": "EidosScribe/EidosHelpController.mm",
"chars": 63094,
"preview": "//\n// EidosHelpController.m\n// SLiM\n//\n// Created by Ben Haller on 9/12/15.\n// Copyright (c) 2015-2025 Benjamin C. H"
},
{
"path": "EidosScribe/EidosHelpFunctions.rtf",
"chars": 251760,
"preview": "{\\rtf1\\ansi\\ansicpg1252\\cocoartf2761\n\\cocoatextscaling0\\cocoaplatform0{\\fonttbl\\f0\\fswiss\\fcharset0 Optima-Bold;\\f1\\fnil"
},
{
"path": "EidosScribe/EidosHelpOperators.rtf",
"chars": 31433,
"preview": "{\\rtf1\\ansi\\ansicpg1252\\cocoartf2513\n\\cocoatextscaling0\\cocoaplatform0{\\fonttbl\\f0\\fswiss\\fcharset0 Optima-Italic;\\f1\\fn"
},
{
"path": "EidosScribe/EidosHelpStatements.rtf",
"chars": 23650,
"preview": "{\\rtf1\\ansi\\ansicpg1252\\cocoartf2513\n\\cocoatextscaling0\\cocoaplatform0{\\fonttbl\\f0\\fswiss\\fcharset0 Optima-Italic;\\f1\\fn"
},
{
"path": "EidosScribe/EidosHelpTypes.rtf",
"chars": 14259,
"preview": "{\\rtf1\\ansi\\ansicpg1252\\cocoartf2513\n\\cocoatextscaling0\\cocoaplatform0{\\fonttbl\\f0\\fswiss\\fcharset0 Optima-Italic;\\f1\\fn"
},
{
"path": "EidosScribe/EidosPrettyprinter.h",
"chars": 1227,
"preview": "//\n// EidosPrettyprinter.h\n// SLiM\n//\n// Created by Ben Haller on 7/30/17.\n// Copyright (c) 2017-2025 Benjamin C. Ha"
},
{
"path": "EidosScribe/EidosPrettyprinter.mm",
"chars": 14006,
"preview": "//\n// EidosPrettyprinter.m\n// SLiM\n//\n// Created by Ben Haller on 7/30/17.\n// Copyright (c) 2017-2025 Benjamin C. Ha"
},
{
"path": "EidosScribe/EidosScribe-Info.plist",
"chars": 1214,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "EidosScribe/EidosScribe.entitlements",
"chars": 181,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "EidosScribe/EidosScribe_multi-Info.plist",
"chars": 1214,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "EidosScribe/EidosScribe_multi.entitlements",
"chars": 258,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "EidosScribe/EidosTextView.h",
"chars": 3896,
"preview": "//\n// EidosTextView.h\n// EidosScribe\n//\n// Created by Ben Haller on 6/14/15.\n// Copyright (c) 2015-2025 Benjamin C. "
},
{
"path": "EidosScribe/EidosTextView.mm",
"chars": 107041,
"preview": "//\n// EidosTextView.mm\n// EidosScribe\n//\n// Created by Ben Haller on 6/14/15.\n// Copyright (c) 2015-2025 Benjamin C."
},
{
"path": "EidosScribe/EidosTextViewDelegate.h",
"chars": 6537,
"preview": "//\n// EidosTextViewDelegate.h\n// EidosScribe\n//\n// Created by Ben Haller on 9/10/15.\n// Copyright (c) 2015-2025 Benj"
},
{
"path": "EidosScribe/EidosValueWrapper.h",
"chars": 4384,
"preview": "//\n// EidosValueWrapper.h\n// EidosScribe\n//\n// Created by Ben Haller on 5/31/15.\n// Copyright (c) 2015-2025 Benjamin"
},
{
"path": "EidosScribe/EidosValueWrapper.mm",
"chars": 13717,
"preview": "//\n// EidosValueWrapper.m\n// EidosScribe\n//\n// Created by Ben Haller on 5/31/15.\n// Copyright (c) 2015-2025 Benjamin"
},
{
"path": "EidosScribe/EidosVariableBrowserController.h",
"chars": 3065,
"preview": "//\n// EidosVariableBrowserController.h\n// EidosScribe\n//\n// Created by Ben Haller on 6/13/15.\n// Copyright (c) 2015-"
},
{
"path": "EidosScribe/EidosVariableBrowserController.mm",
"chars": 12877,
"preview": "//\n// EidosVariableBrowserController.m\n// EidosScribe\n//\n// Created by Ben Haller on 6/13/15.\n// Copyright (c) 2015-"
},
{
"path": "EidosScribe/EidosVariableBrowserControllerDelegate.h",
"chars": 1981,
"preview": "//\n// EidosVariableBrowserControllerDelegate.h\n// SLiM\n//\n// Created by Ben Haller on 9/11/15.\n// Copyright (c) 2015"
},
{
"path": "EidosScribe/Images.xcassets/AppIcon.appiconset/Contents.json",
"chars": 1330,
"preview": "{\n \"images\" : [\n {\n \"size\" : \"16x16\",\n \"idiom\" : \"mac\",\n \"filename\" : \"AppIcon_16x16.png\",\n \"sca"
},
{
"path": "EidosScribe/main.m",
"chars": 311,
"preview": "//\n// main.m\n// EidosScribe\n//\n// Created by Ben Haller on 4/7/15.\n// Copyright (c) 2015-2025 Benjamin C. Haller. A"
},
{
"path": "LICENSE",
"chars": 35122,
"preview": "GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation,"
},
{
"path": "PARALLEL",
"chars": 10342,
"preview": "This file contains unreleased/unannounced changes for parallelization, in addition to those listed in VERSIONS. It will"
},
{
"path": "QtSLiM/QtSLiM.pro",
"chars": 14164,
"preview": "#-------------------------------------------------\n#\n# Project created by QtCreator 2019-07-10T21:56:47\n#\n#-------------"
},
{
"path": "QtSLiM/QtSLiMAbout.cpp",
"chars": 2346,
"preview": "//\n// QtSLiMAbout.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/2/2019.\n// Copyright (c) 2019-2025 Benjamin C. Haller"
},
{
"path": "QtSLiM/QtSLiMAbout.h",
"chars": 1153,
"preview": "//\n// QtSLiMAbout.h\n// SLiM\n//\n// Created by Ben Haller on 8/2/2019.\n// Copyright (c) 2019-2025 Benjamin C. Haller. "
},
{
"path": "QtSLiM/QtSLiMAbout.ui",
"chars": 10877,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>QtSLiMAbout</class>\n <widget class=\"QDialog\" name=\"QtS"
},
{
"path": "QtSLiM/QtSLiMAppDelegate.cpp",
"chars": 81865,
"preview": "//\n// QtSLiMAppDelegate.cpp\n// SLiM\n//\n// Created by Ben Haller on 7/13/2019.\n// Copyright (c) 2019-2025 Benjamin C."
},
{
"path": "QtSLiM/QtSLiMAppDelegate.h",
"chars": 7670,
"preview": "//\n// QtSLiMAppDelegate.h\n// SLiM\n//\n// Created by Ben Haller on 7/13/2019.\n// Copyright (c) 2019-2025 Benjamin C. H"
},
{
"path": "QtSLiM/QtSLiMChromosomeWidget.cpp",
"chars": 77513,
"preview": "//\n// QtSLiMChromosomeWidget.cpp\n// SLiM\n//\n// Created by Ben Haller on 7/28/2019.\n// Copyright (c) 2019-2025 Benjam"
},
{
"path": "QtSLiM/QtSLiMChromosomeWidget.h",
"chars": 12455,
"preview": "//\n// QtSLiMChromosomeWidget.h\n// SLiM\n//\n// Created by Ben Haller on 7/28/2019.\n// Copyright (c) 2019-2025 Benjamin"
},
{
"path": "QtSLiM/QtSLiMChromosomeWidget_GL.cpp",
"chars": 31535,
"preview": "//\n// QtSLiMChromosomeWidget_GL.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/25/2024.\n// Copyright (c) 2024-2025 Ben"
},
{
"path": "QtSLiM/QtSLiMChromosomeWidget_QT.cpp",
"chars": 31673,
"preview": "//\n// QtSLiMChromosomeWidget_QT.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/25/2024.\n// Copyright (c) 2024-2025 Ben"
},
{
"path": "QtSLiM/QtSLiMConsoleTextEdit.cpp",
"chars": 27498,
"preview": "//\n// QtSLiMConsoleTextEdit.cpp\n// SLiM\n//\n// Created by Ben Haller on 12/6/2019.\n// Copyright (c) 2019-2025 Benjami"
},
{
"path": "QtSLiM/QtSLiMConsoleTextEdit.h",
"chars": 3846,
"preview": "//\n// QtSLiMConsoleTextEdit.h\n// SLiM\n//\n// Created by Ben Haller on 12/6/2019.\n// Copyright (c) 2019-2025 Benjamin "
},
{
"path": "QtSLiM/QtSLiMDebugOutputWindow.cpp",
"chars": 34263,
"preview": "//\n// QtSLiMDebugOutputWindow.cpp\n// SLiM\n//\n// Created by Ben Haller on 02/06/2021.\n// Copyright (c) 2021-2025 Benj"
},
{
"path": "QtSLiM/QtSLiMDebugOutputWindow.h",
"chars": 3310,
"preview": "//\n// QtSLiMDebugOutputWindow.h\n// SLiM\n//\n// Created by Ben Haller on 02/06/2021.\n// Copyright (c) 2021-2025 Benjam"
},
{
"path": "QtSLiM/QtSLiMDebugOutputWindow.ui",
"chars": 3916,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>QtSLiMDebugOutputWindow</class>\n <widget class=\"QWidge"
},
{
"path": "QtSLiM/QtSLiMEidosConsole.cpp",
"chars": 22177,
"preview": "//\n// QtSLiMEidosConsole.cpp\n// SLiM\n//\n// Created by Ben Haller on 12/6/2019.\n// Copyright (c) 2019-2025 Benjamin C"
},
{
"path": "QtSLiM/QtSLiMEidosConsole.h",
"chars": 4577,
"preview": "//\n// QtSLiMEidosConsole.h\n// SLiM\n//\n// Created by Ben Haller on 12/6/2019.\n// Copyright (c) 2019-2025 Benjamin C. "
},
{
"path": "QtSLiM/QtSLiMEidosConsole.ui",
"chars": 13133,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>QtSLiMEidosConsole</class>\n <widget class=\"QWidget\" na"
},
{
"path": "QtSLiM/QtSLiMEidosConsole_glue.cpp",
"chars": 5815,
"preview": "//\n// QtSLiMEidosConsole_glue.cpp\n// SLiM\n//\n// Created by Ben Haller on 12/6/2019.\n// Copyright (c) 2019-2025 Benja"
},
{
"path": "QtSLiM/QtSLiMEidosPrettyprinter.cpp",
"chars": 32977,
"preview": "//\n// QtSLiMEidosPrettyprinter.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/1/2019.\n// Copyright (c) 2019-2025 Benja"
},
{
"path": "QtSLiM/QtSLiMEidosPrettyprinter.h",
"chars": 1417,
"preview": "//\n// QtSLiMEidosPrettyprinter.h\n// SLiM\n//\n// Created by Ben Haller on 8/1/2019.\n// Copyright (c) 2019-2025 Benjami"
},
{
"path": "QtSLiM/QtSLiMExtras.cpp",
"chars": 59624,
"preview": "//\n// QtSLiMExtras.cpp\n// SLiM\n//\n// Created by Ben Haller on 7/28/2019.\n// Copyright (c) 2019-2025 Benjamin C. Hall"
},
{
"path": "QtSLiM/QtSLiMExtras.h",
"chars": 23956,
"preview": "//\n// QtSLiMExtras.h\n// SLiM\n//\n// Created by Ben Haller on 7/28/2019.\n// Copyright (c) 2019-2025 Benjamin C. Haller"
},
{
"path": "QtSLiM/QtSLiMFindPanel.cpp",
"chars": 18853,
"preview": "//\n// QtSLiMFindPanel.cpp\n// SLiM\n//\n// Created by Ben Haller on 3/24/2020.\n// Copyright (c) 2020-2025 Benjamin C. H"
},
{
"path": "QtSLiM/QtSLiMFindPanel.h",
"chars": 2671,
"preview": "//\n// QtSLiMFindPanel.h\n// SLiM\n//\n// Created by Ben Haller on 3/24/2020.\n// Copyright (c) 2020-2025 Benjamin C. Hal"
},
{
"path": "QtSLiM/QtSLiMFindPanel.ui",
"chars": 5802,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>QtSLiMFindPanel</class>\n <widget class=\"QDialog\" name="
},
{
"path": "QtSLiM/QtSLiMFindRecipe.cpp",
"chars": 9484,
"preview": "//\n// QtSLiMFindRecipe.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/6/2019.\n// Copyright (c) 2019-2025 Benjamin C. H"
},
{
"path": "QtSLiM/QtSLiMFindRecipe.h",
"chars": 1928,
"preview": "//\n// QtSLiMFindRecipe.h\n// SLiM\n//\n// Created by Ben Haller on 8/6/2019.\n// Copyright (c) 2019-2025 Benjamin C. Hal"
},
{
"path": "QtSLiM/QtSLiMFindRecipe.ui",
"chars": 8694,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>QtSLiMFindRecipe</class>\n <widget class=\"QDialog\" name"
},
{
"path": "QtSLiM/QtSLiMGraphView.cpp",
"chars": 118789,
"preview": "//\n// QtSLiMGraphView.cpp\n// SLiM\n//\n// Created by Ben Haller on 3/27/2020.\n// Copyright (c) 2020-2025 Benjamin C. H"
},
{
"path": "QtSLiM/QtSLiMGraphView.h",
"chars": 14795,
"preview": "//\n// QtSLiMGraphView.h\n// SLiM\n//\n// Created by Ben Haller on 3/27/2020.\n// Copyright (c) 2020-2025 Benjamin C. Hal"
},
{
"path": "QtSLiM/QtSLiMGraphView_1DPopulationSFS.cpp",
"chars": 7087,
"preview": "//\n// QtSLiMGraphView_1DPopulationSFS.cpp\n// SLiM\n//\n// Created by Ben Haller on 3/27/2020.\n// Copyright (c) 2020-20"
},
{
"path": "QtSLiM/QtSLiMGraphView_1DPopulationSFS.h",
"chars": 1741,
"preview": "//\n// QtSLiMGraphView_1DPopulationSFS.h\n// SLiM\n//\n// Created by Ben Haller on 3/27/2020.\n// Copyright (c) 2020-2025"
},
{
"path": "QtSLiM/QtSLiMGraphView_1DSampleSFS.cpp",
"chars": 11435,
"preview": "//\n// QtSLiMGraphView_1DSampleSFS.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/20/2020.\n// Copyright (c) 2020-2025 B"
},
{
"path": "QtSLiM/QtSLiMGraphView_1DSampleSFS.h",
"chars": 2517,
"preview": "//\n// QtSLiMGraphView_1DSampleSFS.h\n// SLiM\n//\n// Created by Ben Haller on 8/20/2020.\n// Copyright (c) 2020-2025 Ben"
},
{
"path": "QtSLiM/QtSLiMGraphView_2DPopulationSFS.cpp",
"chars": 12288,
"preview": "//\n// QtSLiMGraphView_2DPopulationSFS.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/22/2020.\n// Copyright (c) 2020-20"
},
{
"path": "QtSLiM/QtSLiMGraphView_2DPopulationSFS.h",
"chars": 2454,
"preview": "//\n// QtSLiMGraphView_2DPopulationSFS.h\n// SLiM\n//\n// Created by Ben Haller on 8/18/2020.\n// Copyright (c) 2020-2025"
},
{
"path": "QtSLiM/QtSLiMGraphView_2DSampleSFS.cpp",
"chars": 16797,
"preview": "//\n// QtSLiMGraphView_2DSampleSFS.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/18/2020.\n// Copyright (c) 2020-2025 B"
},
{
"path": "QtSLiM/QtSLiMGraphView_2DSampleSFS.h",
"chars": 2785,
"preview": "//\n// QtSLiMGraphView_2DSampleSFS.h\n// SLiM\n//\n// Created by Ben Haller on 8/18/2020.\n// Copyright (c) 2020-2025 Ben"
},
{
"path": "QtSLiM/QtSLiMGraphView_AgeDistribution.cpp",
"chars": 12039,
"preview": "//\n// QtSLiMGraphView_AgeDistribution.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/30/2020.\n// Copyright (c) 2020-20"
},
{
"path": "QtSLiM/QtSLiMGraphView_AgeDistribution.h",
"chars": 2273,
"preview": "//\n// QtSLiMGraphView_AgeDistribution.h\n// SLiM\n//\n// Created by Ben Haller on 8/30/2020.\n// Copyright (c) 2020-2025"
},
{
"path": "QtSLiM/QtSLiMGraphView_CustomPlot.cpp",
"chars": 50937,
"preview": "//\n// QtSLiMGraphView_CustomPlot.cpp\n// SLiM\n//\n// Created by Ben Haller on 1/19/2024.\n// Copyright (c) 2024-2025 Be"
},
{
"path": "QtSLiM/QtSLiMGraphView_CustomPlot.h",
"chars": 8096,
"preview": "//\n// QtSLiMGraphView_CustomPlot.h\n// SLiM\n//\n// Created by Ben Haller on 1/19/2024.\n// Copyright (c) 2024-2025 Benj"
},
{
"path": "QtSLiM/QtSLiMGraphView_FitnessOverTime.cpp",
"chars": 17204,
"preview": "//\n// QtSLiMGraphView_FitnessOverTime.cpp\n// SLiM\n//\n// Created by Ben Haller on 3/30/2020.\n// Copyright (c) 2020-20"
},
{
"path": "QtSLiM/QtSLiMGraphView_FitnessOverTime.h",
"chars": 2390,
"preview": "//\n// QtSLiMGraphView_FitnessOverTime.h\n// SLiM\n//\n// Created by Ben Haller on 3/31/2020.\n// Copyright (c) 2020-2025"
},
{
"path": "QtSLiM/QtSLiMGraphView_FixationTimeHistogram.cpp",
"chars": 5671,
"preview": "//\n// QtSLiMGraphView_FixationTimeHistogram.cpp\n// SLiM\n//\n// Created by Ben Haller on 3/30/2020.\n// Copyright (c) 2"
},
{
"path": "QtSLiM/QtSLiMGraphView_FixationTimeHistogram.h",
"chars": 1769,
"preview": "//\n// QtSLiMGraphView_FixationTimeHistogram.h\n// SLiM\n//\n// Created by Ben Haller on 3/30/2020.\n// Copyright (c) 202"
},
{
"path": "QtSLiM/QtSLiMGraphView_FrequencyTrajectory.cpp",
"chars": 21602,
"preview": "//\n// QtSLiMGraphView_FrequencyTrajectory.cpp\n// SLiM\n//\n// Created by Ben Haller on 4/1/2020.\n// Copyright (c) 2020"
},
{
"path": "QtSLiM/QtSLiMGraphView_FrequencyTrajectory.h",
"chars": 6543,
"preview": "//\n// QtSLiMGraphView_FrequencyTrajectory.h\n// SLiM\n//\n// Created by Ben Haller on 4/1/2020.\n// Copyright (c) 2020-2"
},
{
"path": "QtSLiM/QtSLiMGraphView_LifetimeReproduction.cpp",
"chars": 12231,
"preview": "//\n// QtSLiMGraphView_LifetimeReproduction.cpp\n// SLiM\n//\n// Created by Ben Haller on 11/30/2020.\n// Copyright (c) 2"
},
{
"path": "QtSLiM/QtSLiMGraphView_LifetimeReproduction.h",
"chars": 2318,
"preview": "//\n// QtSLiMGraphView_LifetimeReproduction.h\n// SLiM\n//\n// Created by Ben Haller on 11/30/2020.\n// Copyright (c) 202"
},
{
"path": "QtSLiM/QtSLiMGraphView_LossTimeHistogram.cpp",
"chars": 5342,
"preview": "//\n// QtSLiMGraphView_LossTimeHistogram.cpp\n// SLiM\n//\n// Created by Ben Haller on 3/30/2020.\n// Copyright (c) 2020-"
},
{
"path": "QtSLiM/QtSLiMGraphView_LossTimeHistogram.h",
"chars": 1737,
"preview": "//\n// QtSLiMGraphView_LossTimeHistogram.h\n// SLiM\n//\n// Created by Ben Haller on 3/30/2020.\n// Copyright (c) 2020-20"
},
{
"path": "QtSLiM/QtSLiMGraphView_MultispeciesPopSizeOverTime.cpp",
"chars": 16206,
"preview": "//\n// QtSLiMGraphView_MultispeciesPopSizeOverTime.cpp\n// SLiM\n//\n// Created by Ben Haller on 4/25/2022.\n// Copyright"
},
{
"path": "QtSLiM/QtSLiMGraphView_MultispeciesPopSizeOverTime.h",
"chars": 2474,
"preview": "//\n// QtSLiMGraphView_MultispeciesPopSizeOverTime.h\n// SLiM\n//\n// Created by Ben Haller on 4/25/2022.\n// Copyright ("
},
{
"path": "QtSLiM/QtSLiMGraphView_PopFitnessDist.cpp",
"chars": 4620,
"preview": "//\n// QtSLiMGraphView_PopFitnessDist.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/3/2020.\n// Copyright (c) 2020-2025"
},
{
"path": "QtSLiM/QtSLiMGraphView_PopFitnessDist.h",
"chars": 1669,
"preview": "//\n// QtSLiMGraphView_PopFitnessDist.h\n// SLiM\n//\n// Created by Ben Haller on 8/3/2020.\n// Copyright (c) 2020-2025 B"
},
{
"path": "QtSLiM/QtSLiMGraphView_PopSizeOverTime.cpp",
"chars": 15347,
"preview": "//\n// QtSLiMGraphView_PopSizeOverTime.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/30/2020.\n// Copyright (c) 2020-20"
},
{
"path": "QtSLiM/QtSLiMGraphView_PopSizeOverTime.h",
"chars": 2390,
"preview": "//\n// QtSLiMGraphView_PopSizeOverTime.h\n// SLiM\n//\n// Created by Ben Haller on 8/30/2020.\n// Copyright (c) 2020-2025"
},
{
"path": "QtSLiM/QtSLiMGraphView_PopulationVisualization.cpp",
"chars": 31293,
"preview": "//\n// QtSLiMGraphView_PopulationVisualization.cpp\n// SLiM\n//\n// Created by Ben Haller on 3/30/2020.\n// Copyright (c)"
},
{
"path": "QtSLiM/QtSLiMGraphView_PopulationVisualization.h",
"chars": 2375,
"preview": "//\n// QtSLiMGraphView_PopulationVisualization.h\n// SLiM\n//\n// Created by Ben Haller on 3/30/2020.\n// Copyright (c) 2"
},
{
"path": "QtSLiM/QtSLiMGraphView_SubpopFitnessDists.cpp",
"chars": 8578,
"preview": "//\n// QtSLiMGraphView_SubpopFitnessDists.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/8/2020.\n// Copyright (c) 2020-"
},
{
"path": "QtSLiM/QtSLiMGraphView_SubpopFitnessDists.h",
"chars": 1829,
"preview": "//\n// QtSLiMGraphView_SubpopFitnessDists.h\n// SLiM\n//\n// Created by Ben Haller on 8/3/2020.\n// Copyright (c) 2020-20"
},
{
"path": "QtSLiM/QtSLiMHaplotypeManager.cpp",
"chars": 71161,
"preview": "//\n// QtSLiMHaplotypeManager.h\n// SLiM\n//\n// Created by Ben Haller on 4/3/2020.\n// Copyright (c) 2020-2025 Benjamin "
},
{
"path": "QtSLiM/QtSLiMHaplotypeManager.h",
"chars": 9401,
"preview": "//\n// QtSLiMHaplotypeManager.h\n// SLiM\n//\n// Created by Ben Haller on 4/3/2020.\n// Copyright (c) 2020-2025 Benjamin "
},
{
"path": "QtSLiM/QtSLiMHaplotypeManager_GL.cpp",
"chars": 6179,
"preview": "//\n// QtSLiMHaplotypeManager_GL.h\n// SLiM\n//\n// Created by Ben Haller on 8/26/2024.\n// Copyright (c) 2024-2025 Benja"
},
{
"path": "QtSLiM/QtSLiMHaplotypeManager_QT.cpp",
"chars": 6205,
"preview": "//\n// QtSLiMHaplotypeManager_QT.h\n// SLiM\n//\n// Created by Ben Haller on 8/26/2024.\n// Copyright (c) 2024-2025 Benja"
},
{
"path": "QtSLiM/QtSLiMHaplotypeOptions.cpp",
"chars": 3897,
"preview": "//\n// QtSLiMHaplotypeOptions.cpp\n// SLiM\n//\n// Created by Ben Haller on 4/4/2020.\n// Copyright (c) 2020-2025 Benjami"
},
{
"path": "QtSLiM/QtSLiMHaplotypeOptions.h",
"chars": 1615,
"preview": "//\n// QtSLiMHaplotypeOptions.h\n// SLiM\n//\n// Created by Ben Haller on 4/4/2020.\n// Copyright (c) 2020-2025 Benjamin "
},
{
"path": "QtSLiM/QtSLiMHaplotypeOptions.ui",
"chars": 11151,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>QtSLiMHaplotypeOptions</class>\n <widget class=\"QDialog"
},
{
"path": "QtSLiM/QtSLiMHaplotypeProgress.cpp",
"chars": 3864,
"preview": "//\n// QtSLiMHaplotypeProgress.cpp\n// SLiM\n//\n// Created by Ben Haller on 4/4/2020.\n// Copyright (c) 2020-2025 Benjam"
},
{
"path": "QtSLiM/QtSLiMHaplotypeProgress.h",
"chars": 1685,
"preview": "//\n// QtSLiMHaplotypeProgress.h\n// SLiM\n//\n// Created by Ben Haller on 4/4/2020.\n// Copyright (c) 2020-2025 Benjamin"
},
{
"path": "QtSLiM/QtSLiMHaplotypeProgress.ui",
"chars": 9038,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>QtSLiMHaplotypeProgress</class>\n <widget class=\"QDialo"
},
{
"path": "QtSLiM/QtSLiMHelpWindow.cpp",
"chars": 57730,
"preview": "//\n// QtSLiMHelpWindow.cpp\n// SLiM\n//\n// Created by Ben Haller on 11/19/2019.\n// Copyright (c) 2019-2025 Benjamin C."
},
{
"path": "QtSLiM/QtSLiMHelpWindow.h",
"chars": 6291,
"preview": "//\n// QtSLiMHelpWindow.h\n// SLiM\n//\n// Created by Ben Haller on 11/19/2019.\n// Copyright (c) 2019-2025 Benjamin C. H"
},
{
"path": "QtSLiM/QtSLiMHelpWindow.ui",
"chars": 4418,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>QtSLiMHelpWindow</class>\n <widget class=\"QWidget\" name"
},
{
"path": "QtSLiM/QtSLiMIndividualsWidget.cpp",
"chars": 45566,
"preview": "//\n// QtSLiMIndividualsWidget.cpp\n// SLiM\n//\n// Created by Ben Haller on 7/30/2019.\n// Copyright (c) 2019-2025 Benja"
},
{
"path": "QtSLiM/QtSLiMIndividualsWidget.h",
"chars": 5263,
"preview": "//\n// QtSLiMIndividualsWidget.h\n// SLiM\n//\n// Created by Ben Haller on 7/30/2019.\n// Copyright (c) 2019-2025 Benjami"
},
{
"path": "QtSLiM/QtSLiMIndividualsWidget_GL.cpp",
"chars": 32421,
"preview": "//\n// QtSLiMIndividualsWidget_GL.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/25/2024.\n// Copyright (c) 2024-2025 Be"
},
{
"path": "QtSLiM/QtSLiMIndividualsWidget_QT.cpp",
"chars": 25262,
"preview": "//\n// QtSLiMIndividualsWidget_QT.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/25/2024.\n// Copyright (c) 2024-2025 Be"
},
{
"path": "QtSLiM/QtSLiMOpenGL.cpp",
"chars": 1593,
"preview": "//\n// QtSLiMOpenGL.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/25/2024.\n// Copyright (c) 2024-2025 Benjamin C. Hall"
},
{
"path": "QtSLiM/QtSLiMOpenGL.h",
"chars": 3271,
"preview": "//\n// QtSLiMOpenGL.h\n// SLiM\n//\n// Created by Ben Haller on 8/25/2024.\n// Copyright (c) 2024-2025 Benjamin C. Haller"
},
{
"path": "QtSLiM/QtSLiMOpenGL_Emulation.h",
"chars": 2327,
"preview": "//\n// QtSLiMOpenGL_Emulation.h\n// SLiM\n//\n// Created by Ben Haller on 8/25/2024.\n// Copyright (c) 2024-2025 Benjamin"
},
{
"path": "QtSLiM/QtSLiMPopulationTable.cpp",
"chars": 12572,
"preview": "//\n// QtSLiMPopulationTable.cpp\n// SLiM\n//\n// Created by Ben Haller on 7/30/2019.\n// Copyright (c) 2019-2025 Benjami"
},
{
"path": "QtSLiM/QtSLiMPopulationTable.h",
"chars": 2735,
"preview": "//\n// QtSLiMPopulationTable.h\n// SLiM\n//\n// Created by Ben Haller on 7/30/2019.\n// Copyright (c) 2019-2025 Benjamin "
},
{
"path": "QtSLiM/QtSLiMPreferences.cpp",
"chars": 20140,
"preview": "//\n// QtSLiMPreferences.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/3/2019.\n// Copyright (c) 2019-2025 Benjamin C. "
},
{
"path": "QtSLiM/QtSLiMPreferences.h",
"chars": 4361,
"preview": "//\n// QtSLiMPreferences.h\n// SLiM\n//\n// Created by Ben Haller on 8/3/2019.\n// Copyright (c) 2019-2025 Benjamin C. Ha"
},
{
"path": "QtSLiM/QtSLiMPreferences.ui",
"chars": 21547,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>QtSLiMPreferences</class>\n <widget class=\"QDialog\" nam"
},
{
"path": "QtSLiM/QtSLiMScriptTextEdit.cpp",
"chars": 167650,
"preview": "//\n// QtSLiMScriptTextEdit.cpp\n// SLiM\n//\n// Created by Ben Haller on 11/24/2019.\n// Copyright (c) 2019-2025 Benjami"
},
{
"path": "QtSLiM/QtSLiMScriptTextEdit.h",
"chars": 11601,
"preview": "//\n// QtSLiMScriptTextEdit.h\n// SLiM\n//\n// Created by Ben Haller on 11/24/2019.\n// Copyright (c) 2019-2025 Benjamin "
},
{
"path": "QtSLiM/QtSLiMSyntaxHighlighting.cpp",
"chars": 15082,
"preview": "//\n// QtSLiMSyntaxHighlighting.cpp\n// SLiM\n//\n// Created by Ben Haller on 8/4/2019.\n// Copyright (c) 2019-2025 Benja"
},
{
"path": "QtSLiM/QtSLiMSyntaxHighlighting.h",
"chars": 2698,
"preview": "//\n// QtSLiMSyntaxHighlighting.h\n// SLiM\n//\n// Created by Ben Haller on 8/4/2019.\n// Copyright (c) 2019-2025 Benjami"
},
{
"path": "QtSLiM/QtSLiMTablesDrawer.cpp",
"chars": 49714,
"preview": "//\n// QtSLiMTablesDrawer.cpp\n// SLiM\n//\n// Created by Ben Haller on 2/22/2020.\n// Copyright (c) 2020-2025 Benjamin C"
},
{
"path": "QtSLiM/QtSLiMTablesDrawer.h",
"chars": 5252,
"preview": "//\n// QtSLiMTablesDrawer.h\n// SLiM\n//\n// Created by Ben Haller on 2/22/2020.\n// Copyright (c) 2020-2025 Benjamin C. "
},
{
"path": "QtSLiM/QtSLiMTablesDrawer.ui",
"chars": 6791,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>QtSLiMTablesDrawer</class>\n <widget class=\"QWidget\" na"
},
{
"path": "QtSLiM/QtSLiMVariableBrowser.cpp",
"chars": 27336,
"preview": "//\n// QtSLiMVariableBrowser.cpp\n// SLiM\n//\n// Created by Ben Haller on 4/17/2019.\n// Copyright (c) 2020-2025 Benjami"
},
{
"path": "QtSLiM/QtSLiMVariableBrowser.h",
"chars": 4322,
"preview": "//\n// QtSLiMVariableBrowser.h\n// SLiM\n//\n// Created by Ben Haller on 4/17/2019.\n// Copyright (c) 2020-2025 Benjamin "
},
{
"path": "QtSLiM/QtSLiMVariableBrowser.ui",
"chars": 2185,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>QtSLiMVariableBrowser</class>\n <widget class=\"QWidget\""
},
{
"path": "QtSLiM/QtSLiMWindow.cpp",
"chars": 308849,
"preview": "//\n// QtSLiMWindow.cpp\n// SLiM\n//\n// Created by Ben Haller on 7/11/2019.\n// Copyright (c) 2019-2025 Benjamin C. Hall"
},
{
"path": "QtSLiM/QtSLiMWindow.h",
"chars": 16458,
"preview": "//\n// QtSLiMWindow.h\n// SLiM\n//\n// Created by Ben Haller on 7/11/2019.\n// Copyright (c) 2019-2025 Benjamin C. Haller"
},
{
"path": "QtSLiM/QtSLiMWindow.ui",
"chars": 71139,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ui version=\"4.0\">\n <class>QtSLiMWindow</class>\n <widget class=\"QMainWindow\" name"
},
{
"path": "QtSLiM/QtSLiMWindow_glue.cpp",
"chars": 25145,
"preview": "//\n// QtSLiMWindow_glue.cpp\n// SLiM\n//\n// Created by Ben Haller on 7/11/2019.\n// Copyright (c) 2019-2025 Benjamin C."
},
{
"path": "QtSLiM/QtSLiM_Info.plist",
"chars": 4798,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "QtSLiM/QtSLiM_Plot.cpp",
"chars": 89185,
"preview": "//\n// QtSLiM_Plot.cpp\n// SLiM\n//\n// Created by Ben Haller on 1/30/2024.\n// Copyright (c) 2024-2025 Benjamin C. Halle"
},
{
"path": "QtSLiM/QtSLiM_Plot.h",
"chars": 5612,
"preview": "//\n// QtSLiM_Plot.h\n// SLiM\n//\n// Created by Ben Haller on 1/30/2024.\n// Copyright (c) 2024-2025 Benjamin C. Haller."
},
{
"path": "QtSLiM/QtSLiM_SLiMgui.cpp",
"chars": 14908,
"preview": "//\n// QtSLiM_SLiMgui.cpp\n// SLiM\n//\n// Created by Ben Haller on 12/7/2019.\n// Copyright (c) 2019-2025 Benjamin C. Ha"
},
{
"path": "QtSLiM/QtSLiM_SLiMgui.h",
"chars": 3908,
"preview": "//\n// QtSLiM_SLiMgui.h\n// SLiM\n//\n// Created by Ben Haller on 12/7/2019.\n// Copyright (c) 2019-2025 Benjamin C. Hall"
},
{
"path": "QtSLiM/buttons.qrc",
"chars": 3221,
"preview": "<RCC>\n <qresource prefix=\"/buttons\"/>\n <qresource prefix=\"/\">\n <file>buttons/play_H.png</file>\n <fil"
},
{
"path": "QtSLiM/buttons_DARK.qrc",
"chars": 3853,
"preview": "<RCC>\n <qresource prefix=\"/buttons_DARK\"/>\n <qresource prefix=\"/\">\n <file>buttons_DARK/play_H_DARK.png</fil"
},
{
"path": "QtSLiM/help/EidosHelpClasses.html",
"chars": 53552,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n<head>\n <meta http-eq"
},
{
"path": "QtSLiM/help/EidosHelpFunctions.html",
"chars": 282340,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n<head>\n <meta http-eq"
},
{
"path": "QtSLiM/help/EidosHelpOperators.html",
"chars": 36786,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n<head>\n <meta http-eq"
},
{
"path": "QtSLiM/help/EidosHelpStatements.html",
"chars": 26733,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n<head>\n <meta http-eq"
},
{
"path": "QtSLiM/help/EidosHelpTypes.html",
"chars": 17078,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n<head>\n <meta http-eq"
},
{
"path": "QtSLiM/help/SLiMHelpCallbacks.html",
"chars": 103076,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n<head>\n <meta http-eq"
},
{
"path": "QtSLiM/help/SLiMHelpClasses.html",
"chars": 708259,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n<head>\n <meta http-eq"
},
{
"path": "QtSLiM/help/SLiMHelpFunctions.html",
"chars": 182484,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n<html>\n<head>\n <meta http-eq"
},
{
"path": "QtSLiM/help.qrc",
"chars": 714,
"preview": "<RCC>\n <qresource prefix=\"/\">\n <file>help/SLiMHelpCallbacks.html</file>\n <file>help/SLiMHelpClasses.htm"
},
{
"path": "QtSLiM/icons.qrc",
"chars": 851,
"preview": "<RCC>\n <qresource prefix=\"/\">\n <file>icons/AppIcon128.png</file>\n <file>icons/AppIcon1024.png</file>\n "
},
{
"path": "QtSLiM/main.cpp",
"chars": 14674,
"preview": "#include \"QtSLiMAppDelegate.h\"\n#include \"QtSLiMWindow.h\"\n#include \"QtSLiMPreferences.h\"\n#include \"QtSLiMExtras.h\"\n\n#incl"
},
{
"path": "QtSLiM/recipes/Recipe 10.1 - Temporally varying selection.txt",
"chars": 471,
"preview": "// Keywords: environmental change\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \"f\","
},
{
"path": "QtSLiM/recipes/Recipe 10.2 - Spatially varying selection.txt",
"chars": 629,
"preview": "// Keywords: migration, dispersal\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \"f\","
},
{
"path": "QtSLiM/recipes/Recipe 10.3.1 - Fitness as a function of genomic background, Epistasis I.txt",
"chars": 895,
"preview": "// Keywords: gene interactions\n\ninitialize() {\n\tinitializeMutationRate(1e-8);\n\tinitializeMutationType(\"m1\", 0.5, \"f\", 0."
},
{
"path": "QtSLiM/recipes/Recipe 10.3.1 - Fitness as a function of genomic background, Epistasis II.txt",
"chars": 957,
"preview": "// Keywords: gene interactions\n\ninitialize() {\n\tinitializeMutationRate(1e-8);\n\tinitializeMutationType(\"m1\", 0.5, \"f\", 0."
},
{
"path": "QtSLiM/recipes/Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection I.txt",
"chars": 473,
"preview": "// Keywords: \n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \"f\", 0.0); // neutral"
},
{
"path": "QtSLiM/recipes/Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection II.txt",
"chars": 484,
"preview": "// Keywords: \n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \"f\", 0.0); // neutral"
},
{
"path": "QtSLiM/recipes/Recipe 10.4.1 - Fitness as a function of population composition, Frequency-dependent selection III.txt",
"chars": 544,
"preview": "// Keywords: \n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \"f\", 0.0); // neutral"
},
{
"path": "QtSLiM/recipes/Recipe 10.4.2 - Fitness as a function of population composition, Cultural effects on fitness.txt",
"chars": 764,
"preview": "// Keywords: culture, non-genetic inheritance\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1"
},
{
"path": "QtSLiM/recipes/Recipe 10.4.3 - Fitness as a function of population composition, Kin selection and the green-beard effect.txt",
"chars": 1104,
"preview": "// Keywords: kin selection, inclusive fitness, selfish gene, greenbeard effect\n\ninitialize() {\n\tinitializeMutationRate(1"
},
{
"path": "QtSLiM/recipes/Recipe 10.5 - Changing selection coefficients with setSelectionCoeff().txt",
"chars": 606,
"preview": "// Keywords: environmental change, temporal change\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationTyp"
},
{
"path": "QtSLiM/recipes/Recipe 10.6 - Varying the dominance coefficient among mutations I.txt",
"chars": 624,
"preview": "// Keywords: dominance coefficients, mutation()\n\ninitialize() {\n\tinitializeMutationRate(1e-8);\n\tinitializeMutationType(\""
},
{
"path": "QtSLiM/recipes/Recipe 10.6 - Varying the dominance coefficient among mutations II.txt",
"chars": 478,
"preview": "// Keywords: dominance coefficients, mutation()\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tfor (i in 0:10)\n\t\tinitia"
},
{
"path": "QtSLiM/recipes/Recipe 11.1 - Assortative mating.txt",
"chars": 1387,
"preview": "// Keywords: migration, dispersal\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \"f\","
},
{
"path": "QtSLiM/recipes/Recipe 11.2 - Sequential mate search I.txt",
"chars": 949,
"preview": "// Keywords: choosy, choosiness, ornament, mate choice\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutatio"
},
{
"path": "QtSLiM/recipes/Recipe 11.2 - Sequential mate search II.txt",
"chars": 867,
"preview": "// Keywords: choosy, choosiness, ornament, mate choice\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutatio"
},
{
"path": "QtSLiM/recipes/Recipe 11.3 - Gametophytic self-incompatibility.txt",
"chars": 1022,
"preview": "// Keywords: modifyChild(), plants, pollen\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", "
},
{
"path": "QtSLiM/recipes/Recipe 12.1 - Social learning of cultural traits.txt",
"chars": 845,
"preview": "// Keywords: non-genetic inheritance\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \""
},
{
"path": "QtSLiM/recipes/Recipe 12.2 - Lethal epistasis I.txt",
"chars": 863,
"preview": "// Keywords: gene interaction\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \"f\", 0.0"
},
{
"path": "QtSLiM/recipes/Recipe 12.2 - Lethal epistasis II.txt",
"chars": 877,
"preview": "// Keywords: gene interaction\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \"f\", 0.0"
},
{
"path": "QtSLiM/recipes/Recipe 12.3 - Simulating gene drive.txt",
"chars": 1285,
"preview": "// Keywords: migration, dispersal, CRISPR gene drive\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationT"
},
{
"path": "QtSLiM/recipes/Recipe 12.4 - Suppressing hermaphroditic selfing.txt",
"chars": 727,
"preview": "// Keywords: selfing\n\n// NOTE: This model is now obsolete! Is it now recommended\n// that you use this call in your init"
},
{
"path": "QtSLiM/recipes/Recipe 12.5 - Tracking separate sexes in script.txt",
"chars": 630,
"preview": "// Keywords: separate sexes, sexual model, sex chromosomes, sex ratio, Wolbachia\n\ninitialize() {\n\tinitializeMutationRate"
},
{
"path": "QtSLiM/recipes/Recipe 13.1 - Polygenic selection.txt",
"chars": 756,
"preview": "// Keywords: quantitative trait, polygenic selection\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationT"
},
{
"path": "QtSLiM/recipes/Recipe 13.2 - A simple model of variable QTL effect sizes.txt",
"chars": 989,
"preview": "// Keywords: quantitative trait\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \"f\", 0"
},
{
"path": "QtSLiM/recipes/Recipe 13.3 - A model of discrete QTL effects across multiple chromosomes.txt",
"chars": 3259,
"preview": "// Keywords: migration, dispersal, QTL, quantitative trait loci\n\ninitialize() {\n\t// neutral mutations in non-coding regi"
},
{
"path": "QtSLiM/recipes/Recipe 13.4 - A quantitative genetics model with heritability.txt",
"chars": 1827,
"preview": "// Keywords: QTLs, quantitative trait loci, heritability, environmental variance, breeding values, additive genetic vari"
},
{
"path": "QtSLiM/recipes/Recipe 13.5 - A QTL-based model with two quantitative phenotypic traits and pleiotropy.txt",
"chars": 4448,
"preview": "// Keywords: QTL, quantitative trait loci, pleiotropy, M-matrix, live plotting, mutation()\n\nfunction (void)updatePlot(vo"
},
{
"path": "QtSLiM/recipes/Recipe 13.6 - A variety of fitness functions I (stabilizing selection).txt",
"chars": 902,
"preview": "// Keywords: quantitative trait\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \"f\", 0"
},
{
"path": "QtSLiM/recipes/Recipe 13.6 - A variety of fitness functions II (directional selection).txt",
"chars": 853,
"preview": "// Keywords: quantitative trait\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \"f\", 0"
},
{
"path": "QtSLiM/recipes/Recipe 13.6 - A variety of fitness functions III (disruptive selection).txt",
"chars": 902,
"preview": "// Keywords: quantitative trait\n\ninitialize() {\n\tinitializeMutationRate(1e-7);\n\tinitializeMutationType(\"m1\", 0.5, \"f\", 0"
}
]
// ... and 1114 more files (download for full content)
About this extraction
This page contains the full source code of the MesserLab/SLiM GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1314 files (22.8 MB), approximately 6.0M tokens, and a symbol index with 6580 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.