I am work on a performance-demanding code with HyperDualNumbers and PtrArray but I got an error with mul!. This is a MWE reproducing the error:
using LinearAlgebra
using HyperDualNumbers: Hyper
using StrideArrays
AA = rand(Float64, (1000, 10))
hAA = Hyper.(AA)
hAA = StrideArrays.PtrArray(hAA)
W = rand(10, 5)
AA * W
hAA * W
ERROR: TypeError: in typeassert, expected Int64, got a value of type Nothing
It looks like a bug and it seems that Octavian is analyzing the size of array elements and how it should do with the matrix multiplication. The standard Julia implementation with Arrays uses a naive fall-back instead of Octavian.