https://github.com/itensor/typeparameteraccessors.jl
https://github.com/itensor/typeparameteraccessors.jl
Last synced: 6 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/itensor/typeparameteraccessors.jl
- Owner: ITensor
- License: apache-2.0
- Created: 2024-11-20T13:43:11.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-10-11T00:59:32.000Z (4 months ago)
- Last Synced: 2025-10-12T22:08:36.306Z (4 months ago)
- Language: Julia
- Size: 1.13 MB
- Stars: 0
- Watchers: 3
- Forks: 3
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TypeParameterAccessors.jl
[](https://itensor.github.io/TypeParameterAccessors.jl/stable/)
[](https://itensor.github.io/TypeParameterAccessors.jl/dev/)
[](https://github.com/ITensor/TypeParameterAccessors.jl/actions/workflows/Tests.yml?query=branch%3Amain)
[](https://codecov.io/gh/ITensor/TypeParameterAccessors.jl)
[](https://github.com/invenia/BlueStyle)
[](https://github.com/JuliaTesting/Aqua.jl)
## Support

TypeParameterAccessors.jl is supported by the Flatiron Institute, a division of the Simons Foundation.
## Installation instructions
The package can be added as usual through the package manager:
```julia
julia> Pkg.add("TypeParameterAccessors")
```
## Examples
````julia
using Test: @test
using TypeParameterAccessors
````
Get type parameters:
````julia
@test type_parameters(Array{Float64}, 1) == Float64
@test type_parameters(Matrix{Float64}, 2) == 2
@test type_parameters(Matrix{Float64}) == (Float64, 2)
@test type_parameters(Array{Float64}, eltype) == Float64
@test type_parameters(Matrix{Float64}, ndims) == 2
@test type_parameters(Matrix{Float64}, (eltype, ndims)) == (Float64, 2)
````
Set type parameters:
````julia
@test set_type_parameters(Array, 1, Float32) == Array{Float32}
@test set_type_parameters(Array, (1,), (Float32,)) == Array{Float32}
@test set_type_parameters(Array, (1, 2), (Float32, 2)) == Matrix{Float32}
@test set_type_parameters(Array, (eltype,), (Float32,)) == Array{Float32}
@test set_type_parameters(Array, (eltype, ndims), (Float32, 2)) == Matrix{Float32}
````
Specify type parameters:
````julia
@test specify_type_parameters(Array{Float64}, (eltype, ndims), (Float32, 2)) ==
Matrix{Float64}
@test specify_type_parameters(Array{Float64}, ndims, 2) == Matrix{Float64}
@test specify_type_parameters(Array{Float64}, eltype, Float32) == Array{Float64}
````
Unspecify type parameters:
````julia
@test unspecify_type_parameters(Matrix{Float32}) == Array
@test unspecify_type_parameters(Matrix{Float32}, 1) == Matrix
@test unspecify_type_parameters(Matrix{Float32}, (eltype,)) == Matrix
@test unspecify_type_parameters(Matrix{Float32}, (ndims,)) == Array{Float32}
````
Getting default type parameters
````julia
@test default_type_parameters(Array) == (Float64, 1)
@test default_type_parameters(Array, eltype) == Float64
@test default_type_parameters(Array, 2) == 1
@test default_type_parameters(Array, (eltype, ndims)) == (Float64, 1)
````
Set default type parameters:
````julia
@test set_default_type_parameters(Array) == Vector{Float64}
@test set_default_type_parameters(Array, (eltype,)) == Array{Float64}
@test set_default_type_parameters(Array, 2) == Vector
````
Specify default type parameters:
````julia
@test specify_default_type_parameters(Matrix, (eltype, ndims)) == Matrix{Float64}
@test specify_default_type_parameters(Matrix, eltype) == Matrix{Float64}
@test specify_default_type_parameters(Array{Float32}, (eltype, ndims)) == Vector{Float32}
````
Other functionality:
- `parenttype`
- `unwrap_array_type`
- `is_wrapped_array`
- `set_eltype`
- `set_ndims`
- `set_parenttype`
- `similartype`
---
*This page was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*