A powerful Swift framework for evaluating natural language math expressions
cubic meters
(rather than liters
). This enables SoulverCore to return a result of meters for expressions like "200000 L / 125 m^2"country
and city
on Place
. These will return the associated country for a City
, and the capital city of a Country
. It will also return the associated city with an Airport
placeundefined
as your equivalentUnitIdentifier
CurrencySymbolSettings
enum on EngineCustomization
.automatic
(the default) for the most logical currency symbol settings for the current localeTimezoneCodeCorrectionBehavior
enum that can be used on an EngineFeatureFlags
on an EngineCustomization
Calendar
which sometimes interprets "Feb 29" as an invalid date (even in a leap year).
symbol was not being correctly interpreted as a decimal point in locales like French & Russian, in which this symbol is not defined as either a decimal point or thousands separatork
, M
, G
, etc) to sub-expressions (500)k and line references in LineCollection
=
symbol will no longer return resultsEngineFeatureFlags
object has been tidied up and certain flags removedEngineFeatureFlags
had become a bit of a catch-all object over time, with many legacy properties. We felt it was time to make it more friendly for newcomer to the framework, and also more ergonomic for everyoneCommentingOptions
object (set the commentingOptions
property on LineCollection
) to customize which commenting features you want to support in multi-line calculationsCalculator
no longer supports commenting features (they continue to be available on LineCollection
)misplacedThousandsSeparatorBehavior
on EngineFeatureFlags
and can be set to control how numbers with thousands separators in the wrong position should be handled (allow
, disallow
or interpretAsDecimalPoint
)interpretAsDecimalPoint
option, Europeans that use ,
as a decimal separator can now also use .
in unambiguous cases (like "1,3 + 1.3 = 2,6")dp
property in FormattingPreferences
today - 1973
0.1^1000
)sinh
function incorrectly calling cosh
insteadsinh(10000)
could crash SoulverCoreThis version adds support for special widely celebrated cultural events in calendar calculations, including:
Use special days in calendar calculations, like "days until xmas", "black friday last year", "chinese new year 2025", "this easter", etc.
They are especially helpful for working with events like Easter, Ramadan and Chinese New Year that tend to change their date every year.
showTrailingZeros
property to display a result of $1.00
as $1
. This was not possible in previous releases.rem
css unitfontBaseSize
property on EngineCustomization
that can be used to customize the definition of the rem
and em
unitsimpreciseResult
error type.
Numbers larger than 37 significant digits cannot fit into Foundation's Decimal
type, and doing certain operations on them which require more precision than this will fail (like mod)CalculationResult
objects (adding, subtracting, negating, etc)SIThreshold
EngineFeatureFlags
have been moved into LineCollection
, as they only apply to calculations over multiple lines.