DualVector version ~10x faster