Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2012, 17:22   #1
Medved.tolik
 
Регистрация: 28.12.2010
Сообщений: 9
По умолчанию Sin быстрее чем из math.h

ребят, вообщем мне задали написать программу которая считала синус быстрее чем из math.h ) скорость должна достигаться путем потери точности) Я вот написал код который(как я думаю должен быстрее работать) но на деле не вижу что он быстрее) подтолкните кто нить)
Код:
#include <iostream>
#include <conio.h>
#include <math.h>
#include <windows.h>
const int N=100000;
void main(void)
{int i;
  double x1,x2,y,z;
x1=1.0; x2=2.0-1.0e-10;// вот здесь я обрезаю точность до 10 знаков 
  y=(x2-x1)/N;
LARGE_INTEGER freq;
QueryPerformanceFrequency(&freq);

LARGE_INTEGER time1;
QueryPerformanceCounter(&time1);
for(i=0,z=x1;i<N;i++,z+=y)
   {
	  sin(z);
 }
LARGE_INTEGER time2;
QueryPerformanceCounter(&time2);
time2.QuadPart -= time1.QuadPart;
double span = (double) time2.QuadPart / freq.QuadPart; 
printf( "for sin time: %f seconds\n", span );
getch();
}

Последний раз редактировалось Stilet; 05.02.2012 в 18:34.
Medved.tolik вне форума Ответить с цитированием
Старый 03.02.2012, 17:31   #2
9i.
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 103
По умолчанию

может просто посчитать из ряда, с некоторым маленьким n(3-7)
9i. вне форума Ответить с цитированием
Старый 03.02.2012, 19:43   #3
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

http://programmersforum.ru/showthread.php?t=83826
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 05.02.2012, 18:23   #4
Medved.tolik
 
Регистрация: 28.12.2010
Сообщений: 9
По умолчанию

тогда помогите с табличны синусом) помогите додумать код
Код:
//// заголовочный файл
#pragma once
#define MAX_ANGLE 360
class GE_FastMath
{private:    
static double mCosTable[MAX_ANGLE];
static double mSinTable[MAX_ANGLE];public:    
static void Initialize();    
static double Cos(int iAngle) 
{ return mCosTable[iAngle]; }    
static double Sin(int iAngle) 
{ return mSinTable[iAngle]; }};
// cpp-файл
#include "StdAfx.h"
#define _USE_MATH_DEFINES
#include <math.h>
#include "GE_FastMath.h"
double GE_FastMath::mCosTable[MAX_ANGLE];
double GE_FastMath::mSinTable[MAX_ANGLE];
void GE_FastMath::Initialize(void)
{    for(int i = 0; i<MAX_ANGLE; i++)   
{        double lRadian = i * (M_PI / 180); 
       mCosTable[i] = cos(lRadian);       
mSinTable[i] = sin(lRadian);    }}

Последний раз редактировалось Stilet; 05.02.2012 в 18:37.
Medved.tolik вне форума Ответить с цитированием
Старый 05.02.2012, 18:39   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
которая считала синус быстрее чем из math.h
А если через Ассемблер сопроцессор задействовать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.02.2012, 18:40   #6
Medved.tolik
 
Регистрация: 28.12.2010
Сообщений: 9
По умолчанию

нее асм вставки нельзя использовать)
Medved.tolik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двигаю контрол мышкой, почему мышка перемещается быстрее чем контрол PaulRom Microsoft Office Access 0 06.12.2011 11:19
Вычисление суммы:sinx+sin(sinx)+sin(sin(sinx)) ..+..sin(..(sinx)) на дельфи Nach Помощь студентам 3 16.11.2011 10:05
Фикл фор заканчивается "как-то быстрее чем надо" Swool Общие вопросы C/C++ 12 07.10.2009 22:00
Помогите пожалуйста с лабами по делфи(чем быстрее, тем лучше) Vera_Valera Помощь студентам 1 06.06.2009 10:08