programmable derivatives