С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 13

Что значит "isfinite"?

28.11.2009, 19:31. Показов 4080. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При компилировании с помощью GCC 3.4.3 в Solaris 10 SPARC не находится функция "isfinite". Решение нашёл здесь:
http://www.nexenta.org/os/Porting_Codefixes
C++
1
2
3
4
5
#if defined(sun)
#ifndef isfinite
#define isfinite(val) (val <= std::numeric_limits<double>::max())
#endif
#endif
Что означает isfinite и как вышепрведённый код решает проблему?
Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.11.2009, 19:31
Ответы с готовыми решениями:

Sleep(8000) - что значит? На что можно заменить в борланд с++?
Не распознаёт Sleep(8000) . Если за комментировать пишет что f заданно но не используется. Как исправить? ...

Что значит Handle hf? Что в эту функцию нужно передавать
мне нужно создать функцию Node * ReadNode(HANDLE hf); (Node это структура) Так вот вопрос в том что значит Handle hf? Что в эту функцию...

Что значит 'конечное число' из описания метода Number.IsFinite?
Доброго времени суток. Мне нужно проверить число на корректность(тип == число, не нан и не инфинити). Сначала я написал свой костыль с...

9
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
28.11.2009, 20:15
The isfinite() macro shall determine whether its argument has a finite value (zero, subnormal, or normal, and not infinite or NaN).
1
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
29.11.2009, 00:01
Цитата Сообщение от jsg Посмотреть сообщение
Что означает isfinite
ну это же видно из вашего же поста:

C++
1
2
3
4
5
#if defined(sun)
#ifndef isfinite
#define isfinite(val) (val <= std::numeric_limits<double>::max())
#endif
#endif
То есть это можно трактовать так:

Если определн макрос с именем sun ( т.е. #define sun )
{
Если не объвлен макрос isfinite
{
определяем макроподставноку isfinite(val)
}
}

Вообщем, любое

isfinite(val)


заменится перед компиляцией в коде на:

val <= std::numeric_limits<double>::max()
1
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 13
29.11.2009, 07:03  [ТС]
Это я понял (про define). Надо было задать вопрос конкретнее: что такое
val <= std::numeric_limits<double>::max() ?
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
29.11.2009, 14:02
Цитата Сообщение от jsg Посмотреть сообщение
val <= std::numeric_limits<double>::max() ?
val - это некоторая переменная, которая будет передаваться в макрос isfinite()

а

std::numeric_limits<double>::max()

возвращает максимальное значение (верхнюю границу) типа double...

Т.е. фактически, проверяется условие на выход за предел типа.
1
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 13
29.11.2009, 15:14  [ТС]
Понятно, спасибо. А как сделать, чтобы этот макрос был определён глобально, т е чтобы не вставлять в каждый файл, где используется isfinite, вышеуказанные 5 строчек?
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
29.11.2009, 15:32
Вынеси его в хедер, который подключается во всех cpp файлах. Такой существует?
0
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 13
29.11.2009, 15:58  [ТС]
Я хотел определить его вообще для компилятора (или для системы), чтобы вне зависимости от проекта это макрос подключался. В Linux такой он определён, а у меня в Solaris нет, поэтому при компилировании многих линуксовых программ возникает ошибка. Это относится не конкретно к isfinite, а вообще к макросам. Может, нужно в конфигурационные файлы компилятора его прописать?
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
29.11.2009, 16:05
jsg, здесь моя компетентность иссякает. Это уже вопрос к nix-программистам. про настройки gcc я ничего не знаю
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
29.11.2009, 18:37
Цитата Сообщение от jsg Посмотреть сообщение
Я хотел определить его вообще для компилятора (или для системы), чтобы вне зависимости от проекта это макрос подключался. В Linux такой он определён, а у меня в Solaris нет, поэтому при компилировании многих линуксовых программ возникает ошибка. Это относится не конкретно к isfinite, а вообще к макросам. Может, нужно в конфигурационные файлы компилятора его прописать?
"Нормальными" средствами никак. Ненормальными можно:
- Смотришь, в каком файле на солярисе сделан этот макрос и добавляешь его в линуксовый файл с таким же именем. Т.е. правку вносить в системную часть (внутренние инклюды компилятора gcc или системные инклюды)
- Лепишь этот макрос в отдельный файл (допустим, /home/trampampam/ttt.h), и при компиляции любой программы заменяешь "gcc" на "gcc -include /home/trampampam/ttt.h". Ну или попросту где надо добавляешь опцию компилятора "-include /home/trampampam/ttt.h". По этой опции этот хижер будет подключаться ДО обработки директив #include
- Допустим, в хидер в солярисе, который содержит этот макрос, называется math.h. Создаёшь каталог (желательно, чтобы был пустой), создаёшь в нём файл math.h следующего содержания

C
1
2
3
4
5
6
7
8
9
10
#ifndef __MY_MATH_H__
#define __MY_MATH_H__
 
 /* Эта директива подключит ВТОРОЙ найденный файл math.h в путях
 * поиска. Т.е. это будет системный */
#include_next <math.h>
 
#define isfinite .....
 
#endif /* __MY_MATH_H__ */
Далее задаёшь переменную окружения CPATH и устанавливаешь её значение равным КАТАЛОГУ, куда ты свалил свой самодельный файл. При компиляции gcc проверяет переменную окружения CPATH и каталоги, содержащиеся в этой переменной добавляет в пути поиска инклюдов ДО системных путей
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.11.2009, 18:37
Помогаю со студенческими работами здесь

Что значит public string T и все что дальше в приведенном коде?
class String { private string A; public String() { } public string T { ...

6 cores are activated что это значит и что с этим делать?
Доброго времени суток уважаемые форумчане. Возникла вот такая незадача с компом. Пишет 6 cores are activated при загрузке (в том же меню...

Написать что значит каждая строчка и за что она отвечает
Program ABC const n = 5; var a: array of integer; i, S, p: integer; begin s := 0; p := 1; for i := 1 to n do

Что значит это условие? Немогу расчехлить на что тут идёт проверка!!!
НЕмогу понять на что идет проверка. if monthof(DateTimePicker1.date+33)&lt;9 then radiobutton3.Checked:=true else ...

Что значит исследовать сходимость метода (Якоби) и что за график нужно построить
Здравствуйте, вопрос в следуещем. В лабе по ЧМ нужно решить СЛАУ методом Якоби(что я сделал) и исследовать сходимость метода, построить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 07.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru