Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 6
1

Посчитать количесвто операций сложения,вычитания, умножения, сранвения при расчете экспоненты

19.06.2013, 22:54. Просмотров 1523. Ответов 11
Метки нет (Все метки)

По поводу экспаненты. Стоит задача посчитать количесвто операций сложения,вычитания, умножения, сранвения при расчете экспаненты. Это реально вообще?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2013, 22:54
Ответы с готовыми решениями:

Выполнение операций сложения, вычитания и умножения матриц
Нужно создать программу для экзамена! Задание: Напишите программу, выполняющую операции...

Определить количество операций сложения, вычитания и умножения в выражении
Помогите пожалуйста решить задачу по программированию в ТР7 Определить общее колличество...

Перегрузка операций сложения/умножения вычитания 16-ричных чисел
Выполнить перезагрузку перечисленных операций, закрепив за ними соответствующий функциональный...

Класс для выполнения операций сложения, вычитания и умножения комплексных чисел
Условие: Составить описание класса для представления комплексных чисел. Обеспечить выполнение...

__________________
11
Ушел с форума
Автор FAQ
14184 / 7067 / 833
Регистрация: 11.11.2010
Сообщений: 12,677
20.06.2013, 03:35 2
Ivan19,
эта вааще нереально
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,050
20.06.2013, 09:07 3
Ivan19, если самому считать, то - да, наверное
0
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 6
20.06.2013, 17:12  [ТС] 4
А почему нельзя?) Я вообще не разбираюсь в АСМ, но вроде бы есть код - исходник для вычисления экспаненты.

Assembler
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
;[]-----------------------------------------------------------------[]
;|   EXP.ASM -- exponential function                                 |
;[]-----------------------------------------------------------------[]
 
;
;       C/C++ Run Time Library - Version 11.0
; 
;       Copyright (c) 1991, 2002 by Borland Software Corporation
;       All Rights Reserved.
; 
 
; $Revision: 9.3 $
 
;----------------------------------------------------------------------
; function(s)
;        exp - exponential function
;----------------------------------------------------------------------
 
        include RULES.ASI
        include _MATH.INC
 
;       Segments Definitions
 
Header@
 
;----------------------------------------------------------------------
; External and local variables
 
Data_Seg@
 
ExtSym@     _huge_dble, qword, cdecl
HUGE_VAL    equ _huge_dble@
 
ifdef MASM
zero        dw  0,0,0,0          ; was dq 0.0, but NT MASM386 blows up
else
zero        dq  0.0
endif
 
Data_EndS@
 
;--------------------------------------------------------------------------
;
;Name            exp - exponential function
;
;Usage           double exp(double x);
;
;Prototype in    math.h
;
;Description     exp calculates the exponent of x. For large exponents
;                (magnitude greater than or equal to 709) the result will be
;                an overflow to infinity or an underflow to zero.
;
;
;Return value    exp returns the exponent of x.  For large exponents
;                (magnitude greater than or equal to 709) the result will be
;                an overflow to infinity or an underflow to zero.
;
;--------------------------------------------------------------------------
 
Code_Seg@
 
Func@   exp, _EXPFUNC, _RTLENTRY, <double x>
 
        Link@   ebx
 
        FLD     x.double
        mov     ax, 7FFFh
        and     ax, x [6]       ; select exponent and most signif. bits
        cmp     ax, 4086h
        jnb     exp_tooBig      ; exp (+-709) is the limit for double
 
exp_justFits:
 
        f87     Exp
exp_end:
        Unlink@ ebx
        Return@
 
exp_tooBig:
        mov     ax, 0FFFFh      ; force extreme
        ja      exp_excess
        mov     ax, x [4]
 
exp_excess:
        test    BY0 (x [7]), 80h
        jnz     exp_tooTiny
        cmp     ax, 02E42h
        jb      exp_justFits
        mov     edx, OVERFLOW
        mov     ecx, offset FLAT: HUGE_VAL
        jmp     short   exp_err
 
exp_tooTiny:
        cmp     ax, 0232Bh
        jb      exp_justFits
        mov     edx, UNDERFLOW
        mov     ecx, offset FLAT: zero
 
exp_err:
        FSTP    ST(0)           ; discard ST
 
;       return  __matherr (_EDX, "exp", &x, NULL,
;                          (UNDERFLOW == _EDX) ? 0.0 : HUGE_VAL);
 
        matherr edx, exp, x, NULL, [ecx]
        jmp     short exp_end
 
EndFunc@ exp
 
Code_EndS@
 
        end
К примеру, строка 70

cmp ax, 4086h это сравнение

Значит минимум одно сранвение используется для вычисления экспаненты.

Или я не атк все понимаю?


Вот почему заморачиваюсь... Есть алгоритм номер 1, использующий только + и *. А есть второй алгоритм, использующий функцию экспаненты. Нужно количественно показать, что первый алгоритм гараздо проще, чем второй, использующий экспоненту.

Если так в лоб нельзя посчитать, как бы Вы давали количественную оценку для сравнения двух алгоритмов, один из которых использует exp()?
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,050
20.06.2013, 17:13 5
Ivan19, можно количество тактов измерить и дать по количеству тактов оценку работы обоих алгоритмов.
0
4076 / 1791 / 210
Регистрация: 06.10.2010
Сообщений: 4,001
21.06.2013, 13:47 6
Если exp(x)=ex (где e - число Эйлера), то для целого x количество умножений подсчитывается поформуле из этого поста.
0
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 6
21.06.2013, 19:01  [ТС] 7
Степнеь экспаненты в общем случае может быть не целой
0
Эксперт быдлокодинга
2085 / 519 / 68
Регистрация: 04.11.2010
Сообщений: 1,293
22.06.2013, 10:30 8
А почему в лоб нельзя решить? Можно ведь после каждого + и * поставить инкриминирование переменной отвечающей за подсчёт конкретного действия. Или я не о том?
0
Ушел с форума
Автор FAQ
14184 / 7067 / 833
Регистрация: 11.11.2010
Сообщений: 12,677
22.06.2013, 11:00 9
Полный 30h,
add (fadd), sub (fsub), cmp (fcom) можно посчитать еще на этапе написания программы, но текста программы нет, что я должен подсчитывать? При этом еще подразумевается сравнение минимум двух программ, рассчитывающих экспоненту, причем
Цитата Сообщение от Ivan19 Посмотреть сообщение
Степень экспоненты в общем случае может быть не целой
И Ivan19 надеется, что программы будут писать за него?
0
Эксперт быдлокодинга
2085 / 519 / 68
Регистрация: 04.11.2010
Сообщений: 1,293
22.06.2013, 11:42 10
Цитата Сообщение от Mikl___ Посмотреть сообщение
Степень экспоненты в общем случае может быть не целой
Как я для себя понимаю поставленную перед Ivan19 задачу, вычисление чего либо не так важно, важно пойти двумя путями к одному результату при этом важно посчитать затраты на оба пути.
И он лишь спрашивает каким из способов эти затраты посчитать. К примеру считать команды в исходниках дело конечно надёжное, но ветвления и циклы могут превратить этот способ в дело всей его жизни, тем более если необходимо будет проверять "затраты" не единожды на различных исходных данных.
Если свести поставленную задачу к двум словам, то перед ним стоит задача "сравнить эффективность двух алгоритмов". Хотя, судя по тому что
Цитата Сообщение от Ivan19 Посмотреть сообщение
Я вообще не разбираюсь в АСМ, но вроде бы есть код
это очередная завуалированная попытка ПНК "Помогите Написать Курсовую"
0
Ушел с форума
Автор FAQ
14184 / 7067 / 833
Регистрация: 11.11.2010
Сообщений: 12,677
22.06.2013, 11:47 11
Цитата Сообщение от Полный 30h Посмотреть сообщение
важно пойти двумя путями к одному результату при этом важно посчитать затраты на оба пути.
Полный 30h,
только я этих путей у ТС не вижу
0
sh2ezo
23.06.2013, 10:58     Посчитать количесвто операций сложения,вычитания, умножения, сранвения при расчете экспоненты
  #12

Не по теме:

Тут один путь: Идти учиться на дворника.

0
23.06.2013, 10:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2013, 10:58
Привет! Вот еще темы с ответами:

Выполнение операций сложения, вычитания и умножения над матрицами целых чисел
Вобщем нужно разработать проект, который обеспечивает выполнение операций сложения, вычитания и...

Выполнение операций сложения, вычитания и умножения над матрицами целых чисел
Нужно разработать прогу, которая обеспечивает выполнение операций сложения, вычитания и умножения...

Вычислить значение выражения, используя не более восьми операций умножения, сложения и вычитания
Даны целые числа x и y. Программа, используя только операции умножения, сложения и вычитания,...

Реализовать алгоритм умножения 2 целых чисел с использованием только операций сложения и вычитания
Доброго времени суток, необходимо реализовать алгоритм умножения 2 целых чисел с использованием...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.