Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Самостоятельная реализация sin, cos и кв. корня, Дайте хотя бы блок-схемы 
:(
    Опции темы
4етырнадцатый
Дата 5.5.2008, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 17.5.2006

Репутация: нет
Всего: нет



Люди!!!
Необходимо реализовать на чистом С(!!!) без подключения библиотек (в т.ч. math) функции синуса, косинуса (в принципе хватит одной из них), а также функцию взятия квадратного корня.
Пойдут любые алгоритмы, в т. ч. рекурсивные, итеративные и др.
Желательно вычислять с заданной точностью.

В крайнем случае можно на ассемблере.
Или дайте хотя бы описание алгоритма!!!

Огромная просьба откликнуться и помочь!!!
PM MAIL   Вверх
bsa
Дата 5.5.2008, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Воспользуйся поиском в гугле по словам "синус ряд тейлора", "косинус ряд тейлора", "алгоритм квадратного корня" и т.д.
PM   Вверх
ksili
Дата 5.5.2008, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



На ассемблере есть инструкции FSIN, FCOS и FSQRT. Так что никаких алгоритмов и не надо!  smile  smile 

Только разберитесь со стеком FPU, чтобы он не переполнялся при использовании указанных функций

Это сообщение отредактировал(а) ksili - 5.5.2008, 11:34


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
archimed7592
Дата 5.5.2008, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(4етырнадцатый @  5.5.2008,  11:15 Найти цитируемый пост)
Или дайте хотя бы описание алгоритма!!!

Тригонометрические ф-ции(из-за своей невычисляемой природы) считаются по таблицам.
Кв. корень - посредством итеративных приближений.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
ksili
Дата 5.5.2008, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Цитата(archimed7592 @  5.5.2008,  15:29 Найти цитируемый пост)
Тригонометрические ф-ции(из-за своей невычисляемой природы) считаются по таблицам.


archimed7592, прямо в процессоре зашита таблица со значениями синусов? Дайте подтверждающую ссылку. Я не подкалываю, мне действительно интересно!


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
bronislav
Дата 5.5.2008, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: нет
Всего: 3



Цитата(ksili @  5.5.2008,  11:32 Найти цитируемый пост)
archimed7592, прямо в процессоре зашита таблица со значениями синусов? Дайте подтверждающую ссылку. Я не подкалываю, мне действительно интересно!


насколько я знаю, эти функции вычисляются приблизительно (т.е. раскладываются в ряд тейлора)



--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
Lycifer
Дата 5.5.2008, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 4.11.2007

Репутация: нет
Всего: нет



Ну насчёт квадратного корня я тебе подскажу,а вот на счёт sin,cos думаё сам.

#define ITNUM 4

float Sqroot1(float x) {
  int sp=0,i,inv=0;
  float a,b;
  if(x<=0.F) return(0.F); // 0.F= 0 случай  если не чего считать

  if(x<1.F) 
{
  x=1.F/x;
  inv=1;
}

  while(x>16.F) 
{
sp++;
x/=16.F;
}

  a=2.F; то и есть 2

  for(i=ITNUM;i>0;i--) {
    b=x/a; a+=b; a*=0.5F;
  }
  while(sp>0) 
 {
   sp--;
   a*=4.F;}

  if(inv) a=1.F/a;

  return(a);
}
Полное описание делать не буду, ну ты же должен осознать формулу!!!! smile

Добавлено через 2 минуты и 42 секунды
да,а насчёт синусов и косинусов, я  видел как это делают через тангенс.(так что дело за малым)
PM MAIL ICQ   Вверх
Igor_K
Дата 5.5.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 166
Регистрация: 4.2.2008
Где: Kyiv

Репутация: нет
Всего: нет



Цитата(Lycifer @  5.5.2008,  17:03 Найти цитируемый пост)
да,а насчёт синусов и косинусов, я  видел как это делают через тангенс.(так что дело за малым)

Ага. От сцылка http://algolist.manual.ru/maths/count_fast/sincos.php
PM MAIL   Вверх
archimed7592
Дата 5.5.2008, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(ksili @  5.5.2008,  11:32 Найти цитируемый пост)
archimed7592, прямо в процессоре зашита таблица со значениями синусов? Дайте подтверждающую ссылку. Я не подкалываю, мне действительно интересно! 

Ссылку дать не могу, но, из авторитетного, на мой взгляд, источника(ixbt.com) слышал, в обзоре одного из GPU, что-то на этот счёт(про то что вычисляются по таблицам). Возможно меня подводит память, возможно сейчас уже считают по другому, а возможно я прав. В общем, гуглите и гулимы будете smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1134 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.