2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 19:28 
upgrade в сообщении #1034144 писал(а):
1. надо функцию вставлять как индикатор целости числа в разные проверки, есть подозрения, что с арифметическими действиями машина работает быстрее, чем с встроенными алгоритмами (узнали, что число целое (дробное) - не стали его считать).
Язык-то хоть какой?

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 19:32 

(Оффтоп)

паскаль и функции экселя.
П.С.
А можно вопросы по практическому применению отдельно как-то?

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 19:37 
Аватара пользователя
Так ответы на основной вопрос вам уже дали, можно ещё добавить, что с $N=\ln{\frac{\sqrt{(x^4-x^2)^2}}{(x^4-x^2)}}$ дело обстоит ровно наоборот с тем, что вы сказали: при $|x|>1, N=0$, а при $|x| \leqslant 1$ $N$ вообще не существует.

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 19:45 
Команда FIST (сохранение результата в виде целого числа) занимает порядка 10 тактов.
Команда VCVTTPD2DQ работает ещё вдвое быстрее, да ещё и сразу над 4-мя числами.
Даже связка из загрузки double числа и выгрузки в целое займёт порядка 15 тактов, даже без AVX/SSE.
Никакую вычисляемую функцию быстрее не вычислить.

PS. Чтобы мышка не подвисала при работе программ можно выставлять приоритет вычислительному процессу ниже среднего (можно даже idle - но с ним считаться будет чуть медленнее). Можно мышкой в Диспетчере задач, можно параметром при запуске из командной строки, можно в самой программе себе самой.

-- 06.07.2015, 20:04 --

Дельфи для выделения целой (trunc) и дробной (frac) части вещественного числа делает много служебных действий, да ещё и командой FRDNINT пользуется (для дробной части) с временем выполнения больше 20 тактов, что в теории сильно замедляет вычисления при большом количестве повторений.
Но реальный замер скорости работы программы на дельфи даёт время вычислений обоих функций порядка 5-10 нс (100-200 млн в секунду), что на фоне прочих Ваших вычислений явно ничтожно малая величина. Потому искать им замену бессмысленно.

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение06.07.2015, 20:44 
upgrade в сообщении #1034170 писал(а):
паскаль и функции экселя.
П.С.
А можно вопросы по практическому применению отдельно как-то?
С теоретическим вопросом уже наступила полная ясность. А практически, конечно, есть вероятность, что в экселе встроенные функции реализованы медленнее встроенных же операций, но влияние этого маловероятного события ничтожно, так как накладные расходы на интерпретацию формулы, доставание исходных значений из других клеток и запоминание результата во много раз превышают несколько арифметических действий в этой формуле.

А насчет компилируемого языка типа дельфи уже объяснили выше.

Если же на самом деле тема - прикрытие для разговора о ВТФ, ее место в другом разделе :)

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение07.07.2015, 08:51 
с $N=\ln{\frac{\sqrt{(x^4-x^2)^2}}{(x^4-x^2)}}$ дело обстоит ровно наоборот

Минус забыл поставить перед логарифмом.
Dmitriy40
Спасибо, посмотрю подробнее описание функций.
tolstopuz в сообщении #1034189 писал(а):
С теоретическим вопросом уже наступила полная ясность.

А в точках разрыва никак нельзя узнать значение функции?
tolstopuz в сообщении #1034189 писал(а):
Если же на самом деле тема - прикрытие для разговора о ВТФ, ее место в другом разделе :)

надо целые числа получать аналитически, они дальше - показатель степени. про ВТФ просто вспомнилось.

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение07.07.2015, 22:41 
Без периодических функций едва ли получится. С периодическими можно что-то вроде: $$\lfloor x \rfloor=x-\frac{1}{2}+\frac{1}{\pi}\arctg \ctg \pi x$$ Правда, нужно ещё дырки закрывать в области определения.

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение27.05.2016, 13:32 
Кажется нашел решение.
Возводим какое-либо отрицательное число (например, $-1$) в степень равную искомому, и если искомое число дробное, то результатом возведения будет комплексное число с ненулевым коэффициентом при мнимой части. Если искомое число целое, коэффициент при мнимой части равен нулю. Таким образом, отделение дробной части от целой таки возможно, по крайней мере для дробных чисел, которые могут быть представлены дробями с четными знаменателями.

 
 
 
 Re: как выделить целую часть числа помощью арифм-х действий
Сообщение27.05.2016, 13:56 
Аватара пользователя
Это замаскированное вычисление $\sin\pi x.$

 
 
 [ Сообщений: 24 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group