Simplified structure
This commit is contained in:
parent
9f599230da
commit
b11731a824
|
@ -1,6 +1,5 @@
|
|||
require "./apatite/core_ext/array"
|
||||
|
||||
require "./apatite/linear_algebra"
|
||||
require "./apatite/core_ext/*"
|
||||
require "./apatite/*"
|
||||
|
||||
# Apatite is a fundimental package for scientific computing in Crystal. If that
|
||||
# sounds like a modified version of the first line from the NumPy homepage,
|
||||
|
@ -8,6 +7,5 @@ require "./apatite/linear_algebra"
|
|||
# of NumPy sitting atop the blazing speed and beautiful syntax
|
||||
# of Crystal.
|
||||
module Apatite
|
||||
extend self
|
||||
include Apatite::LinearAlgebra
|
||||
|
||||
end
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
module Apatite
|
||||
class Error < Exception; end
|
||||
class ErrDimensionMismatch < Error; end
|
||||
class ZeroVectorError < Error; end
|
||||
class ErrNotRegular < Error; end
|
||||
class ErrOperationNotDefined < Error; end
|
||||
end
|
|
@ -1,28 +0,0 @@
|
|||
require "./linear_algebra/error"
|
||||
# require "./linear_algebra/ndarray"
|
||||
require "./linear_algebra/matrix"
|
||||
require "./linear_algebra/vector"
|
||||
|
||||
module Apatite
|
||||
module LinearAlgebra
|
||||
extend self
|
||||
|
||||
# Calculates the sigmoid curve for a numeric input.
|
||||
#
|
||||
# `f(x) = 1/(1 + e^-x)`
|
||||
#
|
||||
# See also: [Sigmoid function (WikiWand)](https://www.wikiwand.com/en/Sigmoid_function)
|
||||
def sigmoid(input : Number)
|
||||
num = input.to_f64
|
||||
1 / (1 + Math.exp(-num))
|
||||
end
|
||||
|
||||
# Calculates the derivative sigmoid curve for a numeric input.
|
||||
#
|
||||
# `f'(x) = f(x)(1 - f(x)),`
|
||||
def sigmoid_d(input : Number)
|
||||
num = input.to_f64
|
||||
num * (1 - num)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,9 +0,0 @@
|
|||
module Apatite
|
||||
module LinearAlgebra
|
||||
class Error < Exception; end
|
||||
class ErrDimensionMismatch < Error; end
|
||||
class ZeroVectorError < Error; end
|
||||
class ErrNotRegular < Error; end
|
||||
class ErrOperationNotDefined < Error; end
|
||||
end
|
||||
end
|
|
@ -2,7 +2,7 @@ require "./vector"
|
|||
require "./matrix/eigenvalue_decomposition"
|
||||
require "./matrix/lup_decomposition"
|
||||
|
||||
module Apatite::LinearAlgebra
|
||||
module Apatite
|
||||
class Matrix(T)
|
||||
include Enumerable(Vector)
|
||||
include Indexable(Vector)
|
|
@ -1,4 +1,4 @@
|
|||
module Apatite::LinearAlgebra
|
||||
module Apatite
|
||||
class Matrix(T)
|
||||
# Eigenvalues and eigenvectors of a real matrix.
|
||||
#
|
|
@ -1,4 +1,4 @@
|
|||
module Apatite::LinearAlgebra
|
||||
module Apatite
|
||||
class Matrix(T)
|
||||
# For an m-by-n matrix A with m >= n, the LU decomposition is an m-by-n
|
||||
# unit lower triangular matrix L, an n-by-n upper triangular matrix U,
|
|
@ -1,4 +1,4 @@
|
|||
module Apatite::LinearAlgebra
|
||||
module Apatite
|
||||
class NDArray
|
||||
# include Enumerable(Float64)
|
||||
# include Indexable(Float64)
|
|
@ -2,7 +2,7 @@ require "complex"
|
|||
require "big"
|
||||
require "json"
|
||||
|
||||
module Apatite::LinearAlgebra
|
||||
module Apatite
|
||||
# Represents a mathematical vector, and also constitutes a row or column
|
||||
# of a `Matrix`
|
||||
class Vector(T)
|
Loading…
Reference in New Issue