| 
				
				Tips & Tricks & Effects & Оптимальные Алгоритмы
				 |   |  
| Akyltist | Дата: Суббота, 19 Декабря 2009, 08:20 | Сообщение # 1 |  
 
заслуженный участник 
Сейчас нет на сайте 
 
 | ================================== ==================================   В данную тему выкладываем самые оптимальные алгоритмы (математические, геометрические,   физические, графические) не забываем про качество алгоритмов   ================================== ==================================  Любой флуд в теме будет наказываться очень жестоко.   - [Intro]   - [Mathematical Functions]   ------{Функция Оптимального вычисления арккосинуса}   ------{Функция Оптимального вычисления арксинуса}   ------   ------   ------   - [Geometric Functions]   ------   ------   ------   - [Physical calculations]   ------   ------   ------   - [Algorithms graphics]   ------   ------   ------   -[Cryptographic Algorithms]   ------   ------   ------   ------------------------------------------------------------------------------------------------------   Правила публикации:   1. Аккуратное оформление   2. Длинные алгоритмы заносим в spoiler   3. Очень длинные заливаем на надежные хостинги, но при этом в посте составляем качественное описание   4. Желательны скачки по прямым ссылкам 
 |  
| 
 | 
 |    |  
| Akyltist | Дата: Суббота, 19 Декабря 2009, 08:21 | Сообщение # 2 |  
 
заслуженный участник 
Сейчас нет на сайте 
 
 | Функция Оптимального вычисления арккосинуса 
   | 0000 |  { арккосинус [обозначение: arccos] ---------------------------------------} |      | 0001 |   function ArcCos( x:extended):extended;	assembler;  |            | 0007 |    |  mov |  ah,byte ptr [x+9] |    |             | 0014 |    |  db |  0CDh, 35h, 0e8h |  {1,x} |        | 0016 |    |  fmul |  st,st(2) |  {x**2,1,x} |        | 0018 |    |  fsqrt |    |  {sqrt(1-x**2),x} |          | 0022 |    |  mov |  ah,byte ptr [sw+1] |    |         | 0025 |    |  fxch |    |  {x,sqrt(1-x**2)} |        | 0027 |    |  shr |  al,1 |  { x был <0 ? } |         | 0030 |    |  db |  0CDh, 35h, 0eBh |  {Pi,arccos(abs(-x))} |       | 0031 |    |  fsubrp |  st(1),st |  {arccos(x)} |          | 0035 |    |  shr |  al,1 |  { x был <0 ? } |        | 0037 |    |  db |  0CDh, 35h, 0e8h |  {1,arctan(1/x)} |       | 0038 |    |  fchs |    |  {-1,arctan(1/x)} |        | 0040 |    |  db |  0CDh, 35h, 0eBh |  {Pi,-1,arctan(1/x)} |       | 0041 |    |  fscale |    |  {Pi/2,-1,arctan(1/x)} |       | 0042 |    |  fstp |  St(1) |  {Pi/2,arctan(1/x)} |        | 0044 |    |  fadd |    |  {arccos(x)=Pi/2-arctan(1/x)} |         | 0047 |    |  fsubrp |  st(1),st |  {arccos(x)=Pi/2-arctan(1/x)} |           дает прирост 30% производительностипо сравнению со стандартной от Borland   | t,mks c сопроцессором |  t,ms без сопра, но c эмулятором |        | extended |  double |  real |  single |  extended |  double |  real |  single |  TYPE |     | 409 |  406 |  572 |  413 |  19.3 |  20.1 |  20.1 |  20.0 |  NEW FUNC |     | 745 |  748 |  904 |  745 |  23.2 |  24.0 |  24.9 |  24.0 |  STANDART |     | 55% |  54% |  63% |  55% |  83% |  84% |  84% |  84% |  % compor. |     
 |  
| 
 | 
 |    |  
| Akyltist | Дата: Суббота, 19 Декабря 2009, 11:45 | Сообщение # 3 |  
 
заслуженный участник 
Сейчас нет на сайте 
 
 | Функция Оптимального вычисления арксинуса     | 0000 |  { арксинус [обозначение: arcsin] -----------------------------------------} |        | 0001 |   function ArcSin( x:extended):extended;	assembler;  |             | 0007 |    |  mov |  ah,byte ptr [x+9] |    |         | 0009 |    |  jnc |  [color=red]@plus |    |            | 0014 |    |  db |  0CDh, 35h, 0e8h |  {1,x} |         | 0016 |    |  fmul |  st,st(2) |  {x**2,1,x} |         | 0018 |    |  fsqrt |    |  {sqrt(1-x**2),x} |           | 0022 |    |  mov |  ah,byte ptr [sw+1] |    |           | 0026 |    |  fpatan |    |  {arctan(1/x)} |         | 0028 |    |  db |  0CDh, 35h, 0e8h |  {1,arctan(1/x)} |        | 0029 |    |  fchs |    |  {-1,arctan(1/x)} |         | 0030 |    |  db |  0CDh, 35h, 0eBh |  {Pi,-1,arctan(1/x)} |        | 0031 |    |  fscale |    |  {Pi/2,-1,arctan(1/x)} |        | 0032 |    |  fstp |  St(1) |  {Pi/2,arctan(1/x)} |        | 0033 |    |  fsubrp |  st(1),st |  {Pi/2-arctan(1/x)} |            | 0038 |    |  shr |  al,1 |  { arctan(x):=-arctan(-x) } |             дает прирост 30% производительностипо сравнению со стандартной от Borland   | t,mks c сопроцессором |  t,ms без сопра, но c эмулятором |        | extended |  double |  real |  single |  extended |  double |  real |  single |  TYPE |     | 382 |  395 |  562 |  392 |  19.3 |  20.1 |  21.0 |  20.0 |  NEW FUNC |     | 706 |  708 |  876 |  706 |  23.2 |  24.0 |  24.9 |  24.0 |  STANDART |     | 54% |  56% |  64% |  55% |  83% |  84% |  84% |  84% |  % compor. |     
 |  
| 
 | 
 |    |     
		
		 
 |