Julia configuration improvements
This commit is contained in:
parent
30ea9a4220
commit
e3360fed8f
18
.julia/config/startup.jl
Normal file
18
.julia/config/startup.jl
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
LOCAL_LIB_PATH = expanduser("~/lib/julia")
|
||||||
|
|
||||||
|
# My local package paths are in lib/julia
|
||||||
|
append!(LOAD_PATH, [LOCAL_LIB_PATH])
|
||||||
|
|
||||||
|
# array utilities
|
||||||
|
hasprefix(prefix::Vector, len, str) = length(str) >= len && str[1:len] == prefix
|
||||||
|
hasprefix(prefix::Vector, str) = hasprefix(prefix, length(prefix), str)
|
||||||
|
|
||||||
|
function eagerzip(iters...)
|
||||||
|
numiters = length(iters)
|
||||||
|
minlen = minimum(map(length, iters))
|
||||||
|
ar = [tuple(map(x->x[1], iters)...)]
|
||||||
|
for i in 2:minlen
|
||||||
|
push!(ar, tuple(map(x->x[i], iters)...))
|
||||||
|
end
|
||||||
|
return ar
|
||||||
|
end
|
82
.juliarc.jl
82
.juliarc.jl
@ -1,82 +0,0 @@
|
|||||||
LOCAL_LIB_PATH = expanduser("~/lib/julia")
|
|
||||||
|
|
||||||
# My local package paths are in lib/julia
|
|
||||||
append!(LOAD_PATH, [LOCAL_LIB_PATH])
|
|
||||||
|
|
||||||
# macro that implements import Module as Alias mostly used as a helper in the
|
|
||||||
# repl. Not to be used in Packages since this macro is not guaranteed to exist
|
|
||||||
# elsewhere.
|
|
||||||
macro imports(mexpr, mod, sexpr)
|
|
||||||
# enforce our syntax
|
|
||||||
if mod != :as
|
|
||||||
error("Expected as modifier for import got $mod")
|
|
||||||
end
|
|
||||||
# mexpr must be a symbol
|
|
||||||
if typeof(mexpr) != Symbol
|
|
||||||
error("invalid import statement, expected identifier got $mexpr")
|
|
||||||
end
|
|
||||||
# sexpr must be a symbol
|
|
||||||
if typeof(sexpr) != Symbol
|
|
||||||
error("invalid import statement, expected identifier got $mexpr")
|
|
||||||
end
|
|
||||||
# We can't just quote the import syntax so we construct the import
|
|
||||||
# expression by hand
|
|
||||||
iexpr = Expr(:import)
|
|
||||||
iexpr.args = [mexpr]
|
|
||||||
expr2 = quote
|
|
||||||
$iexpr
|
|
||||||
$sexpr = $mexpr
|
|
||||||
end
|
|
||||||
# finally we escape the whole thing since we need all the symbols to be
|
|
||||||
# evaluated/created in the callers scope.
|
|
||||||
return esc(:($(eval(expr2))))
|
|
||||||
end
|
|
||||||
|
|
||||||
containedtypes(m::Module) = whos(m, r"[[:upper:]]")
|
|
||||||
|
|
||||||
# non sampled versions of some statistics functions
|
|
||||||
|
|
||||||
variance(v::Vector) = mean((v - mean(v)).^2)
|
|
||||||
stddev(v::Vector) = sqrt(variance(v))
|
|
||||||
|
|
||||||
# multiprocess configuration helpers
|
|
||||||
function procsetup()
|
|
||||||
delta = CPU_CORES - nprocs()
|
|
||||||
if delta > 0
|
|
||||||
addprocs(delta)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# array utilities
|
|
||||||
hasprefix(prefix::Vector, len, str) = length(str) >= len && str[1:len] == prefix
|
|
||||||
hasprefix(prefix::Vector, str) = hasprefix(prefix, length(prefix), str)
|
|
||||||
|
|
||||||
function eagerzip(iters...)
|
|
||||||
numiters = length(iters)
|
|
||||||
minlen = minimum(map(length, iters))
|
|
||||||
ar = [tuple(map(x->x[1], iters)...)]
|
|
||||||
for i in 2:minlen
|
|
||||||
push!(ar, tuple(map(x->x[i], iters)...))
|
|
||||||
end
|
|
||||||
return ar
|
|
||||||
end
|
|
||||||
|
|
||||||
guid2base64(input) = base64(hex2bytes(replace(input, "-", "")))
|
|
||||||
|
|
||||||
#Using Codecs
|
|
||||||
#
|
|
||||||
#Tobytes(s) = convert(Vector{Uint8}, s)
|
|
||||||
#
|
|
||||||
#Base64decode(text::UTF8String) = base64decode(tobytes(text))
|
|
||||||
#Base64decode(text::ASCIIString) = base64decode(tobytes(text))
|
|
||||||
#Base64decode(text::Vector{Uint8}) = decode(Base64, filter(c -> c != '\n', text))
|
|
||||||
|
|
||||||
|
|
||||||
# all factors not just prime factors.
|
|
||||||
function factors(n)
|
|
||||||
f = [one(n)]
|
|
||||||
for (p,e) in factor(n)
|
|
||||||
f = reduce(vcat, f, [f*p^j for j in 1:e])
|
|
||||||
end
|
|
||||||
return f
|
|
||||||
end
|
|
Loading…
x
Reference in New Issue
Block a user