defmodule Toolex do
|
|
import Matrex.Operators
|
|
import Kernel, except: [-: 1, +: 2, -: 2, *: 2, /: 2, <|>: 2]
|
|
import Matrex
|
|
|
|
# Full
|
|
def cost_d(yp, yr) do
|
|
subtract(yp, yr)
|
|
end
|
|
|
|
def sum_inline(a,b) do
|
|
cond do
|
|
a[:rows] == b[:rows] -> a + b
|
|
a[:rows] > b[:rows] -> a + resize_rows(b, a[:rows])
|
|
a[:rows] < b[:rows] -> b + resize_rows(a, b[:rows])
|
|
end
|
|
end
|
|
|
|
def resize_rows(m, size) do
|
|
Enum.reduce(1..size-1, m, fn _x, acc -> concat(acc, m, :rows) end)
|
|
end
|
|
|
|
def mean(a) do
|
|
[Enum.map(1..a[:columns] ,fn x ->
|
|
case a[:columns] == 1 do
|
|
true -> sum(a)/a[:rows]
|
|
false -> sum(column(a, x))/a[:rows]
|
|
end
|
|
end)] |> new
|
|
end
|
|
|
|
# Inprogres
|
|
def cost(yp, yr) do
|
|
m = yp - yr
|
|
Matrex.sum(Matrex.Operators.pow2(m))/m[:rows]
|
|
end
|
|
|
|
def sigm_d(x) do
|
|
multiply(x, (1 - x))
|
|
end
|
|
end
|