Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
this->points[0] это индекс, забыл уточнить.
Tсли это так, то с каких таких значение tl_sumx получается с десятью нулями (как у вас на скриншоте)? Например, сумма чисел от 0 до 86.000 равна в точности 86.000*85.999=7.395.914.000, у вас же в 4 раза больше.
Ищите ошибку здесь...
И вообще, у меня большое подозрение, что при таком количестве точек их легко можно прореживать вдвое, втрое, а то и вдесятеро. Получите расхождение в пятом-шестом знаке после запятой, зато никаких проблем с переполнением знать не будете.
Tсли это так, то с каких таких значение tl_sumx получается с десятью нулями (как у вас на скриншоте)? Например, сумма чисел от 0 до 86.000 равна в точности 86.000*85.999=7.395.914.000, у вас же в 4 раза больше.
Ищите ошибку здесь...
И вообще, у меня большое подозрение, что при таком количестве точек их легко можно прореживать вдвое, втрое, а то и вдесятеро. Получите расхождение в пятом-шестом знаке после запятой, зато никаких проблем с переполнением знать не будете.
Проблема в x*х. Нужно просто как я написал сделать, то есть преобразовать индекс в double до умножения. Или хотя бы на 1.0 умножить :)
х
Проблема в x*х. Нужно просто как я написал сделать, то есть преобразовать индекс в double до умножения. Или хотя бы на 1.0 умножить :)
Tсли это так, то с каких таких значение tl_sumx получается с десятью нулями (как у вас на скриншоте)? Например, сумма чисел от 0 до 86.000 равна в точности 86.000*85.999=7.395.914.000, у вас же в 4 раза больше.
Ищите ошибку здесь...
Правильней сказать: проблемы с расчетами начались с 86000 последний расчет был при около 224640 точек. Это трендовая линия, ее вершина автоматом скользит по графику пытаясь найти конец тренда.
И вообще, у меня большое подозрение, что при таком количестве точек их легко можно прореживать вдвое, втрое, а то и вдесятеро. Получите расхождение в пятом-шестом знаке после запятой, зато никаких проблем с переполнением знать не будете.
Согласен.
проблема и там, и там)) Лучший вариант - считать все в double И ограничивать размер выборки.
В первом случае накопление идёт в double tl_sumx, там переполнения нет и на реальных историях не будет, может быть только потеря точности но до этого далеко ещё.
А с остальным согласен :)
Candid:
Там когда х2 считается, похоже сначала перемножаются целые, а потом приведение типов идёт. Индекс нужно с самого начала в double перегонять.
Вы правы. Именно здесь переполняется инт:
82607 * 82607 переполняет инт (он переполняется раньше, просто пример). Сначала посчитал это маловероятным, а оно вон как ...
Наверное у меня пробелы с цифрами, трудно укладывается что 82607 * 82607 переполняет 4 млрд. (индексы у меня бесзнаковые).
Candid отдельное спасибо, даже мысли не было что там может переполниться.
Какая-то странная у нас система счета, мы привыкли что 1000*1000 = млн, но млн * млн больше чем млрд. Засада, надо быть осторожней.
Какая-то странная у нас система счета, мы привыкли что 1000*1000 = млн, но млн * млн больше чем млрд. Засада, надо быть осторожней.
Ну просто круглое число теперь 1024 а не 1000 :))