This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
macro invoke(ex) | |
Meta.isexpr(ex, :call) || error("invoke macro syntax error") | |
isa(ex.args[1], Symbol) || error("invoke macro syntax error") | |
fname = ex.args[1] | |
types = [Meta.isexpr(a, :(::)) ? a.args[2] : Expr(:call, :typeof, a) for a in ex.args[2:end]] | |
args = [Meta.isexpr(a, :(::)) ? a.args[1] : a for a in ex.args[2:end]] | |
Expr(:call, :invoke, fname, Expr(:tuple, types...), args...) | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let broadcast_cache = Dict{Function,Dict{Int,Dict{Int,Function}}}() | |
global broadcast! | |
function broadcast!(f::Function, B, As::Union(Array,BitArray)...) | |
nd = ndims(B) | |
narrays = length(As) | |
idx_f = Base.ht_keyindex2(broadcast_cache, f) | |
if idx_f < 0 | |
idx_f = -idx_f | |
Base._setindex!(broadcast_cache, Dict{Int,Dict{Int,Function}}(), f, idx_f) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Base: @ngenerate, @nloops, @nref, @ncall, @ntuple, @nif, @nexprs | |
import Base: start, done, next | |
# this generates types like this: | |
# immutable SubInd_3 <: SubInds{3} | |
# I_1::Int | |
# I_2::Int | |
# I_3::Int | |
# end | |
# they are used as iterator states |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Multi_key> <space> <a> : "α" U03B1 # GREEK SMALL LETTER ALPHA | |
<Multi_key> <a> <space> : "α" U03B1 # GREEK SMALL LETTER ALPHA | |
<Multi_key> <space> <b> : "β" U03B2 # GREEK SMALL LETTER BETA | |
<Multi_key> <b> <space> : "β" U03B2 # GREEK SMALL LETTER BETA | |
<Multi_key> <space> <c> : "ξ" U03BE # GREEK SMALL LETTER XI | |
<Multi_key> <c> <space> : "ξ" U03BE # GREEK SMALL LETTER XI | |
<Multi_key> <space> <d> : "δ" U03B4 # GREEK SMALL LETTER DELTA | |
<Multi_key> <d> <space> : "δ" U03B4 # GREEK SMALL LETTER DELTA | |
<Multi_key> <space> <e> : "ε" U03B5 # GREEK SMALL LETTER EPSILON | |
<Multi_key> <e> <space> : "ε" U03B5 # GREEK SMALL LETTER EPSILON |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains any messages produced by compilers while | |
running configure, to aid debugging if configure makes a mistake. | |
It was created by GLPK configure 4.52, which was | |
generated by GNU Autoconf 2.69. Invocation command line was | |
$ ./configure | |
## --------- ## | |
## Platform. ## |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module GPRangeTst | |
import Base: colon, show | |
export autoscale, parse_gpr | |
immutable AutoScale | |
end | |
autoscale = AutoScale() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# systematically compare return types of scalar vs array operations | |
# (also div vs mod) | |
# prints out only mismatching cases | |
module ScalarArrayComp | |
using DataFrames | |
realtypes = [Bool, Uint8, Uint16, Uint32, Uint64, Uint128, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module NZipTest | |
import Base.start, Base.next, Base.done, Base.length | |
using Benchmark | |
immutable NZip0 | |
end | |
immutable NZip1{I1} | |
i1::I1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# note: Enumerate2 and new_enumerate are `Enumerate` and `enumerate` in the pull request. | |
dosomething(x::Float64, i::Int) = x+i | |
function perf() | |
n = 1_000_000 | |
const a = rand(n) | |
olden() = for (i, x) in enumerate(a) dosomething(x,i) end | |
function oldeninline() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
b = BitArray(10_000_017); fill!(b, true) | |
2x4 DataFrame: | |
Function Elapsed Relative Replications | |
[1,] "oldfill" 0.703632 3.394 1000 | |
[2,] "newfill" 0.207316 1.0 1000 | |
b1 = randbool(10_000_117); b2 = randbool(10_000_017); copy!(b1, b2) | |
2x4 DataFrame: | |
Function Elapsed Relative Replications | |
[1,] "oldcopy" 0.834918 2.37655 1000 |