В случае «сломается» и усложнения да. Но к sqlite'у есть множество клиентов на любой «вкус и цвет». А для отлова «логических» ошибок копаться в гигабайтном текстовом логе, или паре сотен лог-файлов, или запускать полноценную бд, мне кажется перебором во многих случаях. В моём так точно.
1С — ERP? Не смешите мои тапочки. А когда MySQL прикрутят?
«нашей бухгатлерии» — опять свой «особый» путь. Знаю я что такое «наша бухгатлерия»: стоит дать пару раз каким-нибудь толстым руководством чего-нибудь вроде Excel по башке, тут же оно превращается в ERP. В общем у меня накипело, не будем дальше.
>> быть де-факто бухгалтерским стандартом.
Это очень печально. Это даже хуже чем с виндой. MS хоть партнёрам даёт свой код. А эти… закрытое проприетарное, недостаточно (по-моему) документированное… ну дальше продолжите сами.
Я достаточно основательно изучил пародию на ВижалВасик от 1С, чтобы так говорить. Остальные аспекты 1С меня не колышат. При серьёзном подходе без «допиливания» нельзя использовать даже типовые конфигурации, не говоря уже о «самоделках». Решения для бизнеса с пародией ВижалВасика, нет спасибо, без меня (кому-то это возможно и к радости будет).
Буду считать 1С убогим г., пока они не прикрутят нормальные скриптовые языки, ну хотя бы javascript. Где есть javascript: mozilla rhino, браузеры, собственно на java можно заюзать, windows scripting, но только не на 1С, уг.
При введении «бесконечно малого числа», ничего не обнуляется и не отбрасывается, так только с пределами так можно, и то не всегда. Например, как в дискретке с производящими ф., берём соответствующий коэффициент ряда при разложении. А «порядок малости» рассматривается как и для обычных чисел меньших единицы: d^n больше d^(n+1) — и всё. Также получается конкретная алгебраическая структура с прикольным числами z1=x1+y1*d, z2=x1+y1*d^2,… и z1>z2, ну и т.д. Просто чуть другим «языком» получается почти «дословно» матан, что не так круто, как «вообще другая» алгебра, по-моему.
В том что это эмпирический метод, который срабатывает только для первой производной и всё. Его нельзя использовать для вычисления, например, второй производной по формуле f(x+d) = f(x) + f'(x)*d + f''(x)*(1/2)*d^2, нежно считать d^2 «невычислимой», а у вас d^2=0. Ни проще ли использовать общий метод с набором коэффициентов, а не вводить для вычисления n-ой производной n разных мегачисел.
Т.е. по аналогии с комплексными числами, кватернионами и т.д. Ввести числа компоненты которых будут соответствующими коэффициентами разложения Тейлора (Как в моем комменте выше). И определить для них операции (как в посте). При реализации используем свойство/определение производных f(n)(x) = (f(n-1)(x))', и реализуем операции для первой производной, а остальные определяем через неё рекурсивно. Т.е. так как у вас и сделано, но без эмпирических примочек, которые в общем неверны.
«нашей бухгатлерии» — опять свой «особый» путь. Знаю я что такое «наша бухгатлерия»: стоит дать пару раз каким-нибудь толстым руководством чего-нибудь вроде Excel по башке, тут же оно превращается в ERP. В общем у меня накипело, не будем дальше.
Это очень печально. Это даже хуже чем с виндой. MS хоть партнёрам даёт свой код. А эти… закрытое проприетарное, недостаточно (по-моему) документированное… ну дальше продолжите сами.
ekzo: и карма поползла вниз.
max7: я ему тоже симпатизирую.
max7: карма — детский сад.
А как с оптимизацией. Вот напишу я:
f(a: Dual): Dual { a*a+3.0/a }
f(a: double): double { f(Dual(a,0)).Real }
df(a: double): double { f(Dual(a,1)).Imaginary }
он мне при компиляции сократит до df(a: double): double { 2*a-3.0/(a^2) }?
Так, ну и кто мне минус влепил, а, признаёмся!!!
Т.е. по аналогии с комплексными числами, кватернионами и т.д. Ввести числа компоненты которых будут соответствующими коэффициентами разложения Тейлора (Как в моем комменте выше). И определить для них операции (как в посте). При реализации используем свойство/определение производных f(n)(x) = (f(n-1)(x))', и реализуем операции для первой производной, а остальные определяем через неё рекурсивно. Т.е. так как у вас и сделано, но без эмпирических примочек, которые в общем неверны.
И меня смущает деление, не проще ли написать:
Dual(a.real/b.real, ((a.imaginary*b.real)-(b.imaginary*a.real))/(b.real*b.real)).
И i^2 = -1, i^3=-i и можно «считать дальше», а d^2=0, d^3=0,...,d^n=0 и «облом дальше», вот.