Commit Graph

173 Commits

Author SHA1 Message Date
d034453970 coremem_types: list: implement core::ops::Index 2022-07-20 14:48:52 -07:00
5b5085829d coremem_types: list: remove the dynamic indexing ops
trying to restructure this stuff specifically to aid the material needs.
2022-07-20 14:39:33 -07:00
7dd4b09faf coremem_types: list: remove unused test helpers 2022-07-20 14:37:54 -07:00
24b0b3d680 coremem_types: list: minor test refactoring 2022-07-20 14:37:08 -07:00
d0ae25e28b coremem_types: list: switch to parameter-based indexing; add apply method 2022-07-20 14:31:20 -07:00
e029c8b3d9 coremem_types: list: make the types public
in the future we can hopefully expose only a subset of the types.
2022-07-20 14:30:43 -07:00
5ddd6fef74 coremem_types: list: rename LLNode -> Node 2022-07-20 13:47:43 -07:00
0ce862b614 coremem_types: list: implement List building via a Chomp trait
it's simpler, and lets the user always do `(args...).into_list()`
on ANY `List<(Args...)>` alias type.
2022-07-20 13:46:17 -07:00
415ffb9c4d coremem_types: list: switch to 'head'/'tail' terminology 2022-07-20 13:10:14 -07:00
dfe27c9b56 coremem_types: list: add a way to construct the full list in one-go 2022-07-20 12:47:20 -07:00
00ae71a6eb coremem_types: add List::set, List::get_mut methods 2022-07-20 12:15:09 -07:00
3a235fe47e coremem_types: list: allow Peano-based index operation 2022-07-20 03:49:39 -07:00
159fa1b9a1 coremem_types: list: rename apply -> apply_all 2022-07-20 02:50:27 -07:00
8be90cca01 coremem_types: add Next type to Peano numbers 2022-07-20 02:48:59 -07:00
5ad6af8f8b coremem_types: add Peano numbers
not used yet, but will be by list/enum operations
2022-07-20 02:47:15 -07:00
2afb3f63d4 coremem_types: move compound to its own subdirectory
i'm going to start adding enums and such, in a separate file.
2022-07-20 02:38:08 -07:00
04def2149d coremem_types: compound: extend List constructor to 8 elements 2022-07-20 02:35:33 -07:00
79ac2c0a0d coremem: compound: add a List helper constructor 2022-07-20 02:32:40 -07:00
e14674f5b6 coremem_types: compound: allow LLNode::apply_at to return a value 2022-07-20 02:10:39 -07:00
a56cdabf5e coremem_types: List: add an apply_at method 2022-07-20 01:57:19 -07:00
f8930fd6ea coremem_types: compound: better docs 2022-07-20 01:46:24 -07:00
225d1d7f3a coremem_types: implement a list type wherein we can hope to implement enum-like types on gpu 2022-07-20 01:37:33 -07:00
7954d341fc rename 'Discriminable' => 'DisciminantCodable' 2022-07-19 14:14:54 -07:00
f8fccd957a coremem_types: IsomorphicConductor, AnisomorphicConductor are now used by both spirv and cpu impls 2022-07-19 02:08:22 -07:00
78f7e2be45 coremem_types: Conductor: make inner member private
this must mean the type's not being used, as it's now unconstructable.
2022-07-18 18:25:07 -07:00
c2a9ed99c0 coremem_types: split Conductor into its own file 2022-07-18 18:23:36 -07:00
3d362e1252 coremem_types: split MHPgram out to its own file 2022-07-18 18:21:58 -07:00
6be7026c95 coremem_types: split MBPgram to its own file 2022-07-18 18:20:27 -07:00
bb35a12c69 coremem_types::mat: move to submodule 2022-07-18 18:16:47 -07:00
22db2e5a1b use coremem_types::mat::Ferroxcube3R1MH *everywhere*
the old `mat/mh_ferromagnet.rs` files is completely removed,
unifying the Ferroxcube3R1MH type all the way through the stack.
2022-07-18 15:43:01 -07:00
716e0e12b4 move Ferroxcube3R1MH from spirv_bindings to coremem_types::mat 2022-07-18 15:33:47 -07:00
d005256459 move MBPgram, MHPgram out of spirv_backend into coremem_types::mat
later this can be shared with CPU backend.
2022-07-18 15:27:31 -07:00
b8bcd68b98 spirv_backend: use Real:: constants instead of inlined ones 2022-07-18 15:10:57 -07:00
57338bcb4a migrate Conductor material from spirv_backend to coremem_types 2022-07-18 14:41:27 -07:00
7d2a3baadc spirv: migrate Material trait to types, and parameterize by R 2022-07-18 14:33:09 -07:00
35251f5a7f coremem_types: move Vec3u under the vec:: namespace
it's conceivable that Vec3u could be merged with Vec3 someday.
best to keep them in the same namespace, to make any such effort easier.
2022-07-18 14:23:35 -07:00
21483111cd Vec2, Vec3: remove default R parameter 2022-07-18 14:10:17 -07:00
536a09f7b8 spirv_bindings: remove custom Material trait
ffi version is now compatible with main coremem library without
conversion
2022-07-18 13:57:25 -07:00
19f00c9076 spirv_backend: remove Vec3Std and use coremem_types::Vec3 everywhere 2022-07-18 13:51:11 -07:00
d7d8be62d1 spirv_backend: remove UVec3Std in favor of Vec3u 2022-07-18 13:39:15 -07:00
b4783df134 spirv_backend: remove dead-code 2022-07-18 13:34:10 -07:00
4378f33eb9 spirv_backend: strip out the glam stuff, except for the lib.rs interface 2022-07-18 01:48:19 -07:00
d92089ae23 coremem_types: add a 'fmt' feature, so Real/Vec/friends can be used in fmt-less spirv 2022-07-18 01:31:00 -07:00
97c2813c9d coremem_types: hide Serialize/Deserialize behind a serde feature flag
- this flag is disabled in spirv_backend.
- spirv_backend currently errors in core::fmt stuff. may try hiding fmt
  behind a feature_flag.
2022-07-17 23:44:14 -07:00
19849c2428 fix test compilation failures from vec migration 2022-07-17 22:41:39 -07:00
8c3a26e798 move vec, vecu into coremem_types
- this will allow it to be used from within the spirv code.
- had to change some coremem code which was previously peering into
  privates or now-unrestricted constraints.
- may need to put the serde stuff behind a feature flag (or force
  nostd?)
2022-07-17 21:50:38 -07:00
4c0a87281b real: optimize Finite::from_{f32,f64} 2022-07-17 18:48:07 -07:00
253eb65f8f real: remove the remaining decorum dependencies 2022-07-17 18:46:25 -07:00
866aa2882b real: remove some, but not all, decorum stuff 2022-07-17 18:18:09 -07:00
57273ed430 coremem_types: remove dead num dependency 2022-07-17 17:33:29 -07:00