2010-01-29 8 views
2

У меня есть несколько сложных уравнений, которые я бы хотел оценить с помощью Maxima.Решение уравнений с использованием операций бит-сдвигов в Maxima

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

Я пробовал использовать load(functs), нет спасибо.

ответ

2

Используя пакет numicalio, Maxima может считывать двоичные данные из потоков и файлов по 8-битным границам и устанавливать желаемый порядок байтов для чтения. Numicalio поставляется с предварительно скомпилированной версией Windows.

Так если вы имеете дело с по крайней мере 16-битных регистров, и вы хотите разделить регистры на 8-битных границ, то функция

read_binary_array (S, A), 

может быть то, что вы ищете, где S - источник данных, а A - массив (пункт назначения).

Есть также варианты и вспомогательные функции, которые вы можете рассмотреть /, возможно, потребуется:

read_binary_list() 
openr_binary() /* for reading in from a file */ 

assume_external_byte_order() /* default action is msb first */ 

Это самый вариант направления.

В вашем вопросе не так много дополнительных данных, поэтому рассмотрим еще два пути.

Если вам требуется больше возможностей для предварительной обработки, чем у Maxima, имеющего числовое значение, вы можете рассмотреть возможность создания короткого трубопровода, выполняющего предварительную обработку на некотором другом языке, который быстр и имеет гибкость на низком уровне (Ruby это хорошо, как и другие языки сценариев), а затем прочитайте очищенный файл в Maxima, используя пакет, описанный выше.

Наконец, эти более атипичные попытки обычно ударяют о какую-то стену, прежде чем все изломы будут обработаны.

Если это произойдет, я рекомендую использовать Maxima mailing list. Я нашел, что это очень отзывчивое, экспертное сообщество, которое может помочь вам не только в пробке, но и повысит уровень вашего мастерства и ваше знакомство с «естественным» стилем программирования Maxima. Это было очень полезно в некоторых из моих работ.

(дополнительные ресурсы в Maxima, в том числе в листке Ready Reference Чит см Resources: Maxima for Symbolic Computation)

Cheers,