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

Реализация математических функций - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Посчитать значение следующего математического выражения, x вводится с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread990745.html
Не знаю, что еще добавить, чтобы норм работало.
C++ Блок-схема! Всем здраствуйте, кому не сложно, пожайлуста помогите сделать схему алгортима (блок-схему). Вот задание "Найти произведение элементов , которые больше за первый элемент массива" Вот код: #include<stdio.h> #include<conio.h> intresult(intmas, intsize) { int proiz=1; intelement; for (int I=1; I<size; I++) { http://www.cyberforum.ru/cpp-beginners/thread990744.html
Создать массив C++
Создать массив с 9 действительных чисел и отсортировать его методом вставки,с спаданием.
While.if. И прочее. Задача C++
Вычислить кол-во случайных чисел, которые являются парными. Брать случайное число до тех пор, пока не встретится число 500. Вернуть кол-во парных и не парных чисел которые попадались до тех пор, пока не появилось число 500. QT Creator. C++.
C++ Постфиксный, инфиксный и префиксный обходы дерева http://www.cyberforum.ru/cpp-beginners/thread990714.html
помогите дописать/исправить код Построить и вывести на экран бинарное дерево следуйщего выражения: 9+8*(7+(6*(5+4)–(3–2))+1) написать функции постфиксного, инфиксного и префиксного обхода дерева и вывести соответствующие выражения на экран. есть наработки функций. код: #include <stdio.h> #include <conio.h> #include <iostream>
 

Показать сообщение отдельно
castaway
Эксперт С++
4842 / 2981 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
29.10.2013, 12:29     Реализация математических функций
fsqrt, fsin, fcos, fsincos (считает сразу и синус и косинус от одного значения), fabs, fmul st, st (возведение в квадрат), fpatan (atan2 из библиотеки Си) - это все можно реализовать через одну инструкцию, если не брать в расчёт fld, fst, fstp и другие инструкции загрузки и выгрузки значений.

Натуральный логарифм.
Кликните здесь для просмотра всего текста
Assembler
1
2
3
fldln2
fxch
fyl2x


Логарифм по основанию 2.
Кликните здесь для просмотра всего текста
Assembler
1
2
3
fld1
fxch
fyl2x


Логарифм по основанию 10.
Кликните здесь для просмотра всего текста
Assembler
1
2
3
fldlg2
fxch
fyl2x


А вот с возведением в степень дела обстоят интереснее.
Кликните здесь для просмотра всего текста
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
double my_pow( double x, double y ) {
    double r;
    short t1, t2;
    __asm__ __volatile__ (
        "fxch   \n"
        "ftst   \n"
        "fstsw  \n"
        "and    $0x40, %%ah\n"
        "jz     1f\n"
        "fstp   %%st(0)\n"
        "ftst   \n"
        "fstsw  \n"
        "fstp   %%st(0)\n"
        "and    $0x40, %%ah\n"
        "jnz    0f\n"
        "fldz   \n"
        "jmp    2f\n"
        "0:     \n"
        "fld1   \n"
        "jmp    2f\n"
        "1:     \n"
        "fstcw  %3\n"
        "fstcw  %4\n"
        "orw    $0xc00, %4\n"
        "fldcw  %4\n"
        "fld1   \n"
        "fxch   \n"
        "fyl2x  \n"
        "fmulp  \n"
        "fld    %%st(0)\n"
        "frndint    \n"
        "fxch   \n"
        "fsub   %%st(1), %%st(0)\n"
        "f2xm1  \n"
        "fld1   \n"
        "faddp  \n"
        "fxch   \n"
        "fld1   \n"
        "fscale \n"
        "fstp   %%st(1)\n"
        "fmulp  \n"
        "fldcw  %3\n"
        "2:"
        : "=t" (r)
        : "0" (y), "u" (x), "m" (t1), "m" (t2)
        : "st(1)", "st(7)", "%3", "%4", "ax" );
    return r;
}
 
Текущее время: 15:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru