Skip to content

Instantly share code, notes, and snippets.

julia> VERSION
v"0.7.0-DEV.2114"
julia> methodswith(Function)
[1] guardsrand(f::Function) in Test at /Users/mbauman/Code/julia-0.6/usr/share/julia/site/v0.7/Test/src/Test.jl:1429
[2] guardsrand(f::Function, r::AbstractRNG) in Test at /Users/mbauman/Code/julia-0.6/usr/share/julia/site/v0.7/Test/src/Test.jl:1429
[3] guardsrand(f::Function, seed::Integer) in Test at /Users/mbauman/Code/julia-0.6/usr/share/julia/site/v0.7/Test/src/Test.jl:1439
[4] !(f::Function) in Base at operators.jl:975
[5] all(f::Function, A::AbstractArray, region) in Base at reducedim.jl:619
[6] all!(f::Function, r::AbstractArray, A::AbstractArray) in Base at reducedim.jl:615

Status quo

Currently the AbstractArray type hierarchy has three major subtype trees:

  • DenseArray
  • AbstractSparseArray
  • AbstractRange

In addition, we have the StridedArray typealias, which effectively “adds” strided SubArrays and ReshapedArrays as pseudo-subtypes of DenseArrays.

We also have the IndexStyle trait.

$ ack -C 5 '\bslicedim\b'
AutoGrad/src/base/abstractarraymath.jl
13-# imag
14-# +
15-# *
16-# /
17-# \
18:# slicedim
19-# flipdim
20-# circshift
{
"name": "mycsv",
"title": "Mycsv",
"resources": [
{
"name": "etp_participant_data",
"title": "Etp Participant Data",
"schema": {
"fields": [
{
This file has been truncated, but you can view the full file.
JULIA test/all
WARNING: general linear indexing is deprecated; use reshape(A, Val{1}) before indexing
!atcaller!> in *(::UpperTriangular{Float32,Array{Float32,2}}, ::Array{BigFloat,1}) at triangular.jl:1559 in /Users/mbauman/Code/julia-0.6/test/linalg/triangular.jl at 17
Stacktrace:
[1] depwarn(::String, ::Tuple{Symbol,Symbol,Symbol}) at ./deprecated.jl:64
[2] _to_linear_index(::Array{BigFloat,1}, ::Int64, ::Int64, ::Vararg{Int64,N}) at ./abstractarray.jl:850
[3] _getindex at ./abstractarray.jl:837 [inlined]
[4] getindex at ./multidimensional.jl:184 [inlined]
[5] A_mul_B!(::UpperTriangular{BigFloat,Array{BigFloat,2}}, ::Array{BigFloat,1}) at ./linalg/triangular.jl:582
[6] *(::UpperTriangular{Float32,Array{Float32,2}}, ::Array{BigFloat,1}) at ./linalg/triangular.jl:1559
diff --git a/base/array.jl b/base/array.jl
index 7c3b978..b28837d 100644
--- a/base/array.jl
+++ b/base/array.jl
@@ -289,8 +289,17 @@ done(a::Array,i) = (i > length(a))
## Indexing: getindex ##
-getindex(A::Array, i::Int, I::Int...) = arrayref(A, i, I...)
-unsafe_getindex(A::Array, i::Int, I::Int...) = @inbounds return arrayref(A, i, I...)
diff --git a/base/array.jl b/base/array.jl
index 7c3b978..501693f 100644
--- a/base/array.jl
+++ b/base/array.jl
@@ -289,8 +289,17 @@ done(a::Array,i) = (i > length(a))
## Indexing: getindex ##
-getindex(A::Array, i::Int, I::Int...) = arrayref(A, i, I...)
-unsafe_getindex(A::Array, i::Int, I::Int...) = @inbounds return arrayref(A, i, I...)
@mbauman
mbauman / filtfilt_gustafsson.jl
Created July 7, 2014 14:10
Forward-backward IIR filter that uses Gustafsson's method.
# Forward-backward IIR filter that uses Gustafsson's method.
#
# Apply the IIR filter defined by `(b,a)` to `x` twice, first forward
# then backward, using Gustafsson's initial conditions [1]_.
#
# Let `y_fb` be the result of filtering first forward and then backward,
# and let `y_bf` be the result of filtering first backward then forward.
# Gustafsson's method is to compute initial conditions for the forward
# pass and the backward pass such that `y_fb == y_bf`.
#
@mbauman
mbauman / .juliarc.jl
Last active August 29, 2015 14:03
juliarc
module RC
## Method sorting: https://github.com/JuliaLang/julia/pull/6119 (closed wontfix)
Base.isless(a::Method, b::Method) = isless(a.func.code.name, b.func.code.name)
## Simplify life when calling methodswith. I always do it wrong.
Base.methodswith(x, showparents::Bool=false) = methodswith(typeof(x), showparents)
if VERSION < v"0.3-"
ENV["JULIA_HISTORY"] = joinpath(homedir(), "~/.julia_history_v0.2")
julia> {"key$(i)" => randn(i,i) for i = 1:10}
{"key8"=>8x8 Array{Float64,2}:
-2.12749 -0.752214 0.492932 … -1.15896 -0.469876 -0.473766
0.591607 0.781237 -0.882523 -1.04401 -0.847492 1.46561
0.261209 1.07582 1.38244 2.45793 -1.72707 1.86853
1.77907 1.49788 -1.9545 -0.0986327 -1.00464 0.265882
0.890266 0.151234 0.0375418 0.250334 -0.857636 0.593363
-0.0338993 -0.465015 0.342204 … 0.701575 -0.506198 -1.8893
-1.1662 0.318207 0.961944 0.514062 -0.301675 0.768447
-0.946939 0.823065 1.35655 -0.55687 -0.28025 -0.125624,"key6"=>6x6 Array{Float64,2}: