1a5bd2b32c
fix(gcc): static_cast long int -> size_t for comparision
...
address IDB warnings in gcc build
2025-12-22 07:39:59 -05:00
e3b2a19de6
Merge pull request #9 from tboudreaux/perf/vec
...
Cache Locality
2025-12-08 11:52:50 -05:00
a49dc32fdb
docs(version): Version bumb v2.2.3 -> v2.3.0
...
New version brings internal cache locality by storing everything as
vectors rather than maps
2025-12-08 11:51:44 -05:00
d38517bc42
fix(benchmarks): fixed incorrect index gen
2025-12-08 11:50:05 -05:00
e29c7b8e2f
perf(benchmarks): added hist output
2025-12-08 11:38:43 -05:00
284e8cd10a
perf(Composition): Internally switched from map -> vector
...
This brings a major performance improvment as all memory is contiguous
on the heap rather than spread around.
2025-12-08 11:31:46 -05:00
184df676ca
perf(hashing): Much faster hash algorithm
...
For compositions we have implimented a much faster hashing algorithm
2025-12-07 09:41:58 -05:00
3dc697dd6e
docs(meson): version bump v2.2.4 -> v2.2.5
...
added composition hash caching in this version
2025-12-07 07:54:10 -05:00
3bd761091d
Merge branch 'main' of github.com:4D-STAR/libcomposition
2025-12-07 07:52:27 -05:00
51c6a97b47
fix(cache): Cache properly clears
...
Cache now clears properly when setting molar abundances
2025-12-07 07:52:08 -05:00
75ba6c8456
perf(hash): Hash caching
...
added ability for composition to stash their own hash values
2025-12-07 07:47:32 -05:00
c2e542700a
build(wasm): libcomposition now builds on wasm
...
libcomposition now builds and works on wasm. This includes bringing in versions of sublibraries which can also work on wasm
2025-12-03 11:12:41 -05:00
9541234a5f
build(wasm): working on getting wasm support into libcomposition
2025-12-03 11:02:51 -05:00
ae4b2119d8
fix(unity): fixed name conflict in unity builds
...
getSpecies was defined in two translation units. This was not an issue
for regular builds but broke unity builds. this has been refactored to a
single function in utils.h
2025-11-28 11:42:13 -05:00
42c9d18063
docs(docs): rebuilt
2025-11-27 17:47:38 -05:00
ceff418999
docs(version): version bump v2.2.0 -> v2.2.1
...
Fixed broken include directies on linux
2025-11-27 17:47:19 -05:00
6da4818ff4
fix(gcc): Fixed broken include paths
...
GCC is more strict with header includes. Fixed some of these so that libcomposition compiled on linux with a gcc toolchain
2025-11-27 17:40:32 -05:00
522d766bc2
feat(composition): added map overloads
2025-11-25 11:27:45 -05:00
408dd71eee
feat(composition-hash): added robust hashed for compositions
...
also added ability to use Compositions as a std::hash in unordered_* types. Further added a constructor to build a Composition from a const CompositionAbstract&
2025-11-12 15:21:33 -05:00
2492b5f652
feat(MaskedComposition): added MaskedComposition to libcomposition
...
MaskedComposition is a generally useful decorator, therefore instead of forcing callers to impliment it on their own, we have implimented it as part of libcomposition
2025-11-10 08:47:35 -05:00
71e9269837
feat(CompositionAbstract): added clone and iterator methods to the CompositionAbstract Interface
2025-11-09 09:51:29 -05:00
31407c91f7
feat(CompositionDecorator): added composition decorator
...
It is sometimes useful for callers to be able to create new composition objects without overloading all the required methods. The CompositionDecorator acts as a simple translation layer which will pass any calls to virtual methods down to the next level of the composition stack (other than those which may have been overloaded by the caller)
2025-11-09 07:42:03 -05:00
49bfb5eff1
fix(CompositionAbstract): Moved CompositionAbstract into correct namespace
...
Further, added the composition_abstract header file to the correct install path
2025-11-09 06:59:38 -05:00
acff543b2d
docs(docs): updated docs and readme
2025-11-08 10:00:16 -05:00
e4e7387c01
docs(version): version bump v2.0.0 -> v2.0.1
2025-11-08 07:09:32 -05:00
576b99e719
build(meson.build): fixed required header check
...
build validation stage was looking at the old path for atomic headers, updated this
2025-11-08 07:08:52 -05:00
492e54a5ec
Merge pull request #8 from tboudreaux/main
...
Documentation Update
2025-11-08 06:44:57 -05:00
02cfc5f14c
docs(CHANGELOG): updated
2025-11-08 06:43:18 -05:00
d68808666e
docs(docs): rebuilt
2025-11-08 06:42:51 -05:00
7a303b8d3a
docs(fourdst::composition-and-fourdst::atomic): update documentation
2025-11-08 06:42:41 -05:00
a790d21df9
docs(changelog): added changelog
2025-11-07 15:53:27 -05:00
07b0b84793
Merge pull request #7 from tboudreaux/feature/molarAbundance
...
feat(composition): changed how composition is conmstructed
2025-11-07 15:51:34 -05:00
538fa78b37
docs(version): version bump v1.9.1 -> v2.0.0 to reflect major API change
2025-11-07 15:51:20 -05:00
84947a2b12
feat(composition): changed how composition is conmstructed
...
Composition objects now must be built from vectors of molar abundances. Things such as mass fraction and number fraction are computed on the fly (with some caching for performance). This will allow for many fewer issues when converting from solver space to composition space.
BREAKING CHANGE: The entire old API has been broken. There is no longer any need to finalize. In fact the entire concept of finalization has been removed. Further, the entire CompositionEntry and GlobalComposition data structure has been removed. Any code written for the old version will no longer work and major reworking will be needed to use the new version.
2025-11-07 15:49:25 -05:00
106f7c1c96
docs(version): version bump (v1.9.0 -> v1.9.1)
...
this is entirley a preformance patch, no features have regressed or been affected
2025-10-22 10:36:47 -04:00
b8dc4ad8a5
perf(Composition): improved static correctness
2025-10-22 10:35:49 -04:00
19c78ff241
perf(Composition): changed logger aquisition to static to prevent each Composition object from needing to instantiate a logger whenever its built
2025-10-22 10:32:50 -04:00
36849783f5
perf(CompositionEntry): made symbol and isotope std::optional for comopsition entry so that construction can be cheaper
2025-10-22 10:12:59 -04:00
8be8ac3b65
docs(docs): rebuilt docs
2025-10-12 10:22:43 -04:00
51dba31a44
docs(version): version bump v1.8.3 -> v1.9.0
2025-10-12 10:22:25 -04:00
5baa671ddd
docs(libcomposition): added more docstrings
2025-10-12 10:21:28 -04:00
0ef3b1a195
feat(Composition): Composition now inherits from abstract base class
...
The composition object is now a specialization of the abstract base CompositionAbstract. This interface enforces getters but not setters (those are left up to children). The intention here is that other code can specialize particular getters for cases where special handling (like unrestricted amounts of one species) are required.
2025-10-12 10:12:49 -04:00
1fd329a072
perf(az_to_species): marked noexcept
...
includes a version bump from v1.8.1 -> v1.8.2
2025-10-09 07:04:35 -04:00
325570f257
docs(meson.build): version bump (v1.8.0 -> v1.8.1)
2025-10-08 15:18:10 -04:00
f539e498b8
feat(az_to_species): az_to_species now returns an expected and error type
...
this will allow for much easier checking if a particular a,z pair actually exists
2025-10-08 15:17:33 -04:00
64b88e18cc
feat(meson.build): version bump (1.7.0 -> 1.8.0)
2025-10-06 14:31:58 -04:00
5fba54c1a2
feat(Added-ability-to-get-electron-abundance-and-fixed-some-conversion-bugs): Now Ye can be retrived directly from the composition object. Further a bug which prevented proper conversion to and from number or mass frac modes without messing up the numbers has been resolved
2025-10-06 14:29:33 -04:00
9d0d877e0f
Merge pull request #2 from tboudreaux/feature/canonicalVectorRepresentation
...
Feature/canonical vector representation (v1.6.0->v.1.7.0)
2025-09-16 11:26:48 -04:00
25ba902534
docs(docs): rebuilt docs for version 1.7.0
2025-09-16 11:24:28 -04:00
461d4ecbe7
docs(meson.build): version bump 1.6.0 -> 1.7.0
2025-09-16 11:23:57 -04:00