АТ>Потому что эти два варианта делают разные вещи. В качестве последнего параметра 'inner_product' ты указал '0'. '0' — это константа целого типа. Поэтому 'inner_product' ведет вычисления в рамках целого типа и на каждой итерации тратит время на то, чтобы сконвертировать очередное произведение из типа 'double' в тип 'int'.
АТ>Вызывай 'inner_product' так:
АТ>АТ>p = inner_product(aa, aa+DIMSIZE, bb, 0.0);
АТ>
АТ>И все будет работать одинаково.
Спасибо. Как сам не догадался.