Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Pad out API Reference page in documentation (#90)
* started working on docs. * Fix dir where sphinx looks for doxyfile * Optional disable linking to blas * Set INSTALL_RPATH always, update on Apple. This is broken by vcpkg bug * to_letter implementation * Fix bad construction of PyLieKey * bump lal. * Serialization (#42) * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * Added cache-id function * reformatting. * removed print * Added serialization methods to interval types. * Added instantiations for the interval types. * Added equality function for partitions * Added tests for serialziation * pickle support for dyadic * Pickle support for interval types * pickle support for partitions * picke functions for algebra types * typo * test for lie pickle * Pickle for free tensor types tests * Added a default constructor. * nominal pickle support for streams. * Implementation of pickle not quit right for streams. Continue the research * Fixed initialisation of effective domain * Added __new__ to Stream type and modified pickle method * Couple of changes to style. * added tp_finalize to be safe * Added methods to monomial for pickling * added new macros for external library types * added serialization for all the scalar types * Fixed implementations detached from declaration * added instantiations of the archive types * Added serialization for enum types * Add the specialization for polynomials * Special load/save functions for JSON output. * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * Added cache-id function * reformatting. * removed print * Added serialization methods to interval types. * Added instantiations for the interval types. * Added equality function for partitions * Added tests for serialziation * pickle support for dyadic * Pickle support for interval types * pickle support for partitions * picke functions for algebra types * typo * test for lie pickle * Pickle for free tensor types tests * Added a default constructor. * nominal pickle support for streams. * Implementation of pickle not quit right for streams. Continue the research * Fixed initialisation of effective domain * Added __new__ to Stream type and modified pickle method * Couple of changes to style. * added tp_finalize to be safe * Added methods to monomial for pickling * added new macros for external library types * added serialization for all the scalar types * Fixed implementations detached from declaration * added instantiations of the archive types * Added serialization for enum types * Add the specialization for polynomials * Special load/save functions for JSON output. * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * Added cache-id function * reformatting. * removed print * Added serialization methods to interval types. * Added instantiations for the interval types. * Added equality function for partitions * Added tests for serialziation * pickle support for dyadic * Pickle support for interval types * pickle support for partitions * picke functions for algebra types * typo * test for lie pickle * Pickle for free tensor types tests * Added a default constructor. * nominal pickle support for streams. * Implementation of pickle not quit right for streams. Continue the research * Fixed initialisation of effective domain * Added __new__ to Stream type and modified pickle method * Couple of changes to style. * added tp_finalize to be safe * Added methods to monomial for pickling * added new macros for external library types * added serialization for all the scalar types * Fixed implementations detached from declaration * added instantiations of the archive types * Added serialization for enum types * Add the specialization for polynomials * Special load/save functions for JSON output. * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * removed print * added new macros for external library types * added serialization for all the scalar types * added instantiations of the archive types * Added serialization for enum types * Special load/save functions for JSON output. * Separate out implementations * just so many improvements * added all the includes of the concrete types header * fixed some more serialization includes * massive restructuring of algebra * Implement __setstate__ for monomial. * Many steps of debugging. * Back to release mode * Fixed missing include of types header * Update the actions, hopefuly should stop the automatic publish. * Update changelog * Setup binary caching in action * Bump version * delete old action, fix condition * Fix quotes? * Fixed size type in scalar serialization.h * remove boost::filesystem as a requirement * cast to size_t * Updat cibuildwheel version * Use cereal::size_type???? * allow dynamic linkage on windows. Because, Windows -.- * force lvalue size_type * fix boost versions in manifest. * fixed another bad size_type * remove boost log dependency * Fix another size_type * more size_types. * missing headers in lie_interface.cpp * makes sure all necessary headers are included * Disable C4661 in headers * Fix number * Always include "types.h" along with "scalar_type.h" * Implement the common types in main header. * Define all the integer type specializations * autolinking and boost * Link boost in rpy module * revert to static libs. * Force auto link * force link with comment * For god's sake stop trying to instantiate templates * Adding sig log sig example * Update git ignore * WIP documentation, add files for streams, free tensors, shuffle tensors, lies, contexts and intervals * WIP: Building a user guide * WIP: Integrate old markdown files into new user guide * Adding build from source instructions * Adding readme description to main page * Add normal install instructions * Add readme comments on intervals in roughpy * Added readme comments to absolute beginners * Add contributing to roughpy comments * Add release notes pages * Add release page entries * Move github page readme info to quickstart * Fix API reference documentation generation * Turn off todos * Add warning messages, page under construction * Move note on intervals to absolute beginners * Add page of literature references * WIP: Create location for notebooks to be rendered * Add datasig signature applications tutorials * Add IPython, removes warnings * Add comment on tutorials * Add 8 release notes * Add 7 release notes * Add 6 release notes * Add 5 release notes * Add 4 release notes * Add 3 release notes * Add 2 release notes * Add 1 release notes * WIP: Copy of notebooks, to be changed to use RoughPy * WIP: MNIST new notebook with RoughPy * Migrating MNIST to use RoughPy, possibly refactoring functions * Examples as submodule * remove downloaded examples * change tutorials names * sepsis name change * WIP: What is rough py. Added brief text, references, video, todos * Fix video not playing * What is roughpy ref change * Move intervals explanation to intervals page * Add Sam's abs beginners page with anagrams example * Remove quickstart page * Trim what is roughpy video * Change page link * Remove old todos * Turn off todos * Update README.md (#47) * Update list_basis_keys.py * Update README.md (#48) * Update README.md * Update README.md * Update README.md * Update VERSION.txt * Develop (#55) * Optional disable linking to blas * Set INSTALL_RPATH always, update on Apple. This is broken by vcpkg bug * to_letter implementation * Fix bad construction of PyLieKey * bump lal. * Serialization (#42) * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * Added cache-id function * reformatting. * removed print * Added serialization methods to interval types. * Added instantiations for the interval types. * Added equality function for partitions * Added tests for serialziation * pickle support for dyadic * Pickle support for interval types * pickle support for partitions * picke functions for algebra types * typo * test for lie pickle * Pickle for free tensor types tests * Added a default constructor. * nominal pickle support for streams. * Implementation of pickle not quit right for streams. Continue the research * Fixed initialisation of effective domain * Added __new__ to Stream type and modified pickle method * Couple of changes to style. * added tp_finalize to be safe * Added methods to monomial for pickling * added new macros for external library types * added serialization for all the scalar types * Fixed implementations detached from declaration * added instantiations of the archive types * Added serialization for enum types * Add the specialization for polynomials * Special load/save functions for JSON output. * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * Added cache-id function * reformatting. * removed print * Added serialization methods to interval types. * Added instantiations for the interval types. * Added equality function for partitions * Added tests for serialziation * pickle support for dyadic * Pickle support for interval types * pickle support for partitions * picke functions for algebra types * typo * test for lie pickle * Pickle for free tensor types tests * Added a default constructor. * nominal pickle support for streams. * Implementation of pickle not quit right for streams. Continue the research * Fixed initialisation of effective domain * Added __new__ to Stream type and modified pickle method * Couple of changes to style. * added tp_finalize to be safe * Added methods to monomial for pickling * added new macros for external library types * added serialization for all the scalar types * Fixed implementations detached from declaration * added instantiations of the archive types * Added serialization for enum types * Add the specialization for polynomials * Special load/save functions for JSON output. * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * Added cache-id function * reformatting. * removed print * Added serialization methods to interval types. * Added instantiations for the interval types. * Added equality function for partitions * Added tests for serialziation * pickle support for dyadic * Pickle support for interval types * pickle support for partitions * picke functions for algebra types * typo * test for lie pickle * Pickle for free tensor types tests * Added a default constructor. * nominal pickle support for streams. * Implementation of pickle not quit right for streams. Continue the research * Fixed initialisation of effective domain * Added __new__ to Stream type and modified pickle method * Couple of changes to style. * added tp_finalize to be safe * Added methods to monomial for pickling * added new macros for external library types * added serialization for all the scalar types * Fixed implementations detached from declaration * added instantiations of the archive types * Added serialization for enum types * Add the specialization for polynomials * Special load/save functions for JSON output. * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * removed print * added new macros for external library types * added serialization for all the scalar types * added instantiations of the archive types * Added serialization for enum types * Special load/save functions for JSON output. * Separate out implementations * just so many improvements * added all the includes of the concrete types header * fixed some more serialization includes * massive restructuring of algebra * Implement __setstate__ for monomial. * Many steps of debugging. * Back to release mode * Fixed missing include of types header * Update the actions, hopefuly should stop the automatic publish. * Update changelog * Setup binary caching in action * Bump version * delete old action, fix condition * Fix quotes? * Fixed size type in scalar serialization.h * remove boost::filesystem as a requirement * cast to size_t * Updat cibuildwheel version * Use cereal::size_type???? * allow dynamic linkage on windows. Because, Windows -.- * force lvalue size_type * fix boost versions in manifest. * fixed another bad size_type * remove boost log dependency * Fix another size_type * more size_types. * missing headers in lie_interface.cpp * makes sure all necessary headers are included * Disable C4661 in headers * Fix number * Always include "types.h" along with "scalar_type.h" * Implement the common types in main header. * Define all the integer type specializations * autolinking and boost * Link boost in rpy module * revert to static libs. * Force auto link * force link with comment * For god's sake stop trying to instantiate templates * Adding sig log sig example * Update git ignore * Open cl core (#49) * Added all te basic headers/types * Removed old code. * Fixed some outstanding bad names * Added size to queue * Added basic launch functions for kernels. * Added all the ocl impls. * Fixed a type difference causing warnings in compiles * Refactored to make data types of interfaces private. * Change the model to something more sane. * Added some methods for paths. * Small updates. * uuids and pci bus info * fixed calls to get string info from ocl types * Added some utility functions to core * Added outlines for cpu device. * Added device providers. * Added strict to one condition * formatting * Rename the device namespace to avoid conflicts. * add methods for getting device to scalar type * Removed print statement * Small fixes * Do not throw exceptions in constructor and instead do not continue upon error. * Use clear candidates * Added CPUdevice tests * Fixed missing negation * implemented alloc and free on cpu device * Added kernel framework * removed owning method * changed raw_free signature * Constructors and reference counts * Changed the way CPUBuffers are implemented * Various updates. * Moved type definitions to devices * masked_unary kernels * A few more changes * Removed ocl kernel from cpu kernel * added test for gpu device. * fix cpu provider * Many improvements to device support * Started work on calling pattern for kernels * That arg design wasn't right. Reconsider * Fix name in equality for scalar info * Fix bits to bytes * Fix bits to bytes * Fix bits to bytes * Fix bits to bytes * Fix bits to bytes * Fix bits to bytes * Fix a bug in the compile command * implement OCLVersion to aid version semantics * Check successful rather than dbg assert * Oops missed cmake for ocl_version * Much more elegant kernel argument handling * added interface accessor methods. * Refactored launch interface. * Updated launch methods for ocl kernels * temp fixed missing enum values in switches * Fixed a few compilation issues. * Add constructors to kernel params * Fixed construction of temporary args in kernel launch functions * Added as_slice utility to buffers * Added inherited construct method for buffer implementations * Added inherited construct method for buffer implementations * Fixed broken condition in kernel launch checks * OCLBuffer ptr now returns a pointer to cl_mem * Added scoped guard helpers for cl types * Cleaned up implementation of ocl kernel launch * Added overrides for ptr methods on ocl queues * Added replace 0 alignment with max alignment * Introduce special device type for the host device * Meta header for device library * Added to_device methods to buffer objects. * Added to_host and from_host data movement methods to device_handle * Update CMakeLists.txt * Implement new to_device interface for CPUBuffers * Implemented new to_buffer interface and removed inc/dec _ref methods * Fixed formatting * Fixed formatting * implemented to/from host methods * implemented to/from host methods * implemented to/from host methods * Updated test to use new api * include the meta header for devices * Rename "get_cpu_device" to "get_host_device" * do not compile unused kernels * refactor cpu to host * added "compute_delegate" method to host devices * fixed includes * Removed reference to unused kernel. * Changed signature of to_host function * Implemented to_device for ocl buffers * Switch to internally referenced countered intrusive pointer model * Added map/unmap basics * Completed implementation of buffer mapping * Getting started with the new scalars module * Delete usings for move and forward * Add is_trivially_destructible * Added constlog2 compute struct * Changed the implementation of type_info_of * Streamlining the implementation of scalars * Streamlining the implementation of scalars * Started work on scalar_array.cpp * Started work on scalar_array.cpp * Implement copy and move constructors * Added raw observer methods to ScalarArray * added scalar type stubs * delete old files * include archive header * include archive header * key scalar array * More work on scalar arrays * Lots of fixes in vertical integration * re-implement (key)scalarstream * Fixed incompatibility between alignas and export * Added unreachable return * implement virtual methods * IMplement scalar stream * Added virtual destructor * Bring in the random generator impls. * Fix various issues in the roughpy modules caused by new impl. * Fix various issues in the roughpy modules caused by new impl. * added != operator * Added unreachable return * added as_mut_slice to buffer * Lots of work on scalar_type impls * No discard * Start with serialization (again) * Fiddle with the serialization definitions * Started fixing bugs * Started fixing bugs * Fixed type of error thrown in tests to match updated interface * Implemented scalar division * Bump libalgebra_lite * DOn't use function object * Added conversion to non-const to const slice * Fixed a few issues * Oops accidentally added source to BLAS target * FIxed bad width in test * Implemented lost of stuff * implemented register_rng_getter * Fixed some remaining segfaults in python module * few small updates * Added to_float method * Fixed key allocation * Fixed no string use default rng * Moved stream out operator to main header * Fixed change in scalar semantics * avoid multiple calls * roundup divide * Use slice operator[] * fix return in branch * added missing implementation * Removed duplicate check * precompile only the lal dependency * Get the path correct * removed reference to device_handle header in kernel.h * fixed now missing include in kernel.cpp * Missed implementing destructor * Force debug macros? * Extra assert. * Rework allocate function to check size > 0 * Check correct setup after allocation * Oops misspelled macro condition * Fixed conditions * Type deduction fix (#51) * update changelog * minor adjustment to stype algorithm * Added extra tests * Added type deduction tests for major constructors * Do not gate scalar type based on integer size, just use double * rework type deduction in dlpack parsing * formatting? * Update CHANGELOG * Fix conversion to numpy (#52) * Added tests for to_array functionality * Stream out operator for TypeInfo * formatting * basis function for algebra types * enhanced framework for converting from algebra to array. * remove some redundant asserts * remove cvref on type deductions * formatting * always import numpy if available * lots of little details * moved some functions around to make them accessible * formatting * formatting * imort numpy function * moved definition of __array__ to numpy files * formatting * Create zeroed array first * Added missing zeros to expected arrays * no ownership test - everything copies for now * Added test for array of rationals * fixed some issues with scalar allocations * Updated changelog * Added test for poly scalars to_array * Fixed missing break in switch statement. * Precompiled headers, shuffled instantiations, etc. to make build times better * Fix containinterval issues (#54) * Guard against allocating zero * Added resolution getter for streams * Added tests for interval alignment * Added param to resolution helper function * Updated to set resolution if not set. * Changed to use a single dispatch rather than multiple, added check for intervals smaller than minimum. * Minor changes * Oops, removed debug code * Additional changes * shortcircuit trivial cases * formatting * default resolution change * added refine interval method and changes * handle resolutions above stream resolution * formatting * impl refine interval method * formatting * improve output * add new test * Use optional to store resolution so the inference is used if none is given * Simplified the implementation of methods * Use default resolution * Update tests for new behaviour * use default resolution * Update changelog * Fixed bug in clone method * MSVC template instantiation again -.- * do not reference subordinates in device_handle, leave open option of including in component headers * thankyou msvc for providing no information * MSVC just cannot help itself. * Ok device_handle.h needs the subordinates * put definition in namespace? * no inline definition * use alternative copy-convert * borrow the update value for call to interface. * change up the constructors slightly. * use the gmp package instead of mpir since it is supported on all platforms * force set the variables fphse * Fixed link option over compile option * use shared libs for gmp * OOps unset gmp setting * Fix adding bignum as runtime dependency * set rpath on macos * bump lal * do not set rpath on apple and make cache var * disable coeff test until bugs can be found * let delocate find the libraries? * use @loader_path? * Really please don't use the SONAME * after bignum loaded * disable apple rpath everywhere * bump libalgebra_lite * debug info in vcpkg * try installing runtime dependencies via cmake * Ooops got it in the wrong place * framework destination * no need to install mkl at the moment * excludes * remove dependence on bignum from device component * Allow static gmp * no runtime deps * no vcpkg gmp on apple * moved triplets to tools dir * remove unused port files * added empty overlay for gmp * install gtest only when building * bump VERSION.txt --------- Co-authored-by: Philippa Rubin <philippa.rubin@stfc.ac.uk> * Merge updates from develop for last time (#59) * Optional disable linking to blas * Set INSTALL_RPATH always, update on Apple. This is broken by vcpkg bug * to_letter implementation * Fix bad construction of PyLieKey * bump lal. * Serialization (#42) * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * Added cache-id function * reformatting. * removed print * Added serialization methods to interval types. * Added instantiations for the interval types. * Added equality function for partitions * Added tests for serialziation * pickle support for dyadic * Pickle support for interval types * pickle support for partitions * picke functions for algebra types * typo * test for lie pickle * Pickle for free tensor types tests * Added a default constructor. * nominal pickle support for streams. * Implementation of pickle not quit right for streams. Continue the research * Fixed initialisation of effective domain * Added __new__ to Stream type and modified pickle method * Couple of changes to style. * added tp_finalize to be safe * Added methods to monomial for pickling * added new macros for external library types * added serialization for all the scalar types * Fixed implementations detached from declaration * added instantiations of the archive types * Added serialization for enum types * Add the specialization for polynomials * Special load/save functions for JSON output. * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * Added cache-id function * reformatting. * removed print * Added serialization methods to interval types. * Added instantiations for the interval types. * Added equality function for partitions * Added tests for serialziation * pickle support for dyadic * Pickle support for interval types * pickle support for partitions * picke functions for algebra types * typo * test for lie pickle * Pickle for free tensor types tests * Added a default constructor. * nominal pickle support for streams. * Implementation of pickle not quit right for streams. Continue the research * Fixed initialisation of effective domain * Added __new__ to Stream type and modified pickle method * Couple of changes to style. * added tp_finalize to be safe * Added methods to monomial for pickling * added new macros for external library types * added serialization for all the scalar types * Fixed implementations detached from declaration * added instantiations of the archive types * Added serialization for enum types * Add the specialization for polynomials * Special load/save functions for JSON output. * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * Added cache-id function * reformatting. * removed print * Added serialization methods to interval types. * Added instantiations for the interval types. * Added equality function for partitions * Added tests for serialziation * pickle support for dyadic * Pickle support for interval types * pickle support for partitions * picke functions for algebra types * typo * test for lie pickle * Pickle for free tensor types tests * Added a default constructor. * nominal pickle support for streams. * Implementation of pickle not quit right for streams. Continue the research * Fixed initialisation of effective domain * Added __new__ to Stream type and modified pickle method * Couple of changes to style. * added tp_finalize to be safe * Added methods to monomial for pickling * added new macros for external library types * added serialization for all the scalar types * Fixed implementations detached from declaration * added instantiations of the archive types * Added serialization for enum types * Add the specialization for polynomials * Special load/save functions for JSON output. * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * removed print * added new macros for external library types * added serialization for all the scalar types * added instantiations of the archive types * Added serialization for enum types * Special load/save functions for JSON output. * Separate out implementations * just so many improvements * added all the includes of the concrete types header * fixed some more serialization includes * massive restructuring of algebra * Implement __setstate__ for monomial. * Many steps of debugging. * Back to release mode * Fixed missing include of types header * Update the actions, hopefuly should stop the automatic publish. * Update changelog * Setup binary caching in action * Bump version * delete old action, fix condition * Fix quotes? * Fixed size type in scalar serialization.h * remove boost::filesystem as a requirement * cast to size_t * Updat cibuildwheel version * Use cereal::size_type???? * allow dynamic linkage on windows. Because, Windows -.- * force lvalue size_type * fix boost versions in manifest. * fixed another bad size_type * remove boost log dependency * Fix another size_type * more size_types. * missing headers in lie_interface.cpp * makes sure all necessary headers are included * Disable C4661 in headers * Fix number * Always include "types.h" along with "scalar_type.h" * Implement the common types in main header. * Define all the integer type specializations * autolinking and boost * Link boost in rpy module * revert to static libs. * Force auto link * force link with comment * For god's sake stop trying to instantiate templates * Adding sig log sig example * Update git ignore * Open cl core (#49) * Added all te basic headers/types * Removed old code. * Fixed some outstanding bad names * Added size to queue * Added basic launch functions for kernels. * Added all the ocl impls. * Fixed a type difference causing warnings in compiles * Refactored to make data types of interfaces private. * Change the model to something more sane. * Added some methods for paths. * Small updates. * uuids and pci bus info * fixed calls to get string info from ocl types * Added some utility functions to core * Added outlines for cpu device. * Added device providers. * Added strict to one condition * formatting * Rename the device namespace to avoid conflicts. * add methods for getting device to scalar type * Removed print statement * Small fixes * Do not throw exceptions in constructor and instead do not continue upon error. * Use clear candidates * Added CPUdevice tests * Fixed missing negation * implemented alloc and free on cpu device * Added kernel framework * removed owning method * changed raw_free signature * Constructors and reference counts * Changed the way CPUBuffers are implemented * Various updates. * Moved type definitions to devices * masked_unary kernels * A few more changes * Removed ocl kernel from cpu kernel * added test for gpu device. * fix cpu provider * Many improvements to device support * Started work on calling pattern for kernels * That arg design wasn't right. Reconsider * Fix name in equality for scalar info * Fix bits to bytes * Fix bits to bytes * Fix bits to bytes * Fix bits to bytes * Fix bits to bytes * Fix bits to bytes * Fix a bug in the compile command * implement OCLVersion to aid version semantics * Check successful rather than dbg assert * Oops missed cmake for ocl_version * Much more elegant kernel argument handling * added interface accessor methods. * Refactored launch interface. * Updated launch methods for ocl kernels * temp fixed missing enum values in switches * Fixed a few compilation issues. * Add constructors to kernel params * Fixed construction of temporary args in kernel launch functions * Added as_slice utility to buffers * Added inherited construct method for buffer implementations * Added inherited construct method for buffer implementations * Fixed broken condition in kernel launch checks * OCLBuffer ptr now returns a pointer to cl_mem * Added scoped guard helpers for cl types * Cleaned up implementation of ocl kernel launch * Added overrides for ptr methods on ocl queues * Added replace 0 alignment with max alignment * Introduce special device type for the host device * Meta header for device library * Added to_device methods to buffer objects. * Added to_host and from_host data movement methods to device_handle * Update CMakeLists.txt * Implement new to_device interface for CPUBuffers * Implemented new to_buffer interface and removed inc/dec _ref methods * Fixed formatting * Fixed formatting * implemented to/from host methods * implemented to/from host methods * implemented to/from host methods * Updated test to use new api * include the meta header for devices * Rename "get_cpu_device" to "get_host_device" * do not compile unused kernels * refactor cpu to host * added "compute_delegate" method to host devices * fixed includes * Removed reference to unused kernel. * Changed signature of to_host function * Implemented to_device for ocl buffers * Switch to internally referenced countered intrusive pointer model * Added map/unmap basics * Completed implementation of buffer mapping * Getting started with the new scalars module * Delete usings for move and forward * Add is_trivially_destructible * Added constlog2 compute struct * Changed the implementation of type_info_of * Streamlining the implementation of scalars * Streamlining the implementation of scalars * Started work on scalar_array.cpp * Started work on scalar_array.cpp * Implement copy and move constructors * Added raw observer methods to ScalarArray * added scalar type stubs * delete old files * include archive header * include archive header * key scalar array * More work on scalar arrays * Lots of fixes in vertical integration * re-implement (key)scalarstream * Fixed incompatibility between alignas and export * Added unreachable return * implement virtual methods * IMplement scalar stream * Added virtual destructor * Bring in the random generator impls. * Fix various issues in the roughpy modules caused by new impl. * Fix various issues in the roughpy modules caused by new impl. * added != operator * Added unreachable return * added as_mut_slice to buffer * Lots of work on scalar_type impls * No discard * Start with serialization (again) * Fiddle with the serialization definitions * Started fixing bugs * Started fixing bugs * Fixed type of error thrown in tests to match updated interface * Implemented scalar division * Bump libalgebra_lite * DOn't use function object * Added conversion to non-const to const slice * Fixed a few issues * Oops accidentally added source to BLAS target * FIxed bad width in test * Implemented lost of stuff * implemented register_rng_getter * Fixed some remaining segfaults in python module * few small updates * Added to_float method * Fixed key allocation * Fixed no string use default rng * Moved stream out operator to main header * Fixed change in scalar semantics * avoid multiple calls * roundup divide * Use slice operator[] * fix return in branch * added missing implementation * Removed duplicate check * precompile only the lal dependency * Get the path correct * removed reference to device_handle header in kernel.h * fixed now missing include in kernel.cpp * Missed implementing destructor * Force debug macros? * Extra assert. * Rework allocate function to check size > 0 * Check correct setup after allocation * Oops misspelled macro condition * Fixed conditions * Type deduction fix (#51) * update changelog * minor adjustment to stype algorithm * Added extra tests * Added type deduction tests for major constructors * Do not gate scalar type based on integer size, just use double * rework type deduction in dlpack parsing * formatting? * Update CHANGELOG * Fix conversion to numpy (#52) * Added tests for to_array functionality * Stream out operator for TypeInfo * formatting * basis function for algebra types * enhanced framework for converting from algebra to array. * remove some redundant asserts * remove cvref on type deductions * formatting * always import numpy if available * lots of little details * moved some functions around to make them accessible * formatting * formatting * imort numpy function * moved definition of __array__ to numpy files * formatting * Create zeroed array first * Added missing zeros to expected arrays * no ownership test - everything copies for now * Added test for array of rationals * fixed some issues with scalar allocations * Updated changelog * Added test for poly scalars to_array * Fixed missing break in switch statement. * Precompiled headers, shuffled instantiations, etc. to make build times better * Fix containinterval issues (#54) * Guard against allocating zero * Added resolution getter for streams * Added tests for interval alignment * Added param to resolution helper function * Updated to set resolution if not set. * Changed to use a single dispatch rather than multiple, added check for intervals smaller than minimum. * Minor changes * Oops, removed debug code * Additional changes * shortcircuit trivial cases * formatting * default resolution change * added refine interval method and changes * handle resolutions above stream resolution * formatting * impl refine interval method * formatting * improve output * add new test * Use optional to store resolution so the inference is used if none is given * Simplified the implementation of methods * Use default resolution * Update tests for new behaviour * use default resolution * Update changelog * Fixed bug in clone method * MSVC template instantiation again -.- * do not reference subordinates in device_handle, leave open option of including in component headers * thankyou msvc for providing no information * MSVC just cannot help itself. * Ok device_handle.h needs the subordinates * put definition in namespace? * no inline definition * use alternative copy-convert * borrow the update value for call to interface. * change up the constructors slightly. * use the gmp package instead of mpir since it is supported on all platforms * force set the variables fphse * Fixed link option over compile option * use shared libs for gmp * OOps unset gmp setting * Fix adding bignum as runtime dependency * set rpath on macos * bump lal * do not set rpath on apple and make cache var * disable coeff test until bugs can be found * let delocate find the libraries? * use @loader_path? * Really please don't use the SONAME * after bignum loaded * disable apple rpath everywhere * bump libalgebra_lite * debug info in vcpkg * try installing runtime dependencies via cmake * Ooops got it in the wrong place * framework destination * no need to install mkl at the moment * excludes * remove dependence on bignum from device component * Allow static gmp * no runtime deps * no vcpkg gmp on apple * moved triplets to tools dir * remove unused port files * added empty overlay for gmp * install gtest only when building * bump VERSION.txt * Revert to shared components (#56) * Initial revert to shared components * Move device library into platform, some build optimisations * playing with precompiled headers * Various changes to serialization instantatiations. * A few more improvements to builds * Remove libalgebra_lite as a submodule * Release the gil when computing signatures or log-signatures. (#58) * do not transpose arrays that are wide but short for streams (#57) * do not transpose arrays that are wide but short for streams * Fixed wrong width in transposed array tests * Fixed dlpack copy routine for F-style arrays. * modified the github actions in prep for new release setup. * Added words example * set cache variable for tests features * Probably redundant test, but check anyway * remove git modules. These will be replaced with vcpkg ports in the future. * upload files to release rather than create release * filled out some functions in the manager script. --------- Co-authored-by: Philippa Rubin <philippa.rubin@stfc.ac.uk> * Tiny adjustment to vcpkg configuration (#62) * add . to front of registry path * oops removed dot. * Extended tensor operations (#61) * Added reverse method to PyTensorKey * Add concatenation operator for tensor keys * Add new header for hash functor * add hash_value method to basis objects. * Add hash method to PyTensorKey * added context method to algebra types. * added coeff lookup by key type. * Implemented intermediate keytype lookup for lie keys * Oops missed virtual * Actually declare friend function in namespace * Added basis to pytensorkey python interface * Fixed an issue with type deduction in basis interface * Added to_letters method to tensorkey python interface * Added arithmetic between scalars and ints/doubles * Moved error macros and support to platform This allows use to have fairly complex code for producing error messages because it is hidden away in a shared library. * add boost stacktrace to dependencies * pass backtrace as argument to get the locality right. * Fixed need to call function to get pointer * Fixed a potential bug caused by trivial bytes 0 * No address of for array. * is_mutable convenience function * Fixed bug not assigning zero trivial bytes * debug assertion * Formatting * Switch to dst_info to avoid needing a new constructor * short circuit if lhs is zero. * add borrowed scalar test * Fixed argument order for r operators * Fixed cause of segfault in scalar repr * Add debug assertions * Add more debug assertions * Fix a bug that leads to unset type after copy zero * More tests for scalars * Adding tensor functions * Changed implementation of eq operator for basis objects * Added richcompare function to pycontext * allow assigning of scalars in constructors * Fixed a bug in is_pointer_zero * Add test for Log * Handle scalar arg in check_and_set_dtype * More intelligent handling for copying from opaque pointer * Implement assignment for owned pointers * oops missed part * copy interfaces as if they were opaque pointers * use enumeration aware function * perform a true copy on assignment from opaque pointer * remove unused define * formatting * fixed semantics of assigment move operator * Implemented ScalarMeta_call * Raw python pointer st-pst * preparations for moving static python scalar type * extended tests for scalars * finish test for adjoint * remove print * change type and packed pointer access * formatting * remove some compiler warnings * implemented type promotion for scalars * formatting * update CMakeLists.txt * various updates for debugging * implement operators by hand * remove debug print * remove debug print * Fix the implementation of divide to use type promotion * fill out the missing promotion modes * remove debug format function * added docstrings * update changelog * Fixed incorrect type promotion in float * relative import for init * gmp on all platforms * remove excess comma * bump version * Readded libalgebra-lite as a submodule, removed from vcpkg (#64) * update tests action to use all 3 platforms * use PYTHONPATH instead of pth * setup python * windows doesn't use bash -.- * force bash * Fix stacktrace errors on macos (#66) Fixed one small issue with stacktrace on MacOS. Also fixed a plethora of build issues on Windows. * started working on docs. * Optional disable linking to blas * Serialization (#42) * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * Added cache-id function * reformatting. * removed print * Added serialization methods to interval types. * Added instantiations for the interval types. * Added equality function for partitions * Added tests for serialziation * pickle support for dyadic * Pickle support for interval types * pickle support for partitions * picke functions for algebra types * typo * test for lie pickle * Pickle for free tensor types tests * Added a default constructor. * nominal pickle support for streams. * Implementation of pickle not quit right for streams. Continue the research * Fixed initialisation of effective domain * Added __new__ to Stream type and modified pickle method * Couple of changes to style. * added tp_finalize to be safe * Added methods to monomial for pickling * added new macros for external library types * added serialization for all the scalar types * Fixed implementations detached from declaration * added instantiations of the archive types * Added serialization for enum types * Add the specialization for polynomials * Special load/save functions for JSON output. * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * Added cache-id function * reformatting. * removed print * Added serialization methods to interval types. * Added instantiations for the interval types. * Added equality function for partitions * Added tests for serialziation * pickle support for dyadic * Pickle support for interval types * pickle support for partitions * picke functions for algebra types * typo * test for lie pickle * Pickle for free tensor types tests * Added a default constructor. * nominal pickle support for streams. * Implementation of pickle not quit right for streams. Continue the research * Fixed initialisation of effective domain * Added __new__ to Stream type and modified pickle method * Couple of changes to style. * added tp_finalize to be safe * Added methods to monomial for pickling * added new macros for external library types * added serialization for all the scalar types * Fixed implementations detached from declaration * added instantiations of the archive types * Added serialization for enum types * Add the specialization for polynomials * Special load/save functions for JSON output. * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * Added cache-id function * reformatting. * removed print * Added serialization methods to interval types. * Added instantiations for the interval types. * Added equality function for partitions * Added tests for serialziation * pickle support for dyadic * Pickle support for interval types * pickle support for partitions * picke functions for algebra types * typo * test for lie pickle * Pickle for free tensor types tests * Added a default constructor. * nominal pickle support for streams. * Implementation of pickle not quit right for streams. Continue the research * Fixed initialisation of effective domain * Added __new__ to Stream type and modified pickle method * Couple of changes to style. * added tp_finalize to be safe * Added methods to monomial for pickling * added new macros for external library types * added serialization for all the scalar types * Fixed implementations detached from declaration * added instantiations of the archive types * Added serialization for enum types * Add the specialization for polynomials * Special load/save functions for JSON output. * Added serialize method to StreamInterface and DynamicallyConstructedStream * Sound path serialization * Implemented serialization for the path type * Serialization for SoundFileDatSource * Added loading/dumping to stream chache files. * removed file locks until I can figure out how they work * removed print * added new macros for external library types * added serialization for all the scalar types * added instantiations of the archive types * Added serialization for enum types * Special load/save functions for JSON output. * Separate out implementations * just so many improvements * added all the includes of the concrete types header * massive restructuring of algebra * Always include "types.h" along with "scalar_type.h" * For god's sake stop trying to instantiate templates * bad include in types.h * overzealous merging * overzealous merging * odd duplication * overzealous merging * Put fundamentals pages into headers, what are x, how does x fit, using x, refs * WIP: Additions to fundamentals headers - what are x, how does x fit, using x, refs. Todos added * Storing fundamentals refs * Add Shuffle tensor page example with polynomial print out * Adding fundamentals references * Add shuffle tensor refs * Lies: Add refs, print out functions, improve introduction * free tensors - improve intro, add refs * Intervals - Resolve todos, add prints, add todo for dyadics diagram * streams - break up constructors, improve introduction, add refs * Added intervals diagram from GitHub issue * Remove todo * Remove todo, tidy dyadic explanation * Fix typo * Add electricity plots * Add electricity figures for streams page * trim dyadic diagram * Add link to electricity data, fix captions * Remove space * remove todo * Add comment re no terms of degree 2 in the log signatures * Added script for processing example notebooks * removed old files * configuration for auto-formatting of notebooks * Tidy branch, add electricity outputs to gitignore * Tidy branch, put generated notebook files into gitignore * Change gitignore to be more specific re notebooks * Add generated tutorials page to gitignore * Fix indent issue * Comment redundant figures * remove references to signature applications submodule * Fix spelling * Add signature applications dir to gitignore * Add shuffle tensor doc string * Adding main description of Lie elements * Adding description of intervals * Adding main description of streams * Change docs cmake to capture building dependancies * Fix error where Path showing in API reference * Add stream documentation for API ref * Add lie documentation for API ref * Add shuffle tensor documentation for API ref * Add interval documentation for API ref * Add todo to gitignore * Fill in empty rpydoc strings * Add to doc string to getsetdefs * Add description to tick construction helper * Add antipode example docstring * Add the add scal mul docstring * Add top level description to contexts * Added api ref comments, todos for readonly properties. Formatting changes to follow * Added comments for api ref, formatting to follow * Resolve todos with api ref * Further additions to api ref from issue todo list * Format newly added docstrings to include python cross referencing * Minor changes to docstring formatting, fixing hyperlinks * install pkgconfig on windows PKGConfig seems to be missing from the GA windows server 2022 image. --------- Co-authored-by: Sam Morley <admin@inakleinbottle.com> Co-authored-by: inakleinbottle <41870650+inakleinbottle@users.noreply.github.com>
- Loading branch information