Pull to refresh
-1
0

User

А мне как-то все равно, я не в том возрасте, умный услышит, глупый не поймет, хоть и «в принципе неплохой людЪ». Тем более на Хабре в основном подростки и я просто тупо хочу донести до них информацию.
Файл Вы открыли тот, какой поменьше?
Код не мой, его один немец набирал, беря из моего, и чисто для отладки. Он любит отступ 4, а я в два пробела. Точнее ему было лень перенастраивать редактор. Он и дал название, поскольку этот пакет рассчитан на вычисления с динамическими структурами и на вычисления, которые длятся неделями утечки памяти очень важны, а у него была машина с 128 гигов примерно в 2004 году и было интересно это проверить.
Я как-то писал на Хабре про «сборку мусора» на C++, потом удалил из-за срача людей, которым прочитали лекции по азам программирования и они потом возомнили себя специалистами.
Утро. Тестостерона много, решил померится яйцами, если они конечно есть у присутствующих.
Я по молодости писал на Lisp, точнее на SLisp и RLisp (у него есть даже поддержка ООП).
У меня есть модуль в стандартной поставки Reduce.
Потом на C++ с Qt2, Qt3, если нужно GUI. Например у меня имеется эффективная реализация длинной арифметике на C++. В 1998 делала стандартный GMP 1.2
С 2005 полюбил Python (третий не нравится), PyQt4 (сейчас PySide).
Я например решил задачу сменно-суточного планирования для РЖД (до меня 30 лет ее 13 ВЦ по дороге не могли решить).
В 2001 решил задачу составления расписания
http://www.interface.ru/home.asp?artId=29844
http://www.norcom.ru/habrahabr/post/148232
Итого: не смотря мои коды, Вы просто тупо льете воду. Я знаю примерно за 40 языков
Вот ссылка на мою документацию по моей старой программе (больше 1000 страниц).
http://invo.jinr.ru/ginv/developer_ru/index.html

А перфокарты отлично служат пепельницами (я правда никогда не курил), тарелками и т.д.
За слово товарищ спасибо.
Я жаворонок, а тут Вы. Я написал, что думаю, но получилось хамство, и не к Вам, а к нашему министру образования. Удалил.

Или у них нет шансов, как у и председателя центробанка. Но мы, чисто теоретически можем их простить? Или нет ТОВАРИЩ Иосиф Виссарионович?

Еще раз если Вы профи? отвечайте профессионально? Сколько «правилЪных» программ Ви напЫсали?
Отзовите своих дебилов. Или разговора не будет.
До завтра.
А я Вас. У меня код несколько тысяч строк, Вы привели одну, и при этом не ответили к чему и почему.

Я за свою жизнь перечитал сотни тысяч чужого кода, иль больше, главное можно этой библиотекой пользоваться ли нет.

Язык, стиль или принцип программирования для меня не имеет значения. А как для статического анализа?
Ребята посмотрите исходники!
А пусть Андрей2008 думает как и что сравнить!
Все в пределах правил. Там работает полиморфизм, а возвращение const УКАЗАТЕЛЯ для const класса их программы это вообще взрыв мозга.
Пока.
Я же Вам про это и писал. Вы что, C++ незнаете. Просмотрите пред историю,
что и откуда получается.
Статика это бред при сложной логике.
Про троллей что кликали, за свои слова надо отвечать. Кнопку-то нажать легко, а где мозг?
Ваш статический стиль не имеет никакого отношения к профессиональному программированию.
Проверьте меня
http://invo.jinr.ru/ginv/index.html
исходники, доки и руководство на русском и чужом английском присутствуют.
Не менялось примерно с 2007, и это не гордость, это просто.
Просто люблю профи.
А мне все равно. При этом я остался механиком и математиком.
Когда-то, примерно в 1998 году у меня была реализация длинной арифметики на C++. По скорости она в 2-3 раза делала на тот момент GMP. Сейчас я пользуюсь GMP и не заморачиваюсь с ассемблером под конкретный процессор.

И так, идея реализации с минимальным использованием ассемблера. Цифра везде машинное слово, а типы C++ зависят от конкретной архитектуры. Кстати для организации всяких сдвигов нужно знать где расположен значащий бит в начале или в конце машинного слова

struct LongInt {
int mAlloc; \\ размер выделенной памяти
int mSize; \\ abs(mSize) текущий размер числа и sign(mSize) его знак
unsigned int* mLimb; \\ массив цифр
};

unsgned int a, b;
если a+b < a, то произошло переполнение и единичку должны перенести, a+b при этом правильный результат для младшей цифры
если a-b > a, то произошло переполнение и единичку должны занять, a-b при этом правильный результат для младшей цифры

Ассемблер нужен для двузначного умножения и деления. Поскольку с 60-х архитектура большинства процессоров поддерживала создание длинной арифметики (вспомните хотя бы lisp)

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

при делении задается две цифры делимого и цифра делителя, в результате цифра частного и цифра остатка

Как выглядит все на разных ассемблерах можно посмотреть в gmplib.org в исходниках в папке mpn. В ней mpn\generic без ассемблера.

1. Статья содержит реализацию, значит нужно было вместо основания выбрать не 10 или 100, а 2^k.
И к выбирается обычно таким, чтобы 2^k умещалось в точности в машинное слово.

2. Нужно было привести другие формулы разложения чисел для перемножения для A=A_1 + 2^k A_2, B=B_1 + 2^k B_2
Ваше
A B= A_1 B_1 + 2^k ((A_1 + A_2)(B_1 + B_2) — (A_1 B_1 + A_2 B_2)) + 2^(2k) A_2 B_2

Используется в gmplib.org
A B= A_1 B_1 — 2^k ((A_1 — A_2)(B_1 — B_2) — (A_1 B_1 + A_2 B_2)) + 2^(2k) A_2 B_2

Еще умножение можно заменить возведением в квадрат с той же сложностью.

3. Метод Карацубы начинает выигрывать у обычного умножения на современных компьютерах при размере чисел равных 8 машинным словам. Но это зависит от реализации и конкретного компа.

4. Если разбивать число сразу на r — частей (метод умножения Toom–Cook), то сложность можно довести до O(n^(1+eps)).

5. Самый быстрый метод умножения Шёнхаге — Штрассена основанный на быстром преобразование Фурье имеет сложность O(n log(n) log(log(n))). Фактически его асимптотическая сложность совпадает со сложением и вычитанием.

6. Деление можно заменить умножением на обратный (его для точной арифметики получают алгоритмом основанным на методе Ньютона для приближенного решения нелинейных уравнений) и тогда асимптотическая сложность деления равна сложности умножения.
SciPy + Cython для повышения производительности. Быстрая и качественная разработка+легкая оптимизация без сильного переписывания кода. PySide для интерфейса. Если Вы считаете. что лучше использовать монстры Matlab и .NET., то это Ваши проблемы.

И главное, если у вас проблема с плавающий точкой, не забывайте, что арифметические операции +, * коммутативны, но не ассоциативны. В этом весь корень проблем.
Автор не написал самое главное. Но это не его вина. Практически все про это не пишут.
Самое сложное и нетривиальное (в отличие от самого алгоритма) это правильно выбрать генетический код.

1. Генетический код не обязан представлять решение задачи. Из него достаточно просто (относительно объема вычислений) должно строится решение и желательно, но не обязательно, однозначно.

2. Кроссовер на генетическом коде должен должен давать решение близкое, в смысле требуемого экстремума, к решениям построенным для его родителей.

В качестве примера избитая задача коммивояжера. Те, кто выбирают в качестве кода порядок обхода городов глубоко не правы, поскольку такой генетический код не удовлетворяет 2 пункту ни в коем разе.
Вы ответили стереотипом, свои то мысли присутствуют?
Я лично никого, и себя в частности не повторяю.
Пусть плохо, русский не родной, но зато моЁ.

Вашим друзьям привет!
PS. Я рад, что «другие» меня не понимают и я думаю для меня это счастье. Просто, когда человек (homo sapiens) думает он потребляет от 20% до 50% всей энергии тела 2% от массы тела. Если у Вас затылок не потеет, Вам повезло!
PS1. Свет это энергия!
PS2. Я не знаю, что такое «ПС», расшифруйте пожалуйста!
Ваша шутка юмора мне не совсем понятна.
Как, там, в преферансе, молокосос он и в Африке молокосос.
Вдобавок, как в Африке, все время без света!
Все это конечно хорошо и выполнена просто огромная работа, но тут есть подводные камни.

1. Кто профессионально работает с системами компьютерной алгебры, в основной массе, очень не любят навороченный и чрезмерно перегруженный интерфейс.
2. Здесь каких-то только систем нет. Значит надо делать для каждой свою документацию по пользованию. Там одно оглавление будет на несколько сотен страниц, да и поиск будет давать на конкретный вопрос опять несколько сотен ссылок. В результате, проще залезть в документацию первоначального продукта, например в GSL (GNU Scientific Library), и по ней все сделать. Я на конференции задавал одному из (восторженных) разработчиков этот вопрос, но вразумительного ответа не получил.

Сам, поскольку мне нравится Python, пытался пользоваться лет 7 назад, даже студентам на практике задачи давал на Sage, но мне кажется проще считать на wxMaxima, SymPy и SciPy, чем пользовать этого монстра. Вдобавок написать на Python конвертер из одного формата данных в другой для своей конкретной задачи достаточно просто и работать он будет на специализированных данных гораздо быстрее.

А так, Ваша мечта, мне нравится.
Прежде, чем бред нести, зайдите в мой профиль и почитайте мои комментарии.
Я не ленивый и в Ваш зашел, их у Вас в 7 раз больше и типичный флуд.
Я всем знакомым домой ставлю Linux. Он у них живет, в плену иллюзий практически десятилетиями, что можно все и никто мне не морочит мне голову. что можно или нельзя открыть, все кодеки поют и играют фильмы, а максимум пользователь может только удалить свои личные файлы. Пароль помню только я. Они сразу теряют с ним бумажку или его забывают.

А так, создали проблему на ровном месте. Моей программой по составлению расписаний в вузах многие пользуются, исходники потеряны под XP в 2001. Почта их не отправляет, выкладка на сайт не помогает, google и yandex диск не принимает, только через dropbox пока получается.

Резюме. Если не можем решить основную проблему, то давайте искать пуговицу от пиджака и при этом желающих помочь (особенно за деньги) будет великое множество.
Maple система неплохая, правда, как перешли на новый интерфейс я в адрес разработчиков слышал много добрых слов. В целях экономии, говорят, нанимают писать программы студентов и это может хорошо для студентов, но качество продукта страдает.
А так, это можно было проделать и wxMaxima. Она бесплатна, написана на Lisp (значит намного быстрее систем компьютерной алгебры написанных на C, вот такой парадокс) и имеет приятный интерфейс. Сейчас переживает второе рождение.

Information

Rating
Does not participate
Location
Михайловка, Волгоградская обл., Россия
Date of birth
Registered
Activity