Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Увеличить точность вычислений

Сообщения:  [1-10]   [11-16] 

 
 автор: Eugene77   (23.05.2008 в 20:48)   письмо автору
 
   для: cheops   (22.05.2008 в 19:44)
 

Спасибо! Яснот еперь.

   
 
 автор: Trianon   (23.05.2008 в 01:01)   письмо автору
 
   для: Eugene77   (22.05.2008 в 18:12)
 

вообще-то float в С и float в php - две разные вещи.

   
 
 автор: cheops   (22.05.2008 в 19:44)   письмо автору
 
   для: Eugene77   (22.05.2008 в 17:32)
 

В Linux нужен будет GCC, в Windows - Visual Studio С++.

   
 
 автор: cheops   (22.05.2008 в 19:42)   письмо автору
 
   для: Eugene77   (22.05.2008 в 18:12)
 

Вообще-то возвращается double, однако в конфигурационный файл php.ini сейчас введена директива
precision    =  12

которая указывает, сколько знаков после запятой должно отображаться в вещественном числе - может у вас с этим что-то связанно, попробуйте поиграться этой директивой (хотя она не должна на вычисления влиять - её дело формат вывода). Ошибки накапливаются действительно быстро, для этого и введены функции expm1() и log1p() - они очень точно считают свой класс задач.

   
 
 автор: Eugene77   (22.05.2008 в 18:12)   письмо автору
 
   для: cheops   (21.05.2008 в 11:48)
 

>У PHP только две функции expm1() и log1p(), которые высчитывают значения повышенной точности и только под UNIX в Windows они используют обычные функции.

Даже эти функции возвращают float. А разности между float - это уже источник значительных погрешностей, если точки на графике находятся близко.
Если я правильно помню, в Cи все математические функции по умолчанию возвращают double.
Вроде бы PHP на Си написан, как же они изменили этот разумный подход?
Может быть возможно как-то вернуть изначальное положение вещей?

   
 
 автор: Eugene77   (22.05.2008 в 17:32)   письмо автору
 
   для: cheops   (21.05.2008 в 11:51)
 

Я давно уже не писал на Си чего-то реально работающего.
Какой мне надо компилятор: стандартный линуксовский или микрософтовский подойдёт?

   
 
 автор: cheops   (21.05.2008 в 11:51)   письмо автору
 
   для: Eugene77   (20.05.2008 в 15:16)
 

>>>Или может быть, есть какой-то метод подключить к PHP библиотеки СИ?
>>Можно написать расширение.
>
>Как это сделать? Я знаю что должна делать моя программа, но как её проще всего приделать к PHP?
>
>У меня мысль такая: PHP скрипт пишет во временную директорию файлы. Программа - расширение читает их и перерабатывает, а потом записывает в другие файлы результат. Потом из этих файлов снова читает PHP скрипт и выводит уже окончательный результат.
>
>Но расширение - это наверно что-то другое? Меня с ним на хостинг пустят?
>Если мне делать в Linux - среде, то придётся перекомпилировать PHP интерпретатор?
>Под windjws надо делать свой DLL? Как его делают?
Маловероятно, что вас на хостинг с ней пустят, зависит от хостинга, если там допускается использоваться CGI-скрипты, написанные на C - можно с помощью их что-то сделать.

   
 
 автор: cheops   (21.05.2008 в 11:48)   письмо автору
 
   для: Eugene77   (21.05.2008 в 11:10)
 

У PHP только две функции expm1() и log1p(), которые высчитывают значения повышенной точности и только под UNIX в Windows они используют обычные функции.

   
 
 автор: Eugene77   (21.05.2008 в 11:10)   письмо автору
 
   для: mihdan   (20.05.2008 в 23:07)
 

Почти нечего описывать.
Есть формула, содержащая тригонометрические функции, надо постоить её график.
Формула не очень простая и из-за разностей больших чисел начинают получаться ступеньки на графике, где должно идти плавно.
Вот уже неделю вокруг неё хожу. На другом языке записал - всё работает нормально, но мне надо на PHP.

   
 
 автор: mihdan   (20.05.2008 в 23:07)   письмо автору
 
   для: Eugene77   (20.05.2008 в 15:16)
 

Для начала опишите полностью задачу, возможно будет все сделать проще чем вам кажется и на РНР. Может вы просто что-то недопоняли

   

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования