Форум программистов, компьютерный форум CyberForum.ru

Ошибка error C3861: erfc: идентификатор не найден - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Регулярные выражения (regex) http://www.cyberforum.ru/cpp-beginners/thread809106.html
Нужно извлечь строку из переменной класса smatch. Пробовал через преобразование string(smatch_var) и через потоки, и во всех способах оказывается задействована функция str(). Вот текст тестовой программы: #include <regex> using namespace std; int main() { smatch m; if(regex_search(string("asssdf"),m,regex("sss"))) { m.str(); //<------ ошибка }
C++ всеми любимые структуры /*Написать программу, которая выполняет следующие действия: • вводит с клавиатуры данные в массив, состоящий из десяти структур; записи должны быть размещены по алфавиту; • выводит на дисплей фамилии работников, чей стаж работы в организации превышает значение, введенное с клавиатуры; • если таких работников нет, вывести на дисплей соответствующее сообщение.*/ #include <iostream> using... http://www.cyberforum.ru/cpp-beginners/thread809096.html
Массив: Посчитать количество элементов массива, равных последнему C++
В одномерном массиве Y, состоящем из N целых элементов, вычислить: a) количество элементов, равных последнему элементу массива; b) среднее арифметическое элементов, кратных 3.
C++ Работа с матрицами. В центре каждого квадрата поместить сумму остальных элементов квадрата
Заполнить матрицу случайными числами. Разбить матрицу на квадраты размером 3х3. В центре каждого квадрата поместить сумму остальных элементов квадрата.
C++ Заполнить секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей ЛП, от левого верхнего угла вправо - вниз http://www.cyberforum.ru/cpp-beginners/thread809081.html
Заполнить секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей ЛП, от левого верхнего угла вправо - вниз. Остаток матрицы заполнить нулями.
C++ Простые числа, используем циклы Надеюсь кто-то поможет составить программу, а то я уже на листике считал для проверки)) исписал маленьким шрифтам весь лист А4):wall: Условия задачи такое: Определить количество простых чисел, попадающих в диапазон допустимых значений типа unsigned short int. Кто решиться углубиться в этом вопросе, да и проверить себя, то еще было бы неплохо еслиб выводился номер простого числа и само его... подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
15.03.2013, 10:13     Ошибка error C3861: erfc: идентификатор не найден
MS не стали реализовывать не стандартную, как они считают, функцию.
Судя по http://msdn.microsoft.com/en-us/library/hh308292.aspx функция есть в amp_math.h.

Ну или вот код с какого-то форума.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
static const double rel_error= 1E-12;        //calculate 12 significant figures
//you can adjust rel_error to trade off between accuracy and speed
//but don't ask for > 15 figures (assuming usual 52 bit mantissa in a double)
 
double erfc(double x)
//erfc(x) = 2/sqrt(pi)*integral(exp(-t^2),t,x,inf)
//        = exp(-x^2)/sqrt(pi) * [1/x+ (1/2)/x+ (2/2)/x+ (3/2)/x+ (4/2)/x+ ...]
//        = 1-erf(x)
//expression inside [] is a continued fraction so '+' means add to denominator only
{
    static const double one_sqrtpi=  0.564189583547756287;        // 1/sqrt(pi)
    if (fabs(x) < 2.2) {
        return 1.0 - erf(x);        //use series when fabs(x) < 2.2
    }
    if (signbit(x)) {               //continued fraction only valid for x>0
        return 2.0 - erfc(-x);
    }
    double a=1, b=x;                //last two convergent numerators
    double c=x, d=x*x+0.5;          //last two convergent denominators
    double q1, q2= b/d;             //last two convergents (a/c and b/d)
    double n= 1.0, t;
    do {
        t= a*n+b*x;
        a= b;
        b= t;
        t= c*n+d*x;
        c= d;
        d= t;
        n+= 0.5;
        q1= q2;
        q2= b/d;
      } while (fabs(q1-q2)/q2 > rel_error);
    return one_sqrtpi*exp(-x*x)*q2;
}
 
Текущее время: 21:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru