Skip to content
#edge computing Open access

cgarling/StarFormationHistories.jl: v2.0.0

Oct 2026 · Zenodo (CERN European Organization for Nuclear Research)
Galaxies: Formation, Evolution, Phenomena

Abstract

StarFormationHistories v2.0.0 Diff since v1.3.1 Added cum_sfr_quantiles returns quantiles of the total birth stellar mass of the sampled star formation histories (mstar) and, given per-population surviving mass fractions through the new surviving_fractions keyword (e.g., from surviving_mass_fraction), of their present-day stellar mass (mstar_present, otherwise nothing). These are quantiles of the total mass of each sampled history, which account for the correlations between time bins, unlike sums of the per-bin star formation rate quantiles. Fitting of single stellar populations (e.g., star clusters): SSPModel, fit_ssp, sample_ssp, and SSPFit. Templates are computed on the fly from a user-provided isochrone function, so age, metallicity, distance modulus, and extinction are continuous parameters, each fixed or free with a Distributions.jl prior, as are the binary fraction and the fraction of stars in a uniform or user-provided background. The total amplitude is marginalized analytically. fit_ssp finds the maximum a posteriori parameters by optimizing in parallel from starting points found by a quasirandom search over age, metallicity, and distance, and sample_ssp samples the posterior, including every mode found by those optimizations, with a short ensemble-sampler pilot per mode followed by adaptive importance sampling. It returns an SSPSamples with equal-weight samples (including the stellar mass formed and the expected number of background stars), the probability and evidence of each mode, and convergence diagnostics, and warns when its settings were inadequate. ssp_hess and ssp_mass give the expected Hess diagram and stellar mass formed for given parameters. SSPModel implements the LogDensityProblems.jl interface for use with other samplers. ssp_components, which returns the single-star and binary Hess diagrams of a population so that the Hess diagram for any binary fraction is a linear combination of the two, and with_fraction(binary_model, fraction) for each binary model. hess_mask(edges, gates), which marks the Hess diagram bins whose centers lie inside any of the given polygons, to exclude regions of the Hess diagram from fits (equivalent to gates in MATCH). Joint observational models: the completeness, photometric error, and bias passed to partial_cmd_smooth and model_cmd may each be a single callable taking the magnitudes in all filters, which can represent selection that depends on several filters together, e.g., a signal-to-noise cut in every filter. A new 2-D method of process_ASTs measures these on a grid of input magnitudes in two filters, blending sparsely populated cells with the 1-D statistics of their rows and columns (keyword n0). binary_systems, a deterministic quadrature over the binary systems of a binary model, which all binary models now use to build smooth templates. A new binary model only needs to implement binary_systems and binary_mass_fraction to be supported in templates. Backgrounds in fit_sfh: the new background keyword takes a HessBackground, a fixed Hess diagram shape (e.g., uniform, or a control field) whose expected number of stars is fit (starting from 1% of the observed stars unless given), or fixed, alongside the star formation history and metallicity parameters. Contaminants such as background galaxies and foreground stars otherwise bias the fit toward more old stars and broader metallicity dispersions. The default NoBackground() reproduces previous results. The background parameter is the last element of the fitted parameters, and BFGSResult has a new bg_model field holding the best-fit background; sample_sfh, tsample_sfh, cum_sfr_quantiles, and calculate_coeffs account for it. renormalize_x0 has a new background keyword. generate_stars_mag_composite accepts birth stellar mass fractions with frac_type=:mass, which are converted to luminosity fractions with the new luminosity_per_mass. mass_from_absmag returns the birth stellar mass of a composite population with a given integrated absolute magnitude. Templates with differential extinction: a new method of partial_cmd_smooth (and of ssp_components) takes the isochrone magnitudes at several extinctions (knots, e.g., the extinction nodes of the bolometric correction grid, between which magnitudes are interpolated linearly) and a continuous distribution of V-band extinctions. Each isochrone point is deposited along its reddening path in steps across which it moves by at most max_shift (default 0.5) times the larger of its photometric error and the bin width, each as a Gaussian kernel broadened by the spread of extinction across the step, with errors, completeness, and bias evaluated at the step's mean extinction. Binary systems and joint observational models are supported. match_extinction gives the MATCH model of a uniform spread dAv for all stars plus an additional spread dAvy for young stars, using the new UniformSum distribution, and prepare_extinction truncates unbounded distributions at their ±3σ quantiles and at zero. ExponentialDiskExtinction models stars and dust in exponential disks with different scale heights and an offset between their midplanes, of which the MATCH model is the case of equal scale heights and no offset, optionally with a log-normal spread of the total extinction of the dust across the disk (as in the -diskav model of MATCH), and match_extinction also adds the additional spread for young stars to any bounded distribution (UniformConvolution). GaussianKernel now accepts any covariance term, not only -1, 0, and 1. surviving_mass_fraction(mmax, imf, binary_model=NoBinaries(); mean_mass=mean(imf)), the fraction of the birth stellar mass of a simple stellar population in stars that are still alive given the initial mass mmax of its most massive living star. For BinaryMassRatio, it accounts for binary systems whose primary has died while their secondary is alive. surviving_mass_fraction(massvec, coeffs, imf) and recycling_mass_fraction accept the same binary_model argument and mean_mass keyword. surviving_fraction(mmax, imf, binary_model=NoBinaries()), the number fraction of the stars born in a simple stellar population that are still alive, counting each star in a binary system separately. surviving_fraction(massvec, coeffs, imf) and recycling_fraction accept the same binary_model argument. Breaking changes Julia 1.10 (the current LTS) or later is now required; previously Julia 1.7 was supported. Isochrone ingestion no longer sorts the initial mass vector. Interpolated isochrones can have small decreases in initial mass along the isochrone, e.g., from the tip of the red giant branch to the horizontal branch, and sorting interleaved the points of the two phases. The new ingest_isochrone (which replaces sort_ingested) keeps the points in evolutionary order and removes each decrease by shifting the initial masses of all later points up by its size, preserving the mass differences within each phase. Points that are clearly not in evolutionary order are still sorted by initial mass, with a warning. Templates and simulated catalogs change for isochrones with such decreases. ingest_isochrone also no longer mutates its input. process_ASTs now returns the photometric error as the standard deviation of a Gaussian with the same median absolute deviation as the residuals (1.4826 times the median absolute deviation), so it can be used directly as the error in templates and model_cmd. Returned errors are about 1.48 times larger than before. The statistic keyword was removed; bias and error always use the median. Isochrone points used to build smooth templates (partial_cmd_smooth) are now spaced by at most half the photometric error (with errors below 0.01 mag treated as 0.01 mag), in addition to at most the bin width. Templates are smoother along the isochrone, particularly at bright magnitudes where the errors are small, and change slightly. mini_spacing accepts a vector of per-point maximum spacings for this. The Gaussian kernels that add isochrone points to Hess diagrams were consolidated into a single GaussianKernel, replacing the internal GaussianPSFAsymmetric and GaussianPSFCovariant. When the magnitude of the Hess diagram also appears in its color, each pixel row is now oversampled along the magnitude axis, so the covariance between color and magnitude is integrated accurately even when the errors are small compared to the pixels; see the kernels documentation. Templates change slightly. The VectorizationBase dependency was removed. calculate_cum_sfr now gives bins without star formation the mean metallicity of the nearest older bin with star formation, or of the nearest younger one for bins older than all star formation. Previously such bins took the value of the next younger bin, and the youngest bin took the unweighted mean of the metallicity grid. generate_stars_mass and generate_stars_mag now keep the last sampled system, which crosses the requested total, with a probability set by how far it overshoots, so the mean total over many samples equals the requested total; previously the last system was always kept, biasing the mean high. Samples for a given random seed differ from previous versions. fit_sfh limits each of its MAP and MLE optimizations to 500 iterations by default, set by the new iterations keyword; previously the limit was Optim.jl's default of 1000. Converged fits typically take 100-200 iterations. fit_sfh now fits the stellar mass coefficients (and background) with the metallicity and dispersion parameters held at their initial values to obtain an initial solution and starts the full BFGS optimization from that solution. From a poor initial guess, the first steps could otherwise push the mean metallicities beyond the metallicity grid, where the likelihood does not depend on them and the fit could not recover; results of fits that converged before change only within their tolerances. generate_stars_mass_composite and generate_stars_mag_composite sample their

View source

Similar papers

#computer vision Review Sep 2017

Agile Software Development Methods: Review and Analysis

This publication proposes a definition and a classification of agile software development approaches and analyses ten software development methods that can be characterized as being "agile" against the defined criterion.

P. Abrahamsson, O. Salo, Jussi Ronkainen et al. · 727 citations · ⚡54
#computer vision Jun 2008

The impact of agile practices on communication in software development

The study shows that agile practices improve both informal and formal communication, but indicates that, in larger development situations involving multiple external stakeholders, a mismatch of adequate communication mechanisms can sometimes even hinder the communication.

M. Pikkarainen, Jukka Haikara, O. Salo et al. · 401 citations · ⚡48
#machine learning Review Open access Oct 2014

Software development in startup companies: A systematic mapping study

The results indicate that software engineering work practices are chosen opportunistically, adapted and configured to provide value under the constrains imposed by the startup context.

Nicolò Paternoster, Carmine Giardino, M. Unterkalmsteiner et al. · 394 citations · ⚡54

Related blog posts

MIT News · Artificial Intelligence Oct 15, 2026

AI model decodes the language cells use to communicate

A new computational approach reveals how cells communicate to assemble into tissues. This could accelerate stem cell engineering, improve disease models, and inform therapies.

Microsoft Research Blog Oct 15, 2026

Proof-based general-purpose computing with Magnetar

Zero-knowledge proofs can verify computing results without rerunning workloads or exposing sensitive data. Magnetar helps bring them into the mainstream with support for standard programming languages, major speed gains, and quantum-resistant security. The post Proof-based general-purpose computing with Magnetar appeared first on Microsoft Research.

We use cookies to run the site and, with your consent, for analytics and to show ads. See our Cookie Policy.