Проц Intel i7 G6950X Extreme 3.0ГГц (3.4 ГГц при работе). Разгон до 4 ГГц выключил.
Монитор откалиброван, а больше мне ничего калибровать не надо.
Генерация данных:
Заголовок спойлера
Всего итераций (x64): 100 000 000
Функция: RDRand32
Время: 8,47 сек.
11 807 769,51 в сек.
Функция: RDRand64
Время: 8,25 сек.
12 121 212,12 в сек.
Функция: System.Random
Время: 0,23 сек.
427 350 427,35 в сек.
Всего итераций (x64): 10 000 000
Функция: RDSeed32
Время: 9,86 сек.
1 014 301,65 в сек.
Функция: RDSeed64
Время: 9,86 сек.
1 014 198,78 в сек.
Вы пишите: используется смесь из нескольких источников...
В этой статье как раз описывается как устроены данные функции: habr.com/ru/post/128666
Они тоже берут данные из нескольких источников.
Эти функции сертифицированы.
RDRAND: Стандарт NIST SP 800-90A
RDSEED: Стандарт NIST SP 800-90B and NIST SP800-90C.
Стандарты конечно не наши, но все же.
У меня готовая таблица с точность 0.001. Скорость выборок более 500 млн в сек.
Это более чем в 10 раз быстрее моего метода и в 12-13 раз быстрее CPU или библиотечного. Но интерполяция значений не требуется из за достатка точности.
Представляете читаю Intel Software Developer's Manuals на досуге.
AVX в Delphi будет. Мне пока достаточно опкодов из Лазаруса, который поддерживает AVX, AVX2.
Кордик запатентован вроде, а до Чебышева пока руки не дошли.
Просто Тейлор самый шустрый при приемлемой точности. Остальные точнее, но медленнее.
В конце-концов я никому не навязываю свой вариант. Это просто вариант.
Вообще то неверно. По запросу они равны или если вам так угодно тождественны, а вот по ряду и ответу нет. Симметричность идет до PI / 2.0, а это 90°. Нельзя вычислить sin 75°, зная, что это всего лишь cos 15°. По ряду это более 45°, а значит симметричность нужно брать от квадрантов. Мое предыдущее ликование было преждевременным.
Считаем в радианах же, так вот:
Sin 15° — 0,258819045102520
Cos 15° — 0,965925826289068 < — ряд выше 45°
Sin 75° — 0,965925826289068 < — ряд выше 45°
Cos 75° — 0,258819045102520
Так что симметрия должна быть относительно 90°, т.е. по квадрантам.
Да. Ценное замечание. На выходных переделаю SinCos в единую функцию. Будет и быстрее и, что самое важное, точность будет до 15 знака, т.е. весь Double, т.к. до 45° ряд сходится замечательно вплоть до 17 знаков. Спасибо!
Т.е. по вашему Sin 15° = Sin 75°?
Вот по модулю Sin 105° = Sin 75°, но это переход через 90°.
Симметричность проходит через квадранты, а по октетам требуются доп. вычисления.
Монитор откалиброван, а больше мне ничего калибровать не надо.
Генерация данных:
Вы пишите: используется смесь из нескольких источников...
В этой статье как раз описывается как устроены данные функции:
habr.com/ru/post/128666
Они тоже берут данные из нескольких источников.
RDRAND: Стандарт NIST SP 800-90A
RDSEED: Стандарт NIST SP 800-90B and NIST SP800-90C.
Стандарты конечно не наши, но все же.
Это более чем в 10 раз быстрее моего метода и в 12-13 раз быстрее CPU или библиотечного. Но интерполяция значений не требуется из за достатка точности.
AVX в Delphi будет. Мне пока достаточно опкодов из Лазаруса, который поддерживает AVX, AVX2.
Продукт развивается и вполне успешно.
Просто Тейлор самый шустрый при приемлемой точности. Остальные точнее, но медленнее.
В конце-концов я никому не навязываю свой вариант. Это просто вариант.
Считаем в радианах же, так вот:
Sin 15° — 0,258819045102520
Cos 15° — 0,965925826289068 < — ряд выше 45°
Sin 75° — 0,965925826289068 < — ряд выше 45°
Cos 75° — 0,258819045102520
Так что симметрия должна быть относительно 90°, т.е. по квадрантам.
Вот по модулю Sin 105° = Sin 75°, но это переход через 90°.
Симметричность проходит через квадранты, а по октетам требуются доп. вычисления.