A library of to show data (in browser, evcxr_jupyter) as table, chart...

Overview

showata

license version Release Doc

Actions Status

A library of to show data (in browser, evcxr_jupyter) as table, chart....

The crate provides display for:

  • image
  • vector and slice (as table)
  • ndarray's Array (as table)
  • nalgebra's matrix (as table)

Feedbacks (comments, tickets, PR,...) are welcomes.

Usages

Inside Jupyter

Inside your jupyter (rust) notebook:

::zeros((3, 4)); data.show()">
:dep showata = { version = "0.3", features=["show_ndarray"]}
:dep ndarray = "0.14"

use showata::Showable;
use ndarray::Array2;

let data: Array2 = Array2::<f64>::zeros((3, 4));
data.show()

Inside Editor

Inside your favorite editor/IDE:

use showata::Showable;
use ndarray::Array2;

let data = Array2::<f64>::zeros((3, 4));
data.show().unwrap();
# By default the data will be shown inside your web browser.
cargo run

# Show nothing
SHOWATA_MEDIUM=Noop cargo run

Show Chart

see vega_lite_3

Notes

Currently the project groups showers as features instead of packages. But it could change in the futures if use of package is more useful (than just "it's the recommended way in the cargo doc").

Why features (vs packages):

  • less lines of code to insert into a notebook (but longer)
  • ability to share a traitand provide impl for external crates

Links

Comments
  • .csv can't be shown in jupyter

    .csv can't be shown in jupyter

    This is an extremely helpful crate, but I encountered some issues. I tried to view a csv file in jupyter with this crate, but it has no effects;

    :dep mime = "0.3"
    :dep showata = "0.3"
    showata::show_file_in_jupyter(*my_file*,mime::CSV,true)
    

    it just returns

    Ok(())
    
    opened by TsuITOAR 2
  • ⬆️ Update nalgebra requirement from 0.23.1 to 0.25.0

    ⬆️ Update nalgebra requirement from 0.23.1 to 0.25.0

    Updates the requirements on nalgebra to permit the latest version.

    Changelog

    Sourced from nalgebra's changelog.

    [0.25.0]

    This updates all the dependencies of nalgebra to their latest version, including:

    • rand 0.8
    • proptest 1.0
    • simba 0.4

    New crate: nalgebra-sparse

    Alongside this release of nalgebra, we are releasing nalgebra-sparse: a crate dedicated to sparse matrix computation with nalgebra. The sparse module of nalgebraitself still exists for backward compatibility but it will be deprecated soon in favor of the nalgebra-sparse crate.

    Added

    • Add UnitDualQuaternion, a dual-quaternion with unit magnitude which can be used as an isometry transformation.
    • Add UDU::new() and matrix.udu() to compute the UDU factorization of a matrix.
    • Add ColPivQR::new() and matrix.col_piv_qr() to compute the QR decomposition with column pivoting of a matrix.
    • Add from_basis_unchecked to all the rotation types. This builds a rotation from a set of basis vectors (representing the columns of the corresponding rotation matrix).
    • Add Matrix::cap_magnitude to cap the magnitude of a vector.
    • Add UnitQuaternion::append_axisangle_linearized to approximately append a rotation represented as an axis-angle to a rotation represented as an unit quaternion.
    • Mark the iterators on matrix components as DoubleEndedIter.
    • Re-export simba::simd::SimdValue at the root of the nalgebra crate.

    [0.24.0]

    Added

    • The DualQuaternion type. It is still work-in-progress but the basics are here: creation from its real and dual part, multiplication of two dual quaternions, and normalization.

    Removed

    • There is no blanket impl<T> PartialEq for Unit<T> any more. Instead, it is implemented specifically for UnitComplex, UnitQuaternion and Unit<Vector>.

    [0.23.2]

    In this release, we improved the documentation of some of the geometric types by applying changes similar to what we did in the version 0.23.1 for matrices.

    Added

    • The Isometry::inv_mul method which is a more efficient way of doing isometry1.inverse() * isometry2.

    [0.23.1]

    In this release we improved the documentation of the matrix and vector types by:

    • Grouping impl bocks logically, adding a title comment to these impl blocks.
    • Reference these impl blocks docs at the top of the documentation page for Matrix.
    • Reduce the depth of type aliasing. Now all vector and matrix types are aliases of Matrix directly (instead of being aliases for other aliases).

    [0.23.0]

    Added

    ... (truncated)

    Commits
    • 5b9b94c Release v0.25.0
    • b97a3d0 Merge pull request #837 from dimforge/proptest
    • 3270e8e Delete semaphore CI to keep only GitHub Actions.
    • abf03a7 github actions: fix yaml
    • a9558a3 github actions: split tests into separate jobs.
    • 80aa4fa Fix tests for nalgebra-sparse.
    • 258ecf2 Update Semaphore configuration
    • 1c28720 Update Semaphore configuration
    • 1aa0b91 Update Semaphore configuration
    • 9d8c347 Switch back to github actions runner.
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • ⬆️ Update nalgebra requirement from 0.23.1 to 0.24.1

    ⬆️ Update nalgebra requirement from 0.23.1 to 0.24.1

    Updates the requirements on nalgebra to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • ⬆️ Update nalgebra requirement from 0.23.1 to 0.24.0

    ⬆️ Update nalgebra requirement from 0.23.1 to 0.24.0

    Updates the requirements on nalgebra to permit the latest version.

    Changelog

    Sourced from nalgebra's changelog.

    [0.24.0]

    Added

    • The DualQuaternion type. It is still work-in-progress but the basics are here: creation from its real and dual part, multiplication of two dual quaternions, and normalization.

    Removed

    • There is no blanket impl<T> PartialEq for Unit<T> any more. Instead, it is implemented specifically for UnitComplex, UnitQuaternion and Unit<Vector>.

    [0.23.2]

    In this release, we improved the documentation of some of the geometric types by applying changes similar to what we did in the version 0.23.1 for matrices.

    Added

    • The Isometry::inv_mul method which is a more efficient way of doing isometry1.inverse() * isometry2.

    [0.23.1]

    In this release we improved the documentation of the matrix and vector types by:

    • Grouping impl bocks logically, adding a title comment to these impl blocks.
    • Reference these impl blocks docs at the top of the documentation page for Matrix.
    • Reduce the depth of type aliasing. Now all vector and matrix types are aliases of Matrix directly (instead of being aliases for other aliases).

    [0.23.0]

    Added

    • The .inverse_transform_unit_vector(v) was added to Rotation2/3, Isometry2/3, UnitQuaternion, and UnitComplex. It applies the corresponding rotation to a unit vector Unit<Vector2/3>.
    • The Point.map(f) and Point.apply(f) to apply a function to each component of the point, similarly to Vector.map(f) and Vector.apply(f).
    • The Quaternion::from([N; 4]) conversion to build a quaternion from an array of four elements.
    • The Isometry::from(Translation) conversion to build an isometry from a translation.
    • The Vector::ith_axis(i) which build a unit vector, e.g., Unit<Vector3<f32>> with its i-th component set to 1.0 and the others set to zero.
    • The Isometry.lerp_slerp and Isometry.try_lerp_slerp methods to interpolate between two isometries using linear interpolation for the translational part, and spherical interpolation for the rotational part.
    • The Rotation2.slerp, Rotation3.slerp, and UnitQuaternion.slerp method for spherical interpolation.

    [0.22.0]

    In this release, we are using the new version 0.2 of simba. One major change of that version is that the use of libm is now opt-in when building targetting no-std environment. If you are using floating-point operations with nalgebra in a no-std environment, you will need to enable the new libm feature of nalgebra for your code to compile again.

    Added

    • The libm feature that enables libm when building for no-std environment.
    Commits
    • b695aaa Release v0.24.0
    • c1eeaf0 Merge pull request #817 from chinedufn/dq-serde
    • b951325 Serialize DQ to [N;8]
    • d8fa3ff Merge pull request #810 from chinedufn/dual-quaternion
    • 7ec5d00 Clean up DualQuat bounds
    • 89134ef Store DQ as real and dual Quat
    • 8036c56 Introduce DualQuaternion type
    • 88145b7 Merge pull request #814 from dimforge/quaternion_partial_eq_fix
    • 44be05d Update the changelog.
    • 3899d92 Merge pull request #815 from dimforge/isometry_inv_mul
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • ⬆️ Update nalgebra requirement from 0.22.0 to 0.23.0

    ⬆️ Update nalgebra requirement from 0.22.0 to 0.23.0

    Updates the requirements on nalgebra to permit the latest version.

    Changelog

    Sourced from nalgebra's changelog.

    [0.23.0] - WIP

    Added

    • The .inverse_transform_unit_vector(v) was added to Rotation2/3, Isometry2/3, UnitQuaternion, and UnitComplex. It applies the corresponding rotation to a unit vector Unit<Vector2/3>.
    • The Point.map(f) and Point.apply(f) to apply a function to each component of the point, similarly to Vector.map(f) and Vector.apply(f).
    • The Quaternion::from([N; 4]) conversion to build a quaternion from an array of four elements.
    • The Isometry::from(Translation) conversion to build an isometry from a translation.
    • The Vector::ith_axis(i) which build a unit vector, e.g., Unit<Vector3<f32>> with its i-th component set to 1.0 and the others set to zero.
    • The Isometry.lerp_slerp and Isometry.try_lerp_slerp methods to interpolate between two isometries using linear interpolation for the translational part, and spherical interpolation for the rotational part.
    • The Rotation2.slerp, Rotation3.slerp, and UnitQuaternion.slerp method for spherical interpolation.

    [0.22.0]

    In this release, we are using the new version 0.2 of simba. One major change of that version is that the use of libm is now opt-in when building targetting no-std environment. If you are using floating-point operations with nalgebra in a no-std environment, you will need to enable the new libm feature of nalgebra for your code to compile again.

    Added

    • The libm feature that enables libm when building for no-std environment.
    • The libm-force feature that enables libm even when building for a not no-std environment.
    • Cholesky::new_unchecked which build a Cholesky decomposition without checking that its input is positive-definite. It can be use with SIMD types.
    • The Default trait is now implemented for matrices, and quaternions. They are all filled with zeros, except for UnitQuaternion which is initialized with the identity.
    • Matrix exponential matrix.exp().
    • The Vector::ith(i, x) that builds a vector filled with zeros except for the i-th component set to x.

    [0.21.0]

    In this release, we are no longer relying on traits from the alga crate for our generic code. Instead, we use traits from the new simba crate which are both simpler, and allow for significant optimizations like AoSoA SIMD.

    Refer to the monthly Rustsim blogpost for details about this switch and its benefits.

    Added

    • It is now possible to use SIMD types like simba::f32x4 as scalar types for nalgebra's matrices and geometric types.

    Modified

    • Use of traits like alga::general::{RealField, ComplexField} have now been replaced by simba::scalar::{RealField, ComplexField}.
    • The implementation of traits from the alga crate (and well as the dependency to alga_) are now omitted unless the alga cargo feature is activated.

    Removed

    • The Neg unary operator is no longer implemented for UnitComplex and UnitQuaternion. This caused
    Commits
    • 1c8435c Release v0.23.0
    • 224b562 Merge pull request #781 from filnet/clippy_fixes
    • d990aff clippy: fix clippy::eq_op error (false positive)
    • 74f01d2 clippy: fix suspicious_arithmetic_impl errors (false positives)
    • 8e483a5 Fix reshaping test.
    • ce7d767 Merge branch 'neachdainn-reshape' into dev
    • e89a26c Add doc-tests for reshape_generic.
    • d7cb138 Fix warnings.
    • 7af509e Reformat the reshaping example.
    • 5b3da9e Fix typo in comment.
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • ⬆️ Update nalgebra requirement from 0.16.13 to 0.19.0

    ⬆️ Update nalgebra requirement from 0.16.13 to 0.19.0

    Updates the requirements on nalgebra to permit the latest version.

    Changelog

    Sourced from nalgebra's changelog.

    [0.19.0] - WIP

    Added

    • .remove_rows_at and remove_columns_at which removes a set of rows or columns (specified by indices) from a matrix.

    [0.18.0]

    This release adds full complex number support to nalgebra. This includes all common vector/matrix operations as well as matrix decomposition. This excludes geometric type (like Isometry, Rotation, Translation, etc.) from the geometry module.

    Added

    Quaternion and geometric operations

    • Add trigonometric functions for quaternions: .cos, .sin, .tan, .acos, .asin, .atan, .cosh, .sinh, .tanh, .acosh, .asinh, .atanh.
    • Add geometric algebra operations for quaternions: .inner, .outer, .project, .rejection
    • Add .left_div, .right_div for quaternions.
    • Add .renormalize to Unit<...> and Rotation3 to correct potential drift due to repeated operations. Those drifts could cause them not to be pure rotations anymore.

    Convolution

    • .convolve_full(kernel) returns the convolution of self by kernel.
    • .convolve_valid(kernel) returns the convolution of self by kernel after removal of all the elements relying on zero-padding.
    • .convolve_same(kernel) returns the convolution of self by kernel with a result of the same size as self.

    Complex number support

    • Add the ::from_matrix constructor too all rotation types to extract a rotation from a raw matrix.
    • Add the ::from_matrix_eps constructor too all rotation types to extract a rotation from a raw matrix. This takes more argument than ::from_matrix to control the convergence of the underlying optimization algorithm.
    • Add .camax() which returns the matrix component with the greatest L1-norm.
    • Add .camin() which returns the matrix component with the smallest L1-norm.
    • Add .ad_mul(b) for matrix-multiplication of self.adjoint() * b.
    • Add .ad_mul_to(b) which is the same as .ad_mul but with a provided matrix to be filled with the result of the multiplication.
    • Add BLAS operations involving complex conjugation (following similar names as the original BLAS spec):
      • .dotc(rhs) equal to self.adjoint() * rhs.
      • .gerc(alpha, x, y, beta) equivalent to self = alpha * x * y.adjoint() + beta * self
      • .hegerc which is like gerc but for Hermitian matrices.
      • .syger which is the new name of .ger_symm which is equivalent to self = alpha * x * y.transpose() + beta * self.
      • .sygemv which is the new name of .gemv_symm which is equivalent to self = alpha * a * x + beta * self with a symmetric.
      • .hegemv(alpha, a, x, beta) which is like .sygemv but with a Hermitian.
      • .gemv_ad(alpha, a, x, beta) which is equivalent to self = alpha * a.adjoint() * x + beta * self.
      • .gemm_ad(alpha, a, b, beta) which is equivalent to self = alpha * a.adjoint() * b + beta * self.
      • .icamax() which returns the index of the complex vector component with the greatest L1-norm.

    Note that all the other BLAS operation will continue to work for all fields, including floats and complex numbers.

    Renamed

    • RealSchur has been renamed Schur because it can now work with complex matrices.

    [0.17.0]

    Added

    ... (truncated)
    Commits
    • 286a373 Release nalgebra 0.19.0.
    • 59ae790 Bump dependencies.
    • ac161e9 Create FUNDING.yml
    • afab848 Updated rand and quickcheck for nalgebra-lapack
    • 28b12f5 Rand 0.6 -> 0.7
    • 48f8333 Corrected typo.
    • 8d89b02 Changed name. Changed argument. Added documentation line.
    • f475a9b Added function to compute the mean quaternion from a vector of unit quaternions.
    • 8d756f4 Switched fmt implementation to a macro, applied that macro to all formats in std
    • 04e322f implemented LowerExp
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • ⬆️ Update nalgebra requirement from 0.16.13 to 0.18.1

    ⬆️ Update nalgebra requirement from 0.16.13 to 0.18.1

    Updates the requirements on nalgebra to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency (including time of day and day of week)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)

    Finally, you can contact us by mentioning @dependabot.

    dependencies 
    opened by dependabot-preview[bot] 1
  • ⬆️ Update nalgebra requirement from 0.16.12 to 0.18.0

    ⬆️ Update nalgebra requirement from 0.16.12 to 0.18.0

    Updates the requirements on nalgebra to permit the latest version.

    Changelog

    Sourced from nalgebra's changelog.

    [0.18.0]

    This release adds full complex number support to nalgebra. This includes all common vector/matrix operations as well as matrix decomposition. This excludes geometric type (like Isometry, Rotation, Translation, etc.) from the geometry module.

    Added

    Quaternion and geometric operations

    • Add trigonometric functions for quaternions: .cos, .sin, .tan, .acos, .asin, .atan, .cosh, .sinh, .tanh, .acosh, .asinh, .atanh.
    • Add geometric algebra operations for quaternions: .inner, .outer, .project, .rejection
    • Add .renormalize to Unit<...> and Rotation3 to correct potential drift due to repeated operations. Those drifts could cause them not to be pure rotations anymore.

    Convolution

    • .convolve_full(kernel) returns the convolution of self by kernel.
    • .convolve_valid(kernel) returns the convolution of self by kernel after removal of all the elements relying on zero-padding.
    • .convolve_same(kernel) returns the convolution of self by kernel with a result of the same size as self.

    Complex number support

    • Add the ::from_matrix constructor too all rotation types to extract a rotation from a raw matrix.
    • Add the ::from_matrix_eps constructor too all rotation types to extract a rotation from a raw matrix. This takes more argument than ::from_matrix to control the convergence of the underlying optimization algorithm.
    • Add .camax() which returns the matrix component with the greatest L1-norm.
    • Add .camin() which returns the matrix component with the smallest L1-norm.
    • Add .ad_mul(b) for matrix-multiplication of self.adjoint() * b.
    • Add .ad_mul_to(b) which is the same as .ad_mul but with a provided matrix to be filled with the result of the multiplication.
    • Add BLAS operations involving complex conjugation (following similar names as the original BLAS spec):
      • .dotc(rhs) equal to self.adjoint() * rhs.
      • .gerc(alpha, x, y, beta) equivalent to self = alpha * x * y.adjoint() + beta * self
      • .hegerc which is like gerc but for Hermitian matrices.
      • .syger which is the new name of .ger_symm which is equivalent to self = alpha * x * y.transpose() + beta * self.
      • .sygemv which is the new name of .gemv_symm which is equivalent to self = alpha * a * x + beta * self with a symmetric.
      • .hegemv(alpha, a, x, beta) which is like .sygemv but with a Hermitian.
      • .gemv_ad(alpha, a, x, beta) which is equivalent to self = alpha * a.adjoint() * x + beta * self.
      • .gemm_ad(alpha, a, b, beta) which is equivalent to self = alpha * a.adjoint() * b + beta * self.
      • .icamax() which returns the index of the complex vector component with the greatest L1-norm.

    Note that all the other BLAS operation will continue to work for all fields, including floats and complex numbers.

    Renamed

    • RealSchur has been renamed Schur because it can now work with complex matrices.

    [0.17.0]

    Added

    • Add swizzling up to dimension 3 for vectors. For example, you can do v.zxy() as an equivalent to Vector3::new(v.z, v.x, v.y).
    • Add swizzling up to dimension 3 for points. For example, you can do p.zxy() as an equivalent to Point3::new(p.z, p.x, p.y).
    • Add .copy_from_slice to copy matrix components from a slice in column-major order.
    • Add .dot to quaternions.
    • Add .zip_zip_map for iterating on three matrices simultaneously, and applying a closure to them.
    ... (truncated)
    Commits
    • 96d864c Release v0.18.0
    • e536671 Minor rewording on the changelog.
    • d759912 Update changelog.
    • bb06701 Fix the return type of convolve_same to match the documentation.
    • ae4afa3 Merge branch 'master-public' into dev
    • b5b81a0 Bump version numbers.
    • 31bc336 Merge pull request #567 from rustsim/complex
    • 94a8bab Uncomment the fast renormalization of Rotation2.
    • 18b9f82 Fix warnings.
    • 86fa4be Remove the criterion dependency and add comment to re-add it to run benchmarks.
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)

    Finally, you can contact us by mentioning @dependabot.

    dependencies 
    opened by dependabot-preview[bot] 1
  • ⬆️ Update nalgebra requirement from 0.16.12 to 0.17.3

    ⬆️ Update nalgebra requirement from 0.16.12 to 0.17.3

    Updates the requirements on nalgebra to permit the latest version.

    Commits
    • d6b5c7f Release v0.17.3
    • d6cca60 Merge pull request #562 from est31/master
    • db3d08f Fix two compiler warnings
    • aeff67e Correct typo in quaternion documentation (#559)
    • 704331b added Quaternion accessors for r,i,j,k, refactored conjugate to use imag (#551)
    • 20e9c6f Implement iter::Sum for DMatrix (#552)
    • 9d08fdc Release v0.17.2
    • c97dfaf Add renormalization and rotation extraction from general 2D and 3D matrices. ...
    • df0407e Release v0.17.1
    • 9061c98 Exclude CI files (#548)
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)

    Finally, you can contact us by mentioning @dependabot.

    dependencies 
    opened by dependabot-preview[bot] 1
  • ⬆️ Update nalgebra requirement from 0.16.12 to 0.17.2

    ⬆️ Update nalgebra requirement from 0.16.12 to 0.17.2

    Updates the requirements on nalgebra to permit the latest version.

    Commits
    • 9d08fdc Release v0.17.2
    • c97dfaf Add renormalization and rotation extraction from general 2D and 3D matrices. ...
    • df0407e Release v0.17.1
    • 9061c98 Exclude CI files (#548)
    • 975d72f Replace explicit types with Self where possible.
    • fac709b Release nalgebra v0.17 and nalgebra-glm v0.3.
    • 24e6ce6 Merge pull request #480 from jturner314/as_ptr
    • cc7bab9 Merge branch 'master' into as_ptr
    • 8117f61 Merge pull request #535 from rustsim/sparse
    • 08f3183 Update to alga 0.8.
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)

    Finally, you can contact us by mentioning @dependabot.

    dependencies 
    opened by dependabot-preview[bot] 1
  • ⬆️ Update nalgebra requirement from 0.16.12 to 0.17.1

    ⬆️ Update nalgebra requirement from 0.16.12 to 0.17.1

    Updates the requirements on nalgebra to permit the latest version.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)

    Finally, you can contact us by mentioning @dependabot.

    dependencies 
    opened by dependabot-preview[bot] 1
Owner
Procyon
the vega lite ecosystem for Rust
Procyon
Vector is a high-performance, end-to-end (agent & aggregator) observability data pipeline that puts you in control of your observability data

Quickstart • Docs • Guides • Integrations • Chat • Download What is Vector? Vector is a high-performance, end-to-end (agent & aggregator) observabilit

Vector 12.1k Jan 2, 2023
Data plotting library for Rust

plotlib plotlib is a generic data visualisation and plotting library for Rust. It is currently in the very early stages of development. It can current

Matt Williams 417 Dec 31, 2022
A rust drawing library for high quality data plotting for both WASM and native, statically and realtimely 🦀 📈🚀

Plotters - A Rust drawing library focus on data plotting for both WASM and native applications ?? ?? ?? Plotters is drawing library designed for rende

Hao Hou 2.7k Jan 4, 2023
below is an interactive tool to view and record historical system data.

A time traveling resource monitor for modern Linux systems

Facebook Incubator 824 Dec 31, 2022
binocle is a graphical tool to visualize binary data

a graphical tool to visualize binary data

David Peter 773 Dec 30, 2022
📝 Web-based, reactive Datalog notebooks for data analysis and visualization

?? Web-based, reactive Datalog notebooks for data analysis and visualization

Eric Zhang 486 Dec 28, 2022
A Rust library for drawing plots, powered by Gnuplot.

RustGnuplot A Gnuplot controller written in Rust. Documentation See here Examples A simple example: let mut fg = Figure::new(); fg.axes2d() .set_titl

null 353 Dec 26, 2022
A pure Rust visualization library inspired by D3.js

charts A pure Rust visualization library inspired by D3.js. See gallery and examples for code and more charts. Install You can add this as a dependenc

Iulian Gulea 186 Dec 29, 2022
A simple 2D plotting library that outputs graphs to SVG that can be styled using CSS.

Poloto graphs can be stylized using css either directly in the SVG, or from inside of html with an embedded svg. The latter allows the user to dynamically match the svg to their website's theme.

Ken Reed 119 Dec 13, 2022
A library to generate syntax diagrams for Rust macros.

Live demo (code) A browser add-on for Firefox, Chrome and Edge A library to generate syntax ("railroad") diagrams for Rust's macro_rules!(). Diagrams

null 468 Jan 6, 2023
OBKV Table Client is Rust Library that can be used to access table data from OceanBase storage layer.

OBKV Table Client is Rust Library that can be used to access table data from OceanBase storage layer. Its access method is different from JDBC, it skips the SQL parsing layer, so it has significant performance advantage.

OceanBase 4 Nov 14, 2022
Display candlestick chart in your terminal.

cli-candlestick-chart This module allows you to display candle charts directly in your terminal. I did this project mainly to learn Rust, so the code

Julien 178 Dec 18, 2022
A Rust API for Vega-Lite V4 to build chart with a rusty API.

Vega-Lite V4 for Rust A Rust API for Vega-Lite V4 to build chart with a rusty API. Similar to the Altair project in python, this crate build upon Vega

Procyon 18 Nov 26, 2022
Yet another phigros chart player.

prpr - P hig R os P layer, written in R ust Usage To begin with, clone the repo: git clone https://github.com/Mivik/prpr.git && cd prpr For compactnes

Mivik 6 Jan 1, 2023
rust-browser-game but native and rendered with ncurses in C without the Browser

Spin-off of rust-browser-game-but-sdl but with ncurses Nothing much to say. Just see rust-browser-game-but-sdl and rust-browser-game. Quick Start $ ma

Tsoding 8 Apr 21, 2022
The Bloat-Free Browser Game in Rust but in C and not in a Browser

rust-browser-game but native and rendered with SDL in C without the Browser The original idea of rust-browser-game is that the game.wasm module is com

Tsoding 12 Sep 26, 2022
Rslide - A web service that allows you to move through multiple html pages in the browser like a slide, even without focusing on the app console or the browser. Currently only supports Windows.

rslide rslide is a web service that allows you to move through multiple html pages in the browser like a slide, even without focusing on the app conso

Jason Dongheng Lee 3 Jan 1, 2022
Make data-driven table rendering easy with Dioxus

Dioxus Table Make data-driven table rendering easy with Dioxus Installation Until the next release of Dioxus this requires Dioxus nightly from git. Th

null 9 Oct 9, 2022
Rust libraries for working with GPT (GUID Partition Table) disk data

gpt-disk-rs no_std libraries related to GPT (GUID Partition Table) disk data. There are three Rust packages in this repository: uguid The uguid packag

Google 25 Dec 24, 2022
An opinionated Rust library for interacting with AWS DynamoDB single-table designs.

Modyne An opinionated library for interacting with AWS DynamoDB single-table designs. † Motive Modyne follows the precepts laid out for effective sing

Marcus Griep 14 Jun 8, 2023