среда, 9 декабря 2009 г.

Подбор

Была такая довольно мирная песенка I was made for loving you baby группы Kiss, которую Scooter переделал в какой-то шум со своим фирменным Eeeee!

Соло из это песенки оказалось весьма примитивным (не сверялся, правда, с инетовскими подборами, но звучит правдоподобно):

E F# G A B B G А F#
I was made for loving you, baby,

E F# G A B B G
You were made for loving me ...

Mixed-language programming

Мне, это, кажется в ближайшее время не понадобится, но:

вот хорошая статья про создание прог на нескольких языках. Кратко:

программерам численных методов нужно, обычно, взаимодействие C-Fortran. Т.е. из проги, написанной на одном из этих языков, надо вызвать подпрограмму на другом. Как назло, эти языки отличаются в плане обращения с подпрограммами весьма сильно, что необходимо учитывать:

1. Соглашение о вызовах. В Fortran параметры очищаются из стека вызываемой функцией. В С - вызывающей прогой. Плюс аргументы запихиваются в стек в разном порядке: в С - начиная с последнего, в Fortran - с первого.

Неудобно, короче. Но в С есть возможность организовать вызов функции и так и так: с помощью _cdecl - по-сишному, с помощью _stdcall - по-фортрановски.

2.Передача параметров. В Fortran - по ссылке.

3. Передача строк. !!. Строка в С заканчивается \0. А в Fortran - нет, вместо этого в функцию неявно передается длина строки.

4. Массивы в Си нумеруются с 0, в Фортране - с 1. Матрицы (2-мер массивы) в Си хранятся по строкам, в Fortran - по столбцам.

Помянутая статья помогает разобраться с 1-3. С п.4 можно справиться своими силами.

понедельник, 9 ноября 2009 г.

Формат A4

Формат бумаги А4 в разных единица измерения:
в мм: 210 x 297
в дюймах(inches, in, "):8.26 x 11.69
в точках (points, pts):595.28 x 841.89

понедельник, 26 октября 2009 г.

Subversion на русском

Отличный перевод SVN-book на русский находится здесь .

Русскоязычные термины немного путают (если уже прочитал английскую версию документации), поэтому вот краткий пацакско - чатланский словарь:

фиксация, она же публикация - check in (результат команды commit)
правка, она же ревизия - revision
создание рабочей копии - checkout
обновление рабочей копии - update (т.е., если мы подозреваем, что после получения нами рабочей копии в хранилище были опубликованы изменения, можно обновить нашу рабочую копию)
метка - tag, снимок с последней ревизии. Можно сказать, что это помеченная ревизия. В SVN отличия между тэгом и бранчем почти нет.

пятница, 23 октября 2009 г.

Sparse Matrix Converters

Если по-русски - конвертеры между разными форматами хранения разреженных матриц. [По-английски короче, поэтому и заголовок на английском.]

Форматов существует несколько, поэтому проблема конвертации весьма остра.


Итак.

1. Существует набор пакетов на Питоне для учОных и инженеров - SciPy Packages. Один из этих пакетов имеет говорящее название Sparse. Причем он умеет работать аж с семью (!) форматами. Но - эхххх - на Питоне...


2. BeBOP sparse matrix converter. Конвертирует Harwell-Boeing в Matrix Market и наоборот.


3. Система R тоже умеет работать с несколькими sparse matrix - форматами. Help есть здесь.





понедельник, 19 октября 2009 г.

Torrent

Путевое описание работы Торрента нашел в совершенно неожиданном месте - на фан-сайте Спартака:)

Вкратце идея такая - сервер при скачивании выдает клиентам файл кусочками. Клиенты качают эти кусочки не только с самого сервера (как на FTP, например), но и друг у друга. Благодаря этому скорость скачивания (теоретически) должна быть большой. Реально - все не так шоколадно.

пятница, 16 октября 2009 г.

Линковка программ gfortran

Если компилируем программу (несколько файлов .f) gfortran-oм, то при сборке стандартным линкером ld можем получить ошибки:
undefined reference "_gfortran_st_write"
и тому подобное.

Как я понял из интернета, причина состоит в том, что gfortran использует какие-то свои библиотеки. Поэтому надо использовать в качестве линкера (лоадера) сам gfortran