Была такая довольно мирная песенка 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 ...
среда, 9 декабря 2009 г.
Mixed-language programming
Мне, это, кажется в ближайшее время не понадобится, но:
вот хорошая статья про создание прог на нескольких языках. Кратко:
программерам численных методов нужно, обычно, взаимодействие C-Fortran. Т.е. из проги, написанной на одном из этих языков, надо вызвать подпрограмму на другом. Как назло, эти языки отличаются в плане обращения с подпрограммами весьма сильно, что необходимо учитывать:
1. Соглашение о вызовах. В Fortran параметры очищаются из стека вызываемой функцией. В С - вызывающей прогой. Плюс аргументы запихиваются в стек в разном порядке: в С - начиная с последнего, в Fortran - с первого.
Неудобно, короче. Но в С есть возможность организовать вызов функции и так и так: с помощью _cdecl - по-сишному, с помощью _stdcall - по-фортрановски.
2.Передача параметров. В Fortran - по ссылке.
3. Передача строк. !!. Строка в С заканчивается \0. А в Fortran - нет, вместо этого в функцию неявно передается длина строки.
4. Массивы в Си нумеруются с 0, в Фортране - с 1. Матрицы (2-мер массивы) в Си хранятся по строкам, в Fortran - по столбцам.
Помянутая статья помогает разобраться с 1-3. С п.4 можно справиться своими силами.
вот хорошая статья про создание прог на нескольких языках. Кратко:
программерам численных методов нужно, обычно, взаимодействие 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
в мм: 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 отличия между тэгом и бранчем почти нет.
Русскоязычные термины немного путают (если уже прочитал английскую версию документации), поэтому вот краткий пацакско - чатланский словарь:
фиксация, она же публикация - 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, например), но и друг у друга. Благодаря этому скорость скачивания (теоретически) должна быть большой. Реально - все не так шоколадно.
Вкратце идея такая - сервер при скачивании выдает клиентам файл кусочками. Клиенты качают эти кусочки не только с самого сервера (как на FTP, например), но и друг у друга. Благодаря этому скорость скачивания (теоретически) должна быть большой. Реально - все не так шоколадно.
пятница, 16 октября 2009 г.
Линковка программ gfortran
Если компилируем программу (несколько файлов .f) gfortran-oм, то при сборке стандартным линкером ld можем получить ошибки:
undefined reference "_gfortran_st_write"
и тому подобное.
Как я понял из интернета, причина состоит в том, что gfortran использует какие-то свои библиотеки. Поэтому надо использовать в качестве линкера (лоадера) сам gfortran
undefined reference "_gfortran_st_write"
и тому подобное.
Как я понял из интернета, причина состоит в том, что gfortran использует какие-то свои библиотеки. Поэтому надо использовать в качестве линкера (лоадера) сам gfortran
Подписаться на:
Сообщения (Atom)