Skip to content

++REPO NOT MAINTAINED++ Tensor values that behave like numbers in broadcasted operations

License

Notifications You must be signed in to change notification settings

gridap/TensorValues.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TensorValues

Build Status Codecov

If you ❤️ this project, give us a ⭐️!

TensorValues provides the types VectorValue (a 1-st order tensor), TensorValue (a 2-nd order tensor) and MultiValue (a generalization of VectorValue and TensorValue) and common tensor operations defined on these types (e.g., dot product, inner product, outer product, etc.)

Why

The main feature of the TensorValues package is that the provided types do not extend from AbstractArray, but from Number!

This allows one to work with them as if they were scalar values in broadcasted operations on arrays of VectorValue objects (also for TensorValue or MultiValue objects). For instance, one can perform the following manipulations:

# Assing a VectorValue to all the entries of an Array of VectorValues
A = zeros(VectorValue{2,Int}, (4,5))
v = VectorValue(12,31)
A .= v # This is posible since  VectorValue <: Number

# Broatcasing of tensor operations in arrays of TensorValues
t = TensorValue(13,41,53,17) # creates a 2x2 TensorValue
g = TensorValue(32,41,3,14) # creates another 2x2 TensorValue
B = fill(t,(1,5))
C = inner.(g,B) # inner product of g against all TensorValues in the array B
@show C
# C = [2494 2494 2494 2494 2494]

Installation

Pkg.add("TensorValues")

About

++REPO NOT MAINTAINED++ Tensor values that behave like numbers in broadcasted operations

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages