реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> unsigned 64 bit math in C длв компилятора который держит максимум 32-битные unsigned, Кто нибудь может помочь?
Velund
сообщение Apr 17 2009, 04:21
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



Может быть кто нибудь может помочь проверенными реализациями четырех основных действий над 64-разрядными unsigned? Компилятор держит 32 бит максимум. Float нет.

Ассемблерных вариантов море валяется - но не под нужные две платформы.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 17 2009, 05:29
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Что за платформа и что за компилятор? Может проще заменить? Да и по науке, такие вещи надо на асме делать - в смысле, укладывать рядом с Сишной программой подключаемый модуль на асме, в котором будут выполнены реализации +,-,*,/


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Velund
сообщение Apr 17 2009, 10:04
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



Цитата(Rst7 @ Apr 17 2009, 09:29) *
Что за платформа и что за компилятор? Может проще заменить? Да и по науке, такие вещи надо на асме делать - в смысле, укладывать рядом с Сишной программой подключаемый модуль на асме, в котором будут выполнены реализации +,-,*,/


Одна из двух платформ - Rabbit 2000, компилятор - Dynamic C, используются специфичные библиотеки. Компиляторов в природе всего 2 штуки под него - раббитовский Dynamic C (не ANSI C кстати, скорее C-подобный чем C) и Softools (ANSI C, коммерческий и недешевый, портировать под него весь проект просто нецелесообразно). Ни один из компиляторов не держит типы данных шире 32 бит. Float в той реализации что там есть пользоваться нельзя - уж больно лихо округляют они при вычислениях...

Железо уже давно сделано и работает несколько лет. Так что речь не о новом проекте а о доработке старинного.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 17 2009, 10:25
Сообщение #4


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Понятно. В любом случае рекомендую модуль на асме с экспортом функций add64,sub64,mul64 и div64. Борьба отсутствием работы с флагом переноса в Си приведет к ужасному коду.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Methane
сообщение Apr 17 2009, 11:30
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(Velund @ Apr 17 2009, 07:21) *
Может быть кто нибудь может помочь проверенными реализациями четырех основных действий над 64-разрядными unsigned? Компилятор держит 32 бит максимум. Float нет.

Ассемблерных вариантов море валяется - но не под нужные две платформы.

Гуглили по Extended Precision Integer Math Library?
Go to the top of the page
 
+Quote Post
Velund
сообщение Apr 18 2009, 10:10
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



Цитата(Methane @ Apr 17 2009, 15:30) *
Гуглили по Extended Precision Integer Math Library?


Теперь да. Подразумевается библиотека с сайта Philip Zimmermann?

Сильно смущает ее монстрообразность и GNU лицензия. Но если ничего больше не придумается, изучу как вариант.

Спасибо за подсказку.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th July 2025 - 13:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016