powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Точная арифметика.
25 сообщений из 50, страница 2 из 2
Точная арифметика.
    #39031995
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BagaBagaРаз уж подняли некротопик, пусть будет
What Every Computer Scientist Should Know About Floating-Point Arithmetic
кто автор данного обзора? Не встретил там

На самый главный вопрос не ответили. Что по поводу той библиотеки ? Совет актуален ?

Прошу прощение за оффтоп. Знаковый математик рассказывал мне что выполняется вычисления для задач маскировки с точностью до 150 знака. Интересно где такое возможно ?
...
Рейтинг: 0 / 0
Точная арифметика.
    #39032009
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вот ещё такой вопрос. Мы получили приближенное решения в виде некоторой линейной комбинации по базисным функциям (они заданы в явном виде). Как мне хранить эту линейную комбинацию ? Использовать указатели на функции, верно ? Но эта линейная комбинация зависит от числа функций участвующих в разложении. Значит нужно разработать некоторый макрос, который будет генерировать код результирующей комбинации. Это возможно ?(генерация кода функции во время выполнения программы)
...
Рейтинг: 0 / 0
Точная арифметика.
    #39032019
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё было бы здорово иметь библиотеку для вычисления определенных интегралов. Можно и самому реализовать, но по скорости моя реализация будет уступать тем, что используют люди. Но таких библиотек не знаю (хотя уверен что есть), посоветуйте какую-нибудь пожалуйста.
...
Рейтинг: 0 / 0
Точная арифметика.
    #39032065
bdm77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЗдесь пишут про subj http://cch.loria.fr/documentation/IEEE754

не открывается
...
Рейтинг: 0 / 0
Точная арифметика.
    #39032117
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bdm77maytonЗдесь пишут про subj http://cch.loria.fr/documentation/IEEE754

не открывается
За 10 лет хостинг "усох". Tempus edax rerum. Всепожирающее время... Мдя.
...
Рейтинг: 0 / 0
Точная арифметика.
    #39032797
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryBagaBagaРаз уж подняли некротопик, пусть будет
What Every Computer Scientist Should Know About Floating-Point Arithmetic
кто автор данного обзора? Не встретил там

На самый главный вопрос не ответили. Что по поводу той библиотеки ? Совет актуален ?

Прошу прощение за оффтоп. Знаковый математик рассказывал мне что выполняется вычисления для задач маскировки с точностью до 150 знака. Интересно где такое возможно ?

SashaMercury,
там же чёрным по белому написано
http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html Note – This appendix is an edited reprint of the paper What Every Computer Scientist Should Know About Floating-Point Arithmetic, by David Goldberg , published in the March, 1991 issue of Computing Surveys. Copyright 1991, Association for Computing Machinery, Inc., reprinted by permission.


В стартовом посте никакого "второго вопроса" не обнаружил. Перечитывать весь тред десятилетней давности... Библиотек куча, под разные параметры и задачи. Можно загуглить по https://www.google.com/search?q=Arbitrary precision arithmetic&ie=utf-8&oe=utf-8

Вероятно, это же вопрос про "возможно". Просто очень мало где _реально_ имеет смысл хранить 150 значащих знака...
...
Рейтинг: 0 / 0
Точная арифметика.
    #39032825
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BagaBaga,

не стал это читать. Обычно авторов как-то выделяют, и не в тексте указывают. Спасибо.
...
Рейтинг: 0 / 0
Точная арифметика.
    #39032827
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли как-то узнать каким образом происходит оптимизация возведения в степень -1 ? Такой код выполняется очень быстро
Код: plaintext
1.
pow(-1.0,1<<30).



До того как проверил код выше не думал что стандартная функция каким-то образом оптимизируется, потому изначально написал функцию
Код: plaintext
1.
2.
3.
4.
long double pow_m_1(int p)
{
	return (p & 1) ? -1.0 : 1.0;
}


PS
данная функция используется в выражении результат которого long double, потому она и возвращает long double. Хотя всё будет работать и с int.
...
Рейтинг: 0 / 0
Точная арифметика.
    #39032865
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryМожно ли как-то узнать каким образом происходит оптимизация возведения в степень -1 ? Такой код выполняется очень быстро
Код: plaintext
1.
pow(-1.0,1<<30).

Скорее всего нет оптимизации для возведения в степень -1.
pow(-1.0,1<<30) - константа, вычисляется во время компиляции
...
Рейтинг: 0 / 0
Точная арифметика.
    #39032896
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_Sla,

этот код так-же быстро выполняется
Код: plaintext
1.
2.
	int p; scanf("%i", &p);
	printf("\n%lf\n", pow(-1.0,p));



Такой код тоже быстро выполнится

Код: plaintext
1.
printf("\n%lf\n", pow(-1.0000001,1<<30));//ввод из потока ввода даёт аналогичный результат по времени, доли секунды



Возможно(вероятно) используется алгоритм быстрого возведения в степень. Асимптотическая сложность имеет вид логарифмической функции.
...
Рейтинг: 0 / 0
Точная арифметика.
    #39032905
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury, попробуй выполнить с pow, потом с pow_m_1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
double res1 = 0, res2 = 0;
    for(int i=0; i < 1000000000; ++i)
    {
        //res1 += pow(-1.0, i);
        res2 += pow_m_1(i);
    }
    cout << res1 << endl << res2 << endl;
...
Рейтинг: 0 / 0
Точная арифметика.
    #39032969
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury, на бесконечно большом диапазоне long double тебя заинтересовала оптимизация POW для аргумента -1.0 ?

К чему это? Хочешь сам себя перехитрить?
...
Рейтинг: 0 / 0
Точная арифметика.
    #39033596
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonSashaMercury, на бесконечно большом диапазоне long double тебя заинтересовала оптимизация POW для аргумента -1.0 ?

К чему это? Хочешь сам себя перехитрить?

Просто в базисных функция присутствует этот элемент.
...
Рейтинг: 0 / 0
Точная арифметика.
    #39033597
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_Sla, время как-то криво измеряется(я видимо что-то не так делаю). Но стандартная функция заметно дольше выполняется

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
#include <math.h>
#include <stdio.h>
#include <time.h>

long double pow_m_1(int p)
{
	return (p & 1) ? -1.0 : 1.0;
}


int main()
{
	unsigned int start_time = clock();
	double res = 0;
	for (int i = 0; i < 1<<30; ++i) {
		res += pow_m_1(-1.0);
	}
	unsigned int end_time = clock();
	unsigned int search_time = (end_time - start_time)/1000;
	printf("test1 my pow %i search time=%u\n", res, search_time);

	start_time = clock();
	res = 0;
	for (int i = 0; i < 1<<30; ++i)
    {
		res += pow(-1.0, i);//pow_m_1(i);
	}
	end_time = clock();
	search_time = (end_time - start_time)/1000;
	printf("test 2 st pow %i search time=%u\n", res, search_time);
	return 0;
}
...
Рейтинг: 0 / 0
Точная арифметика.
    #39033603
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотел написать для тестирования функцию, которая принимает указатель на функцию, но не получилось. Потому что моя функция имеет один параметр, а стандартная 2
...
Рейтинг: 0 / 0
Точная арифметика.
    #39033788
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще синус можно захардкодить. Для 0 градусов, 30, 45, 60, 90.
...
Рейтинг: 0 / 0
Точная арифметика.
    #39033880
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕще синус можно захардкодить. Для 0 градусов, 30, 45, 60, 90.лень лезть в исходники crt, но в этом нет ничего невозможного, кмк ))
...
Рейтинг: 0 / 0
Точная арифметика.
    #39033965
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychmaytonЕще синус можно захардкодить. Для 0 градусов, 30, 45, 60, 90.лень лезть в исходники crt, но в этом нет ничего невозможного, кмк ))
Невозможного нет. А есть ли необходимость?
...
Рейтинг: 0 / 0
Точная арифметика.
    #39033976
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНевозможного нет. А есть ли необходимость?оптимизация, брат )) зачем считать, когда ответ заранее известен?
...
Рейтинг: 0 / 0
Точная арифметика.
    #39033985
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Етить-колотить! Это ломает мои представления о Math.Libraries.

P.S. Помниться мы с Базистом рассуждали о том как любую функцию задать таблично
и прогрузить ее в Стебелёк. Эх... славное было времечко. Мдя.
...
Рейтинг: 0 / 0
Точная арифметика.
    #39033994
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тригонометрические функции давно захаркорены . А как уж там оно в проце реально считается - тайна покрытая мраком, может и правда таблицы Брадиса забиты.
...
Рейтинг: 0 / 0
Точная арифметика.
    #39034010
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TТригонометрические функции давно захаркорены . А как уж там оно в проце реально считается - тайна покрытая мраком, может и правда таблицы Брадиса забиты.
Считаются они через ряды Тейлора (или Лорана).

Да захардкодены. Но это compiller depends. Может быть использована как команда FPU так
и реализация под длинную арифметику на современных наборах команд.
...
Рейтинг: 0 / 0
Точная арифметика.
    #39034018
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По повод Брадиса. Предлагаю помедитировать над сорцами одной игрушки.

https://github.com/id-Software/DOOM/blob/master/linuxdoom-1.10/tables.c
https://github.com/id-Software/DOOM/blob/master/linuxdoom-1.10/tables.h
...
Рейтинг: 0 / 0
Точная арифметика.
    #39034037
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПо повод Брадиса. Предлагаю помедитировать над сорцами одной игрушки.
В те времена сопроцессор для мат.расчетов был необязательной опцией. Да и процы большой скоростью не отличались.
...
Рейтинг: 0 / 0
Точная арифметика.
    #39034540
drsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто оставлю это здесь
фиксед поинт
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Точная арифметика.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]