Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Алгоритм находжения квадратного корня. Добавлено: 31.05.10 17:53  

Автор вопроса:  AWP | Web-сайт: xawp.narod.ru | ICQ: 345685652 
Интересует алгоритм нахождения корня, который используем VB.
т.е. итерационный алгоритм мне известен, но он работает на порядки медленнее. Может кто знает как его упростить или что-то другое способное вычислять корень.

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

Ответить

  Ответы Всего ответов: 20  

Номер ответа: 1
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #1
Добавлено: 31.05.10 20:08
Зачем?

Ответить

Номер ответа: 2
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #2
Добавлено: 31.05.10 21:15
Но в VB не на VB написана программа нахождения корня. Если её на vb переписать, то станет медленнее

Ответить

Номер ответа: 3
Автор ответа:
 Серёга



ICQ: 262809473 

Вопросов: 17
Ответов: 561
 Web-сайт: houselab.narod.ru
 Профиль | | #3
Добавлено: 31.05.10 21:17
кажись msvbvm60.dll (rtcSqr) использует мат. сопроцессор (FSQRT), так что быстрее ИМХО не получится :/

Ответить

Номер ответа: 4
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #4
Добавлено: 31.05.10 21:53
Тебе не один корень надо, я думаю считать, а о-очень большую кучу, так? Иначе бы ты не выделывался так на производительность. Значит, можно зарядить вычисление всех корней параллельно и сунуть в видеокарту - вуаля. CUDA, C, Shaders - все они ждут тебя, смекаешь?

Ответить

Номер ответа: 5
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #5
Добавлено: 01.06.10 00:24
Не думаю, что vb6 не умеет с CUDA работать(возможно ошибаюсь), да и моя видяшка не особо поддерживает её.

to Winand
Естественно не на vb буду писать.

А чтобы увеличить скорость готов пожертвовать точностью вычислений.

Ответить

Номер ответа: 6
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #6
Добавлено: 01.06.10 00:29
Вообще моя основная цель - написание приблуды в виде dll'ки, написанной не на vb, которая будет содержать кучу разных, шустрых мат. функций, с последующим подключение, например, к vb6.
т.е. библиотечка готова, но функционал пока маловат.

Ответить

Номер ответа: 7
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #7
Добавлено: 01.06.10 02:45
в игре quake 3 квадратный корень был реализован следующим образом:
  1. float SquareRootFloat(float number) {
  2.     long i;
  3.     float x, y;
  4.     const float f = 1.5F;
  5.  
  6.     x = number * 0.5F;
  7.     y  = number;
  8.     i  = * ( long * ) &y;
  9.     i  = 0x5f3759df - ( i >> 1 );
  10.     y  = * ( float * ) &i;
  11.     y  = y * ( f - ( x * y * y ) );
  12.     y  = y * ( f - ( x * y * y ) );
  13.     return number * y;
  14. }


погрешность сам посмотри, не знаю

Ответить

Номер ответа: 8
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #8
Добавлено: 01.06.10 03:42
я читал про это, fast inverse square root да?
только честно говоря мне в этом нифига не понятно.

Ответить

Номер ответа: 9
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #9
Добавлено: 01.06.10 07:39
не, fast inverse square root - это 1/sqrt и он тоже в квейке есть да, а вот эта функция - это просто sqrt
ну понятно, не понятно... работает ведь)) нужно только установить погрешность и все

Ответить

Номер ответа: 10
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #10
Добавлено: 01.06.10 12:03
нет, мне код не понятен, я же Basic'ист :)
такие конструкции("0.5F;", "* ( long * ) &y; ", ";( i >> 1 )" )меня в ступор вводят.))

Ответить

Номер ответа: 11
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #11
Добавлено: 01.06.10 16:14
буду благодарен, если кто-нибудь расшифруем этот код))

Ответить

Номер ответа: 12
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #12
Добавлено: 01.06.10 18:07
>> 1 сдвиг вправо на разряд
F обозначение, что это float
Хотя я могу и ошибаться)

Ответить

Номер ответа: 13
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #13
Добавлено: 01.06.10 18:14
А
i = * ( long * ) &y;
и
y = * ( float * ) &i;
это приведение типов?

Ответить

Номер ответа: 14
Автор ответа:
 VbStarter



ICQ: 357911808 

Вопросов: 118
Ответов: 1340
 Web-сайт: moscowdevils.ru
 Профиль | | #14
Добавлено: 01.06.10 18:25
суде по всему - да.

Ответить

Номер ответа: 15
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #15 Добавлено: 15.06.10 16:11
О чем тема была?
Чем не устраивют ВБшные вычисления корня? Ну, за исключением того что порой здорово глючат, разумеется.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам