ham-fisted.primitive-invoke
For statically traced calls the Clojure compiler calls the primitive version of type-hinted functions
and this makes quite a difference in tight loops. Often times, however, functions are passed by values
or returned from if-statements and then you need to explicitly call the primitive overload - this makes
that pathway less verbose. Functions must first be check-casted to their primitive types and then
calling them will use their primitive overloads avoiding all casting.
(defn doit [f x y]
(let [f (pi/->ddd f)]
(loop [x x y y]
(if (< x y)
(recur (pi/ddd f x y) y)
x))))
ddd
macro
(ddd f arg0 arg1)
dddd
macro
(dddd f arg0 arg1 arg2)
ddddd
macro
(ddddd f arg0 arg1 arg2 arg3)
ddddl
macro
(ddddl f arg0 arg1 arg2 arg3)
ddddo
macro
(ddddo f arg0 arg1 arg2 arg3)
dddl
macro
(dddl f arg0 arg1 arg2)
dddld
macro
(dddld f arg0 arg1 arg2 arg3)
dddll
macro
(dddll f arg0 arg1 arg2 arg3)
dddlo
macro
(dddlo f arg0 arg1 arg2 arg3)
dddo
macro
(dddo f arg0 arg1 arg2)
dddod
macro
(dddod f arg0 arg1 arg2 arg3)
dddol
macro
(dddol f arg0 arg1 arg2 arg3)
dddoo
macro
(dddoo f arg0 arg1 arg2 arg3)
ddl
macro
(ddl f arg0 arg1)
ddld
macro
(ddld f arg0 arg1 arg2)
ddldd
macro
(ddldd f arg0 arg1 arg2 arg3)
ddldl
macro
(ddldl f arg0 arg1 arg2 arg3)
ddldo
macro
(ddldo f arg0 arg1 arg2 arg3)
ddll
macro
(ddll f arg0 arg1 arg2)
ddlld
macro
(ddlld f arg0 arg1 arg2 arg3)
ddlll
macro
(ddlll f arg0 arg1 arg2 arg3)
ddllo
macro
(ddllo f arg0 arg1 arg2 arg3)
ddlo
macro
(ddlo f arg0 arg1 arg2)
ddlod
macro
(ddlod f arg0 arg1 arg2 arg3)
ddlol
macro
(ddlol f arg0 arg1 arg2 arg3)
ddloo
macro
(ddloo f arg0 arg1 arg2 arg3)
ddo
macro
(ddo f arg0 arg1)
ddod
macro
(ddod f arg0 arg1 arg2)
ddodd
macro
(ddodd f arg0 arg1 arg2 arg3)
ddodl
macro
(ddodl f arg0 arg1 arg2 arg3)
ddodo
macro
(ddodo f arg0 arg1 arg2 arg3)
ddol
macro
(ddol f arg0 arg1 arg2)
ddold
macro
(ddold f arg0 arg1 arg2 arg3)
ddoll
macro
(ddoll f arg0 arg1 arg2 arg3)
ddolo
macro
(ddolo f arg0 arg1 arg2 arg3)
ddoo
macro
(ddoo f arg0 arg1 arg2)
ddood
macro
(ddood f arg0 arg1 arg2 arg3)
ddool
macro
(ddool f arg0 arg1 arg2 arg3)
ddooo
macro
(ddooo f arg0 arg1 arg2 arg3)
dld
macro
(dld f arg0 arg1)
dldd
macro
(dldd f arg0 arg1 arg2)
dlddd
macro
(dlddd f arg0 arg1 arg2 arg3)
dlddl
macro
(dlddl f arg0 arg1 arg2 arg3)
dlddo
macro
(dlddo f arg0 arg1 arg2 arg3)
dldl
macro
(dldl f arg0 arg1 arg2)
dldld
macro
(dldld f arg0 arg1 arg2 arg3)
dldll
macro
(dldll f arg0 arg1 arg2 arg3)
dldlo
macro
(dldlo f arg0 arg1 arg2 arg3)
dldo
macro
(dldo f arg0 arg1 arg2)
dldod
macro
(dldod f arg0 arg1 arg2 arg3)
dldol
macro
(dldol f arg0 arg1 arg2 arg3)
dldoo
macro
(dldoo f arg0 arg1 arg2 arg3)
dll
macro
(dll f arg0 arg1)
dlld
macro
(dlld f arg0 arg1 arg2)
dlldd
macro
(dlldd f arg0 arg1 arg2 arg3)
dlldl
macro
(dlldl f arg0 arg1 arg2 arg3)
dlldo
macro
(dlldo f arg0 arg1 arg2 arg3)
dlll
macro
(dlll f arg0 arg1 arg2)
dllld
macro
(dllld f arg0 arg1 arg2 arg3)
dllll
macro
(dllll f arg0 arg1 arg2 arg3)
dlllo
macro
(dlllo f arg0 arg1 arg2 arg3)
dllo
macro
(dllo f arg0 arg1 arg2)
dllod
macro
(dllod f arg0 arg1 arg2 arg3)
dllol
macro
(dllol f arg0 arg1 arg2 arg3)
dlloo
macro
(dlloo f arg0 arg1 arg2 arg3)
dlo
macro
(dlo f arg0 arg1)
dlod
macro
(dlod f arg0 arg1 arg2)
dlodd
macro
(dlodd f arg0 arg1 arg2 arg3)
dlodl
macro
(dlodl f arg0 arg1 arg2 arg3)
dlodo
macro
(dlodo f arg0 arg1 arg2 arg3)
dlol
macro
(dlol f arg0 arg1 arg2)
dlold
macro
(dlold f arg0 arg1 arg2 arg3)
dloll
macro
(dloll f arg0 arg1 arg2 arg3)
dlolo
macro
(dlolo f arg0 arg1 arg2 arg3)
dloo
macro
(dloo f arg0 arg1 arg2)
dlood
macro
(dlood f arg0 arg1 arg2 arg3)
dlool
macro
(dlool f arg0 arg1 arg2 arg3)
dlooo
macro
(dlooo f arg0 arg1 arg2 arg3)
dod
macro
(dod f arg0 arg1)
dodd
macro
(dodd f arg0 arg1 arg2)
doddd
macro
(doddd f arg0 arg1 arg2 arg3)
doddl
macro
(doddl f arg0 arg1 arg2 arg3)
doddo
macro
(doddo f arg0 arg1 arg2 arg3)
dodl
macro
(dodl f arg0 arg1 arg2)
dodld
macro
(dodld f arg0 arg1 arg2 arg3)
dodll
macro
(dodll f arg0 arg1 arg2 arg3)
dodlo
macro
(dodlo f arg0 arg1 arg2 arg3)
dodo
macro
(dodo f arg0 arg1 arg2)
dodod
macro
(dodod f arg0 arg1 arg2 arg3)
dodol
macro
(dodol f arg0 arg1 arg2 arg3)
dodoo
macro
(dodoo f arg0 arg1 arg2 arg3)
dol
macro
(dol f arg0 arg1)
dold
macro
(dold f arg0 arg1 arg2)
doldd
macro
(doldd f arg0 arg1 arg2 arg3)
doldl
macro
(doldl f arg0 arg1 arg2 arg3)
doldo
macro
(doldo f arg0 arg1 arg2 arg3)
doll
macro
(doll f arg0 arg1 arg2)
dolld
macro
(dolld f arg0 arg1 arg2 arg3)
dolll
macro
(dolll f arg0 arg1 arg2 arg3)
dollo
macro
(dollo f arg0 arg1 arg2 arg3)
dolo
macro
(dolo f arg0 arg1 arg2)
dolod
macro
(dolod f arg0 arg1 arg2 arg3)
dolol
macro
(dolol f arg0 arg1 arg2 arg3)
doloo
macro
(doloo f arg0 arg1 arg2 arg3)
doo
macro
(doo f arg0 arg1)
dood
macro
(dood f arg0 arg1 arg2)
doodd
macro
(doodd f arg0 arg1 arg2 arg3)
doodl
macro
(doodl f arg0 arg1 arg2 arg3)
doodo
macro
(doodo f arg0 arg1 arg2 arg3)
dool
macro
(dool f arg0 arg1 arg2)
doold
macro
(doold f arg0 arg1 arg2 arg3)
dooll
macro
(dooll f arg0 arg1 arg2 arg3)
doolo
macro
(doolo f arg0 arg1 arg2 arg3)
dooo
macro
(dooo f arg0 arg1 arg2)
doood
macro
(doood f arg0 arg1 arg2 arg3)
doool
macro
(doool f arg0 arg1 arg2 arg3)
doooo
macro
(doooo f arg0 arg1 arg2 arg3)
ldd
macro
(ldd f arg0 arg1)
lddd
macro
(lddd f arg0 arg1 arg2)
ldddd
macro
(ldddd f arg0 arg1 arg2 arg3)
ldddl
macro
(ldddl f arg0 arg1 arg2 arg3)
ldddo
macro
(ldddo f arg0 arg1 arg2 arg3)
lddl
macro
(lddl f arg0 arg1 arg2)
lddld
macro
(lddld f arg0 arg1 arg2 arg3)
lddll
macro
(lddll f arg0 arg1 arg2 arg3)
lddlo
macro
(lddlo f arg0 arg1 arg2 arg3)
lddo
macro
(lddo f arg0 arg1 arg2)
lddod
macro
(lddod f arg0 arg1 arg2 arg3)
lddol
macro
(lddol f arg0 arg1 arg2 arg3)
lddoo
macro
(lddoo f arg0 arg1 arg2 arg3)
ldl
macro
(ldl f arg0 arg1)
ldld
macro
(ldld f arg0 arg1 arg2)
ldldd
macro
(ldldd f arg0 arg1 arg2 arg3)
ldldl
macro
(ldldl f arg0 arg1 arg2 arg3)
ldldo
macro
(ldldo f arg0 arg1 arg2 arg3)
ldll
macro
(ldll f arg0 arg1 arg2)
ldlld
macro
(ldlld f arg0 arg1 arg2 arg3)
ldlll
macro
(ldlll f arg0 arg1 arg2 arg3)
ldllo
macro
(ldllo f arg0 arg1 arg2 arg3)
ldlo
macro
(ldlo f arg0 arg1 arg2)
ldlod
macro
(ldlod f arg0 arg1 arg2 arg3)
ldlol
macro
(ldlol f arg0 arg1 arg2 arg3)
ldloo
macro
(ldloo f arg0 arg1 arg2 arg3)
ldo
macro
(ldo f arg0 arg1)
ldod
macro
(ldod f arg0 arg1 arg2)
ldodd
macro
(ldodd f arg0 arg1 arg2 arg3)
ldodl
macro
(ldodl f arg0 arg1 arg2 arg3)
ldodo
macro
(ldodo f arg0 arg1 arg2 arg3)
ldol
macro
(ldol f arg0 arg1 arg2)
ldold
macro
(ldold f arg0 arg1 arg2 arg3)
ldoll
macro
(ldoll f arg0 arg1 arg2 arg3)
ldolo
macro
(ldolo f arg0 arg1 arg2 arg3)
ldoo
macro
(ldoo f arg0 arg1 arg2)
ldood
macro
(ldood f arg0 arg1 arg2 arg3)
ldool
macro
(ldool f arg0 arg1 arg2 arg3)
ldooo
macro
(ldooo f arg0 arg1 arg2 arg3)
lld
macro
(lld f arg0 arg1)
lldd
macro
(lldd f arg0 arg1 arg2)
llddd
macro
(llddd f arg0 arg1 arg2 arg3)
llddl
macro
(llddl f arg0 arg1 arg2 arg3)
llddo
macro
(llddo f arg0 arg1 arg2 arg3)
lldl
macro
(lldl f arg0 arg1 arg2)
lldld
macro
(lldld f arg0 arg1 arg2 arg3)
lldll
macro
(lldll f arg0 arg1 arg2 arg3)
lldlo
macro
(lldlo f arg0 arg1 arg2 arg3)
lldo
macro
(lldo f arg0 arg1 arg2)
lldod
macro
(lldod f arg0 arg1 arg2 arg3)
lldol
macro
(lldol f arg0 arg1 arg2 arg3)
lldoo
macro
(lldoo f arg0 arg1 arg2 arg3)
lll
macro
(lll f arg0 arg1)
llld
macro
(llld f arg0 arg1 arg2)
llldd
macro
(llldd f arg0 arg1 arg2 arg3)
llldl
macro
(llldl f arg0 arg1 arg2 arg3)
llldo
macro
(llldo f arg0 arg1 arg2 arg3)
llll
macro
(llll f arg0 arg1 arg2)
lllld
macro
(lllld f arg0 arg1 arg2 arg3)
lllll
macro
(lllll f arg0 arg1 arg2 arg3)
llllo
macro
(llllo f arg0 arg1 arg2 arg3)
lllo
macro
(lllo f arg0 arg1 arg2)
lllod
macro
(lllod f arg0 arg1 arg2 arg3)
lllol
macro
(lllol f arg0 arg1 arg2 arg3)
llloo
macro
(llloo f arg0 arg1 arg2 arg3)
llo
macro
(llo f arg0 arg1)
llod
macro
(llod f arg0 arg1 arg2)
llodd
macro
(llodd f arg0 arg1 arg2 arg3)
llodl
macro
(llodl f arg0 arg1 arg2 arg3)
llodo
macro
(llodo f arg0 arg1 arg2 arg3)
llol
macro
(llol f arg0 arg1 arg2)
llold
macro
(llold f arg0 arg1 arg2 arg3)
lloll
macro
(lloll f arg0 arg1 arg2 arg3)
llolo
macro
(llolo f arg0 arg1 arg2 arg3)
lloo
macro
(lloo f arg0 arg1 arg2)
llood
macro
(llood f arg0 arg1 arg2 arg3)
llool
macro
(llool f arg0 arg1 arg2 arg3)
llooo
macro
(llooo f arg0 arg1 arg2 arg3)
lod
macro
(lod f arg0 arg1)
lodd
macro
(lodd f arg0 arg1 arg2)
loddd
macro
(loddd f arg0 arg1 arg2 arg3)
loddl
macro
(loddl f arg0 arg1 arg2 arg3)
loddo
macro
(loddo f arg0 arg1 arg2 arg3)
lodl
macro
(lodl f arg0 arg1 arg2)
lodld
macro
(lodld f arg0 arg1 arg2 arg3)
lodll
macro
(lodll f arg0 arg1 arg2 arg3)
lodlo
macro
(lodlo f arg0 arg1 arg2 arg3)
lodo
macro
(lodo f arg0 arg1 arg2)
lodod
macro
(lodod f arg0 arg1 arg2 arg3)
lodol
macro
(lodol f arg0 arg1 arg2 arg3)
lodoo
macro
(lodoo f arg0 arg1 arg2 arg3)
lol
macro
(lol f arg0 arg1)
lold
macro
(lold f arg0 arg1 arg2)
loldd
macro
(loldd f arg0 arg1 arg2 arg3)
loldl
macro
(loldl f arg0 arg1 arg2 arg3)
loldo
macro
(loldo f arg0 arg1 arg2 arg3)
loll
macro
(loll f arg0 arg1 arg2)
lolld
macro
(lolld f arg0 arg1 arg2 arg3)
lolll
macro
(lolll f arg0 arg1 arg2 arg3)
lollo
macro
(lollo f arg0 arg1 arg2 arg3)
lolo
macro
(lolo f arg0 arg1 arg2)
lolod
macro
(lolod f arg0 arg1 arg2 arg3)
lolol
macro
(lolol f arg0 arg1 arg2 arg3)
loloo
macro
(loloo f arg0 arg1 arg2 arg3)
loo
macro
(loo f arg0 arg1)
lood
macro
(lood f arg0 arg1 arg2)
loodd
macro
(loodd f arg0 arg1 arg2 arg3)
loodl
macro
(loodl f arg0 arg1 arg2 arg3)
loodo
macro
(loodo f arg0 arg1 arg2 arg3)
lool
macro
(lool f arg0 arg1 arg2)
loold
macro
(loold f arg0 arg1 arg2 arg3)
looll
macro
(looll f arg0 arg1 arg2 arg3)
loolo
macro
(loolo f arg0 arg1 arg2 arg3)
looo
macro
(looo f arg0 arg1 arg2)
loood
macro
(loood f arg0 arg1 arg2 arg3)
loool
macro
(loool f arg0 arg1 arg2 arg3)
loooo
macro
(loooo f arg0 arg1 arg2 arg3)
odd
macro
(odd f arg0 arg1)
oddd
macro
(oddd f arg0 arg1 arg2)
odddd
macro
(odddd f arg0 arg1 arg2 arg3)
odddl
macro
(odddl f arg0 arg1 arg2 arg3)
odddo
macro
(odddo f arg0 arg1 arg2 arg3)
oddl
macro
(oddl f arg0 arg1 arg2)
oddld
macro
(oddld f arg0 arg1 arg2 arg3)
oddll
macro
(oddll f arg0 arg1 arg2 arg3)
oddlo
macro
(oddlo f arg0 arg1 arg2 arg3)
oddo
macro
(oddo f arg0 arg1 arg2)
oddod
macro
(oddod f arg0 arg1 arg2 arg3)
oddol
macro
(oddol f arg0 arg1 arg2 arg3)
oddoo
macro
(oddoo f arg0 arg1 arg2 arg3)
odl
macro
(odl f arg0 arg1)
odld
macro
(odld f arg0 arg1 arg2)
odldd
macro
(odldd f arg0 arg1 arg2 arg3)
odldl
macro
(odldl f arg0 arg1 arg2 arg3)
odldo
macro
(odldo f arg0 arg1 arg2 arg3)
odll
macro
(odll f arg0 arg1 arg2)
odlld
macro
(odlld f arg0 arg1 arg2 arg3)
odlll
macro
(odlll f arg0 arg1 arg2 arg3)
odllo
macro
(odllo f arg0 arg1 arg2 arg3)
odlo
macro
(odlo f arg0 arg1 arg2)
odlod
macro
(odlod f arg0 arg1 arg2 arg3)
odlol
macro
(odlol f arg0 arg1 arg2 arg3)
odloo
macro
(odloo f arg0 arg1 arg2 arg3)
odo
macro
(odo f arg0 arg1)
odod
macro
(odod f arg0 arg1 arg2)
ododd
macro
(ododd f arg0 arg1 arg2 arg3)
ododl
macro
(ododl f arg0 arg1 arg2 arg3)
ododo
macro
(ododo f arg0 arg1 arg2 arg3)
odol
macro
(odol f arg0 arg1 arg2)
odold
macro
(odold f arg0 arg1 arg2 arg3)
odoll
macro
(odoll f arg0 arg1 arg2 arg3)
odolo
macro
(odolo f arg0 arg1 arg2 arg3)
odoo
macro
(odoo f arg0 arg1 arg2)
odood
macro
(odood f arg0 arg1 arg2 arg3)
odool
macro
(odool f arg0 arg1 arg2 arg3)
odooo
macro
(odooo f arg0 arg1 arg2 arg3)
old
macro
(old f arg0 arg1)
oldd
macro
(oldd f arg0 arg1 arg2)
olddd
macro
(olddd f arg0 arg1 arg2 arg3)
olddl
macro
(olddl f arg0 arg1 arg2 arg3)
olddo
macro
(olddo f arg0 arg1 arg2 arg3)
oldl
macro
(oldl f arg0 arg1 arg2)
oldld
macro
(oldld f arg0 arg1 arg2 arg3)
oldll
macro
(oldll f arg0 arg1 arg2 arg3)
oldlo
macro
(oldlo f arg0 arg1 arg2 arg3)
oldo
macro
(oldo f arg0 arg1 arg2)
oldod
macro
(oldod f arg0 arg1 arg2 arg3)
oldol
macro
(oldol f arg0 arg1 arg2 arg3)
oldoo
macro
(oldoo f arg0 arg1 arg2 arg3)
oll
macro
(oll f arg0 arg1)
olld
macro
(olld f arg0 arg1 arg2)
olldd
macro
(olldd f arg0 arg1 arg2 arg3)
olldl
macro
(olldl f arg0 arg1 arg2 arg3)
olldo
macro
(olldo f arg0 arg1 arg2 arg3)
olll
macro
(olll f arg0 arg1 arg2)
ollld
macro
(ollld f arg0 arg1 arg2 arg3)
ollll
macro
(ollll f arg0 arg1 arg2 arg3)
olllo
macro
(olllo f arg0 arg1 arg2 arg3)
ollo
macro
(ollo f arg0 arg1 arg2)
ollod
macro
(ollod f arg0 arg1 arg2 arg3)
ollol
macro
(ollol f arg0 arg1 arg2 arg3)
olloo
macro
(olloo f arg0 arg1 arg2 arg3)
olo
macro
(olo f arg0 arg1)
olod
macro
(olod f arg0 arg1 arg2)
olodd
macro
(olodd f arg0 arg1 arg2 arg3)
olodl
macro
(olodl f arg0 arg1 arg2 arg3)
olodo
macro
(olodo f arg0 arg1 arg2 arg3)
olol
macro
(olol f arg0 arg1 arg2)
olold
macro
(olold f arg0 arg1 arg2 arg3)
ololl
macro
(ololl f arg0 arg1 arg2 arg3)
ololo
macro
(ololo f arg0 arg1 arg2 arg3)
oloo
macro
(oloo f arg0 arg1 arg2)
olood
macro
(olood f arg0 arg1 arg2 arg3)
olool
macro
(olool f arg0 arg1 arg2 arg3)
olooo
macro
(olooo f arg0 arg1 arg2 arg3)
ood
macro
(ood f arg0 arg1)
oodd
macro
(oodd f arg0 arg1 arg2)
ooddd
macro
(ooddd f arg0 arg1 arg2 arg3)
ooddl
macro
(ooddl f arg0 arg1 arg2 arg3)
ooddo
macro
(ooddo f arg0 arg1 arg2 arg3)
oodl
macro
(oodl f arg0 arg1 arg2)
oodld
macro
(oodld f arg0 arg1 arg2 arg3)
oodll
macro
(oodll f arg0 arg1 arg2 arg3)
oodlo
macro
(oodlo f arg0 arg1 arg2 arg3)
oodo
macro
(oodo f arg0 arg1 arg2)
oodod
macro
(oodod f arg0 arg1 arg2 arg3)
oodol
macro
(oodol f arg0 arg1 arg2 arg3)
oodoo
macro
(oodoo f arg0 arg1 arg2 arg3)
ool
macro
(ool f arg0 arg1)
oold
macro
(oold f arg0 arg1 arg2)
ooldd
macro
(ooldd f arg0 arg1 arg2 arg3)
ooldl
macro
(ooldl f arg0 arg1 arg2 arg3)
ooldo
macro
(ooldo f arg0 arg1 arg2 arg3)
ooll
macro
(ooll f arg0 arg1 arg2)
oolld
macro
(oolld f arg0 arg1 arg2 arg3)
oolll
macro
(oolll f arg0 arg1 arg2 arg3)
oollo
macro
(oollo f arg0 arg1 arg2 arg3)
oolo
macro
(oolo f arg0 arg1 arg2)
oolod
macro
(oolod f arg0 arg1 arg2 arg3)
oolol
macro
(oolol f arg0 arg1 arg2 arg3)
ooloo
macro
(ooloo f arg0 arg1 arg2 arg3)
oood
macro
(oood f arg0 arg1 arg2)
ooodd
macro
(ooodd f arg0 arg1 arg2 arg3)
ooodl
macro
(ooodl f arg0 arg1 arg2 arg3)
ooodo
macro
(ooodo f arg0 arg1 arg2 arg3)
oool
macro
(oool f arg0 arg1 arg2)
ooold
macro
(ooold f arg0 arg1 arg2 arg3)
oooll
macro
(oooll f arg0 arg1 arg2 arg3)
ooolo
macro
(ooolo f arg0 arg1 arg2 arg3)
ooood
macro
(ooood f arg0 arg1 arg2 arg3)
ooool
macro
(ooool f arg0 arg1 arg2 arg3)