Кто-нибудь в фортране рюхает?

durka82

Почему нельзя использовать exp, sqrt, sin и тп при задании параметра (константы) через выражение?
Как проверить значение переменной на infinity?

Ivan8209

Точно потому же, почему и в сях: это внешние функции.
По второму, см. описание на компилятор.
В (относительно старом) стандарте этого нет.
---
...Я работаю антинаучным аферистом...

durka82

А почему тогда можно брать логарифм (log10) и возводить в степень?

maggi14

Дык а почему нет? Операции-то можно производить и над результатами функций

durka82

Ты о чем конкретно?

maggi14

Пардон, я неправильно понял твой предыдущий вопрос. Уже въехал.

durka82

Никто не знает?

rosali

Ты действительно спрашиваешь "Почему нельзя?" или все-таки "А как можно?"
Могу пофилософствовать на тему "Почему нельзя"... Потому что константы нужны по сути только для того, чтобы размеры массивов задать. Ситуация, когда размер какого-то массива N а другого 2**N часто встречается, а вот чтобы sin понадобился, как-то не могу себе представить...
Для того, чтобы проверить float на NAN и пр. в крайнем случае можно написать C програмку и прилинковать...

Ivan8209

Фортран --- это не Си.
Фортран --- язык для серьёзных вещей, а не игрушек.
Есть такая зацепка: подпрограммы данных.
---
"...Плывёт по волнам,
По волнам моей памяти,
Исчезая в этих волнах..."

bleyman

Это ты что сказал?

anzakaznov

слушайте, люди!
расскажите мне, что это за замечтельный человек такой КОНТРА?
его уникально глупые ответы в программинге радуют меня с каждым разом всё больше и больше

durka82

Имхо, вопрос "Почему нельзя?" подразумевает и вопрос "А как можно?"...
Если нет, тогда сори за неполный вопрос.
Вопрос "А как можно?" тоже интересует.
Насчет того, зачем это все надо - я хочу контролировать переполнения в программе.
Для этого мне нужно получать максимальное значение, представляемое типом, + производные от него типа sqrt, log и тп.
И такие значения логично было бы описывать как константы.

durka82

Если это можно сделать как-то проще - будет интересно услышать как?
Для того, чтобы проверить float на NAN и пр. в крайнем случае можно написать C програмку и прилинковать...
А зачем так извращаться? Не проще ли тогда сразу на С писать?..
Кроме того, цель не в том, чтобы узнать, что получился нан, а понять, что он получится и попытаться этого избежать

durka82

подпрограммы данных

А можно подробнее?
А то поиск пока не помогает
Можно ссылку...

Ivan8209

Поподробнее не помню.
В Фортране должны быть подпрограммы предвычисления данных.
Возможно, что это было только в некоторых версиях.
Возможно, что я с чем-то путаю.
Можно попытаться обойти всё это через переменные или нульместные
функции. Со всеми вытекающими недостатками.
По поводу бесконечностей.
Если тебе срочно надо, устрой низкоуровневую проверку.
Ключевые слова: IEEE 754.
---
...Я работаю антинаучным аферистом...

durka82

По поводу бесконечностей.
Если тебе срочно надо, устрой низкоуровневую проверку.
Что за низкоуровневая проверка?
Ключевые слова: IEEE 754.
Знаю я про этот стандарт и что?

Ivan8209

Напрямую через двоичное представление проверить на равенство той
или иной бесконечности.
---
...Я работаю антинаучным аферистом...

durka82

Так вопрос в том и состоит, как получить эту константу через выражение фортрана.
Получать ее по стандарту и явно подставлять - имхо, не правильно
Оставить комментарий
Имя или ник:
Комментарий: