Skip to content

Commit

Permalink
array fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
montyvesselinov committed Mar 13, 2017
1 parent 89e84f1 commit 23e9b74
Show file tree
Hide file tree
Showing 8 changed files with 26 additions and 26 deletions.
8 changes: 4 additions & 4 deletions src/FDDerivatives.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ module FDDerivatives
"Create Jacobian function"
function makejacobian(f::Function, h::Float64=sqrt(eps(Float64)))
function jacobian(x::Vector)
xphs = Array(Array{Float64, 1}, length(x) + 1)
xphs = Array{Array{Float64, 1}}(length(x) + 1)
for i = 1:length(x)
xphs[i] = copy(x)
xphs[i][i] += h
end
xphs[end] = copy(x)
ys = pmap(f, xphs)
J = Array(eltype(ys[1]), length(ys[1]), length(x))
J = Array{eltype(ys[1])}(length(ys[1]), length(x))
for i = 1:length(x)
J[:, i] = ys[i] - ys[end]
end
Expand All @@ -22,14 +22,14 @@ end
"Create Gradient function"
function makegradient(f::Function, h::Float64=sqrt(eps(Float64)))
function gradient(x::Vector)
xphs = Array(Array{Float64, 1}, length(x) + 1)
xphs = Array{Array{Float64, 1}}(length(x) + 1)
for i = 1:length(x)
xphs[i] = copy(x)
xphs[i][i] += h
end
xphs[end] = copy(x)
ys = pmap(f, xphs)
grad = Array(eltype(ys), length(x))
grad = Array{eltype(ys)}(length(x))
for i = 1:length(x)
grad[i] = ys[i] - ys[end]
end
Expand Down
10 changes: 5 additions & 5 deletions src/FFTRF.jl
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ import Base.Cartesian
"Reduce k"
@generated function reducek(k, dimensionvaltype)
if dimensionvaltype == Type{Val{2}}
setupfinalk = :(finalk = Array(Float64, div(size(k, 2), 2), div(size(k, 1), 2)))
setupfinalk = :(finalk = Array{Float64}(div(size(k, 2), 2), div(size(k, 1), 2)))
innerloop = quote
finalk[j, i] = real(k[i, j])
end
elseif dimensionvaltype == Type{Val{3}}
setupfinalk = :(finalk = Array(Float64, div(size(k, 2), 2), div(size(k, 1), 2), div(size(k, 3), 2)))
setupfinalk = :(finalk = Array{Float64}(div(size(k, 2), 2), div(size(k, 1), 2), div(size(k, 3), 2)))
innerloop = quote
for h = 1:div(size(k, 3), 2)
finalk[j, i, h] = real(k[i, j, h])
Expand Down Expand Up @@ -69,7 +69,7 @@ end

function mulbyphi(S)
phi = randn(size(S))
result = Array(Complex{eltype(S)}, size(S))
result = Array{Complex{eltype(S)}}(size(S))
for i = 1:length(phi)
result[i] = S[i] * Complex{eltype(S)}(cospi(2 * phi[i]), sinpi(2 * phi[i]))
end
Expand All @@ -79,7 +79,7 @@ end
function powerlaw_structuredgrid(Ns, k0, dk, beta)
originalNs = Ns
Ns = 2 * Ns
fouriercoords = Array(Array{Float64, 1}, length(Ns))
fouriercoords = Array{Array{Float64, 1}}(length(Ns))
for i = 1:length(Ns)
fouriercoords[i] = vcat(collect(0:originalNs[i]), -1 * collect((originalNs[i] - 1):-1:1))
end
Expand Down Expand Up @@ -113,7 +113,7 @@ end
@Base.Cartesian.nexprs $ndims j->begin minx_j, maxx_j = extrema(points[j, :]) end
@Base.Cartesian.nexprs $ndims j->begin x_j = range(minx_j, (maxx_j - minx_j) / (size(structuredvals, j) - 1), size(structuredvals, j)) end
valinterp = Grid.CoordInterpGrid($t, structuredvals, Grid.BCnil, Grid.InterpLinear)
result = Array(Float64, size(points, 2))
result = Array{Float64}(size(points, 2))
for i = 1:length(result)
result[i] = valinterp[points[:, i]...]
end
Expand Down
4 changes: 2 additions & 2 deletions src/GeostatInversion.jl
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ function getxis(::Type{Val{:iwantfields}}, samplefield::Function, numfields::Int
fields = RobustPmap.rpmap(i->samplefield(), 1:numfields; t=Array{Float64, 1})
lrcm = LowRankCovMatrix(fields)
Z = randsvdwithseed(lrcm, numxis, p, q, seed)
xis = Array(Array{Float64, 1}, numxis)
xis = Array{Array{Float64, 1}}(numxis)
for i = 1:numxis
xis[i] = Z[:, i]
end
Expand Down Expand Up @@ -56,7 +56,7 @@ function getxis(samplefield::Function, numfields::Int, numxis::Int, p::Int, q::I
end

function getxis(Q::Matrix, numxis::Int, p::Int, q::Int=3, seed=nothing)#numxis is the number of xis, p is oversampling for randsvd accuracy, q is the number of power iterations -- see review paper by Halko et al
xis = Array(Array{Float64, 1}, numxis)
xis = Array{Array{Float64, 1}}(numxis)
Z = randsvdwithseed(Q, numxis, p, q, seed)
for i = 1:numxis
xis[i] = Z[:, i]
Expand Down
8 changes: 4 additions & 4 deletions src/RandMatFact.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
module RandMatFact

function colnorms(Y)
norms = Array(Float64, size(Y, 2))
norms = Array{Float64}(size(Y, 2))
for i = 1:size(Y, 2)
norms[i] = norm(Y[:, i])
end
Expand All @@ -15,11 +15,11 @@ function rangefinder(A; epsilon=1e-8, r=10)#implements algorithm 4.2 in halko et
Yfull = zeros(Float64, n, r + min(n, m))
Y = view(Yfull, :, 1:r)
BLAS.gemm!('N', 'N', 1., A, randn(n, r), 0., Y)
omega = Array(Float64, n)
omega = Array{Float64}(n)
j = 0
Qfull = zeros(Float64, m, min(n, m))
tempvec = Array(Float64, m)
Aomega = Array(Float64, m)
tempvec = Array{Float64}(m)
Aomega = Array{Float64}(m)
while maximum(colnorms(view(Yfull, :, j+1:j+r))) > epsilon / sqrt(200 / pi)
j = j + 1
Yj = view(Yfull, :, j)
Expand Down
6 changes: 3 additions & 3 deletions src/direct.jl
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Arguments:
- callback : a function of the form `(params, observations)->...` that is called during each iteration
"""
function pcgadirect(forwardmodel::Function, s0::Vector, X::Vector, xis::Array{Array{Float64, 1}, 1}, R, y::Vector; maxiters::Int=5, delta::Float64=sqrt(eps(Float64)), xtol::Float64=1e-6, callback=(s, obs_cal)->nothing)
HQH = Array(Float64, length(y), length(y))
HQH = Array{Float64}(length(y), length(y))
converged = false
s = s0
itercount = 0
Expand All @@ -36,14 +36,14 @@ end

function pcgadirectiteration!(HQH::Matrix, forwardmodel::Function, s::Vector, X::Vector, xis::Array{Array{Float64, 1}, 1}, R, y::Vector, delta::Float64, callback)
p = 1#p = 1 because X is a vector rather than a full matrix
paramstorun = Array(Array{Float64, 1}, length(xis) + 3)
paramstorun = Array{Array{Float64, 1}}(length(xis) + 3)
for i = 1:length(xis)
paramstorun[i] = s + delta * xis[i]
end
paramstorun[length(xis) + 1] = s + delta * X
paramstorun[length(xis) + 2] = s + delta * s
paramstorun[length(xis) + 3] = s
results = pmap(forwardmodel, paramstorun)
results = pmap(forwardmodel, paramstorun)
callback(s, results[length(xis) + 3])
hs = results[length(xis) + 3]
fill!(HQH, 0.)
Expand Down
4 changes: 2 additions & 2 deletions src/lowrank.jl
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import Base.transpose
type LowRankCovMatrix
samples::Array{Array{Float64, 1}, 1}
function LowRankCovMatrix(samples::Array{Array{Float64, 1}, 1})
zeromeansamples = Array(Array{Float64, 1}, length(samples))
zeromeansamples = Array{Array{Float64, 1}}(length(samples))
means = zeros(Float64, length(samples[1]))
for i = 1:length(samples)
for j = 1:length(means)
Expand Down Expand Up @@ -92,7 +92,7 @@ function At_mul_B!(v::Vector, A::Union{LowRankCovMatrix, PCGALowRankMatrix}, x::
end

function *(A::PCGALowRankMatrix, x::Vector)
result = Array(Float64, size(A, 1))
result = Array{Float64}(size(A, 1))
A_mul_B!(result, A, x)
return result
end
Expand Down
4 changes: 2 additions & 2 deletions src/lsqr.jl
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ end

function pcgalsqriteration(forwardmodel::Function, s::Vector, X::Vector, xis::Array{Array{Float64, 1}, 1}, R, y::Vector, delta::Float64)
p = 1#p = 1 because X is a vector rather than a full matrix
paramstorun = Array(Array{Float64, 1}, length(xis) + 3)
paramstorun = Array{Array{Float64, 1}}(length(xis) + 3)
for i = 1:length(xis)
paramstorun[i] = s + delta * xis[i]
end
Expand All @@ -43,7 +43,7 @@ function pcgalsqriteration(forwardmodel::Function, s::Vector, X::Vector, xis::Ar
paramstorun[length(xis) + 3] = s
results = pmap(forwardmodel, paramstorun)
hs = results[length(xis) + 3]
etas = Array(Array{Float64, 1}, length(xis))
etas = Array{Array{Float64, 1}}(length(xis))
for i = 1:length(xis)
etas[i] = (results[i] - hs) / delta
end
Expand Down
8 changes: 4 additions & 4 deletions test/testrpcga.jl
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ function simplepcgalowranktest(numetas=10, numobs=20)
noiselevels = [1e16, 0.]#none, nuge
etagenerators = [zeros, randn]
HXgenerators = [zeros, randn]
etas = Array(Array{Float64, 1}, numetas)
etas = Array{Array{Float64, 1}}(numetas)
for noiselevel in noiselevels
for etagenerator in etagenerators
for HXgenerator in HXgenerators
Expand Down Expand Up @@ -49,9 +49,9 @@ function lowrankcovconsistencytest()
const M = 100
sqrtcovmatrix = randn(M, M)
covmatrix = sqrtcovmatrix * sqrtcovmatrix'
samples = Array(Array{Float64, 1}, N)
onesamples = Array(Float64, N)
twosamples = Array(Float64, N)
samples = Array{Array{Float64, 1}}(N)
onesamples = Array{Float64}(N)
twosamples = Array{Float64}(N)
for i = 1:N
samples[i] = sqrtcovmatrix * randn(M)
onesamples[i] = samples[i][1]
Expand Down

0 comments on commit 23e9b74

Please sign in to comment.