Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  13:51[Войти] | [Зарегистрироваться]
Обсуждение темы:
Оберон-технология: особенности и перспективы


Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение. 

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 6256 сообщений

Добавить свое сообщение

Отслеживать это обсуждение

Обсуждение из раздела
Школа ОБЕРОНА

<<<... | 2316—2307 | 2306—2297 | 2296—2287 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 396


№ 2306   25-01-2007 02:50 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2297« (AVC)
___________________________

Впрочем, сам тип LONGREAL остается зарезервированным, так что не исключено, что тип, подобный long double, может появиться и в ББ.

Нет. Зарезервирован он для гораздо более важной вещи -- 128-битных вещественных.
После того как ББ немножко укрепится на линуксе, об этом нужно будет начинать думать, т.к. сразу придет народ с серьезными вычислительными приложениями, а там это нужно.


№ 2305   25-01-2007 02:46 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2301« (Антон Григорьев)
___________________________

Ответ на »сообщение 2296« (PGR)
___________________________

И еще вопрос -- почему в BlackBox нет типа LONGREAL ?

Что-то краем уха слышал, что стандарт IEEE вообще не рекомендует использование 10-байтного вещественного из-за накопления ошибок. Якобы 10-байтный формат должен использоваться только для промежуточного внутреннего представления вещественных чисел, но наружу нигде вылезать не должен.

Из практики слышал об одном примере. Юрий Зотов рассказывал, что в какой-то вычислительной задаче удалось существенно повысить точность, заменив Extended (так в Delphi называется long double) на Double - ошибки перестали накапливаться.


Сомневаюсь, что применение самого 10-байтного формата сильно усугубит накопление ошибки. Но она точно будет накапливаться при постоянном преобразовании double <-> long double.

В стандарт IEEE 754 10-байтовый формат не входит, однако процессоры (x86, про другие точно не скажу) с ним работают. Стандарт определяет 32- и 64-разрядные вещественные форматы. Почти все современные процессоры умеют с ними работать, причем должны это делать одинаково. Поэтому в BlackBox и нет LONGDOUBLE.

А вообще, пора привыкнуть, что машинная вещественная арифметика неточна по определению. :)


№ 2304   25-01-2007 02:35 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2303« (Lisp Hobbyist)
___________________________

Ответ на »сообщение 2301« (Антон Григорьев)
___________________________

А для борьбы с вычислительной погрешностью многие рекомендуют такой подход:

http://www.xsc.de/


О чем я уже упоминал N постов назад. Но это дело требует и соответствующего подхода к вычислительным алгоритмам.


№ 2303   25-01-2007 02:09 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2301« (Антон Григорьев)
___________________________

Что-то краем уха слышал, что стандарт IEEE вообще не рекомендует использование 10-байтного вещественного из-за накопления ошибок. Якобы 10-байтный формат должен использоваться только для промежуточного внутреннего представления вещественных чисел, но наружу нигде вылезать не должен.


http://http.cs.berkeley.edu/~wkahan/JAVAhurt.pdf

А для борьбы с вычислительной погрешностью многие рекомендуют такой подход:

http://www.xsc.de/


№ 2302   25-01-2007 01:56 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2300« (Сергей Губанов)
___________________________
Ответ на »сообщение 2289« (Владимир Лось)
Ну тогда (хотя бы "на пальцах") раскройте мне мне этот "физический" термин (применительно к Миру, а не к одной из его моделей)...
Не знаю получится ли "на пальцах"...
Состояние системы есть суперпозиция собственных векторов гамильтониана этой системы. Нет оснований полагать, что это будет не справедливым если в качестве системы взять весь Мир. Разьве только, при описании всего Мира, вероятно, всё же надо использовать матрицу плотности состояний вместо самих собственных векторов (не все состояния всего Мира мы можем наблюдать - по ним надо будет просуммировать).

Вы говорите о "системе". В рамках какой МОДЕЛИ? В каких границах? Ведь говоря "система", вы подразумеваете "ЭТУ систему" (её модель). Но говоря про "ЭТУ систему" вы подразумеваете существование "ДРУГИХ" (природа самой системы, способ моделирования). Ведь, даже говоря о гамильтониане, вы упоминаете для какой системы (модели вы его получаете) - для тел (частиц) в потенциальных (какой природы?) полях он будет один, а, например, для биллиарда - другой... В каком "разрезе" (совокупности "точек зрения") вы рассматриватете Мир в этом случае?


№ 2301   25-01-2007 01:24 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2296« (PGR)
___________________________

И еще вопрос -- почему в BlackBox нет типа LONGREAL ?

Его не только в BlackBox'е нет. В VC++ long double тоже начиная с какой-то версии (кажется, с 6-ой) исключили. Точнее, оставили, но сделали 8-байтным - long double = double. Связано это с какими-то неизвестными мне особенностями вычислений с 10-байтными вещественными. Что-то краем уха слышал, что стандарт IEEE вообще не рекомендует использование 10-байтного вещественного из-за накопления ошибок. Якобы 10-байтный формат должен использоваться только для промежуточного внутреннего представления вещественных чисел, но наружу нигде вылезать не должен.

Из практики слышал об одном примере. Юрий Зотов рассказывал, что в какой-то вычислительной задаче удалось существенно повысить точность, заменив Extended (так в Delphi называется long double) на Double - ошибки перестали накапливаться.


№ 2300   25-01-2007 01:18 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2289« (Владимир Лось)

Ну тогда (хотя бы "на пальцах") раскройте мне мне этот "физический" термин (применительно к Миру, а не к одной из его моделей)...

Не знаю получится ли "на пальцах"...

Состояние системы есть суперпозиция собственных векторов гамильтониана этой системы. Нет оснований полагать, что это будет не справедливым если в качестве системы взять весь Мир. Разьве только, при описании всего Мира, вероятно, всё же надо использовать матрицу плотности состояний вместо самих собственных векторов (не все состояния всего Мира мы можем наблюдать - по ним надо будет просуммировать).


№ 2299   24-01-2007 20:10 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2298« (AVC)
___________________________

Прошу прощения, везде вместо 1.0 и 1.0L следует читать 0.1 и 0.1L.
Просто я что-то засиделся за компом... :)
 AVC


№ 2298   24-01-2007 20:08 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2297« (AVC)
___________________________

В принципе, можно догадаться, откуда у проблемы "ноги растут".
Дело в том, что dt > 1.0L в силу округления.
1.0L выглядит так (дамп):
3f fb cc cc cc cc cc cc cc cd
в то время как округленный dt (после его приведения к типу long double) так:
3f fb cc cc cc cc cc cc d0 00.
Выходит, что 1.0 > 1.0L :) , а 10 / dt соответственно меньше, чем 10 / 0.1 (похоже, ББ формирует константу сразу как long double).
Похоже, проблема действительно в "излишней точности" (в отдельно взятом месте), как Вы раньше сформулировали.
 AVC


№ 2297   24-01-2007 19:55 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 2296« (PGR)
___________________________
Был неправ. Вычисление с long double дает правильный ответ -- 100.
Просто константу 0.1 нужно задавать в виде 0.1L (типа long double), а не просто 0.1 (тип double).


#include <stdio.h>
#include <math.h>

int main()
{
  long double lx = 0.1L;
  printf("%d\n", (int) floorl(10.0 / lx));
  return 0;
}


Так, что проблема в блэкбоксовской ENTIER.

И еще вопрос -- почему в BlackBox нет типа LONGREAL ?


Действительно здесь какая-то "закавыка".
Но дело, возможно, не в функции ENTIER как таковой.
Например,

ASSERT(10 / 0.1 = 10 / dt)


приводит к генерации трапа, в то время как

VAR dt, t1, t2: REAL;
...
dt := 0.1;
t1 := 10 / 0.1;
t2 := 10 / dt;
ASSERT(t1 = t2);


проходит на ура.
Имеет смысл спросить Илью Ермакова или RBV.

Что касается long double, то могу только предположить, что этот тип нестандартный (?), могущий затруднить "переносимость" ББ. (Это может быть и глупое предположение. :) )
По крайней мере, КП следовал за Явой в том, чтобы стандартизовать размерности основных типов.
Впрочем, сам тип LONGREAL остается зарезервированным, так что не исключено, что тип, подобный long double, может появиться и в ББ.
 AVC


<<<... | 2316—2307 | 2306—2297 | 2296—2287 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 396


Добавить свое сообщение

Отслеживать это обсуждение

Дополнительная навигация:
Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования