2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1 ... 16, 17, 18, 19, 20

А вам пакет PARI/GP интересен?
Да 85%  85%  [ 44 ]
Нет 4%  4%  [ 2 ]
Не уверен(а) 12%  12%  [ 6 ]
Всего голосов : 52
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение12.08.2018, 00:29 


05/09/16
4604
Aritaborian в сообщении #1331852 писал(а):
Боюсь, что-то с системой не так (в плане документации).

Не бойтесь, все там описано, и component тоже.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение12.08.2018, 00:40 
Аватара пользователя


11/06/12
8338
calm.angel.driven
Так почему же уважаемый Dmitry40, человек, очевидно, не обделённый интеллектом, должен просить помощи у сообщества, столкнувшись с примитивной проблемой?

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение12.08.2018, 01:27 
Заслуженный участник


20/08/14
5090
Россия, Москва
Aritaborian

(Оффтоп)

Ум не всегда подразумевает талант к поиску инфы на плохо знакомом языке и не всегда понятными терминами, я многие очевидные вещи долго не могу найти в том же гугле (вот не получается нормально запрос сформулировать, бывает через пару месяцев не могу повторно найти какую-нить страницу в гугле, не помню какими словами нашёл тогда, а в истории браузера утонешь). Теперь-то понимаю что поиском по INTMOD и перепробованием всех функций рядом с его упоминанием проблема бы решилась. Но я пытался найти понятную функцию конвертации типов, а не какой-то непонятный лифт. Ну а про component (maxal, спасибо, запомним) и подумать не мог, слишком привык к процедурному типу мышления (даже массивы предпочитаю обходить циклами for, а не сделать условную выборку [f(x)|x<-vector,x>0]). Я вон команды AVX2 помню и уж точно понимаю лучше функций PARI ...
В общем документация конечно "не фонтан" (трудно найти непонятно что), но в данном случае скорее "сам дурак".

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение12.08.2018, 23:03 
Модератор
Аватара пользователя


11/01/06
5346
Функция lift(), кстати, очень логично называется, так как в точности соответствует понятию поднятия элемента из фактор-кольца в базовое кольцо.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение08.10.2018, 07:08 
Аватара пользователя


12/10/16
324
Almaty, Kazakhstan
Здравствуйте.
Как вывести длинную матрицу так, чтобы каждая строка была отдельно в квадратных скобках? Pari_GP так выводит только несколько строк, а дальше пишет [+++].

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение08.10.2018, 09:14 


05/09/16
4604
Soul Friend
Это какая-то настройка в defaults, но кажется print() печатает полностью.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение08.10.2018, 13:53 
Аватара пользователя


12/10/16
324
Almaty, Kazakhstan
print() всё смешивает в кучу и разделяет строки точкой с запятой, хотелось бы чтобы выглядела как матрица, упорядоченно:
[1 5 21 85 341]

[0 0 0 0 0]

[3 13 53 213 853]
и.т.д.
А в настройках не нашёл регулировки.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение08.10.2018, 14:05 


05/09/16
4604
Soul Friend
Скажите тогда чего вы хотите (на каком-то конкретном примере).

Настоойки (defaults):

(lines)

lines
If set to a positive value, gp prints at most that many lines from each result, terminating the last line shown with [+++] if further material has been suppressed. The various print commands (see Section se:gp_program) are unaffected, so you can always type print(%) or \a to view the full result. If the actual screen width cannot be determined, a "line" is assumed to be 80 characters long.

The default value is 0.

(output)

output
There are three possible values: 0 ( = raw), 1 ( = prettymatrix), or 3 ( = external prettyprint). This means that, independently of the default format for reals which we explained above, you can print results in three ways:

* raw format, i.e. a format which is equivalent to what you input, including explicit multiplication signs, and everything typed on a line instead of two dimensional boxes. This can have several advantages, for instance it allows you to pick the result with a mouse or an editor, and to paste it somewhere else.

* prettymatrix format: this is identical to raw format, except that matrices are printed as boxes instead of horizontally. This is prettier, but takes more space and cannot be used for input. Column vectors are still printed horizontally.

* external prettyprint: pipes all gp output in TeX format to an external prettyprinter, according to the value of prettyprinter. The default script (tex2mail) converts its input to readable two-dimensional text.

Independently of the setting of this default, an object can be printed in any of the three formats at any time using the commands \a and \m and \B respectively.

The default value is 1 (prettymatrix).

(prettyprinter)

prettyprinter
The name of an external prettyprinter to use when output is 3 (alternate prettyprinter). Note that the default tex2mail looks much nicer than the built-in "beautified format" (output = 2).

The default value is "tex2mail -TeX -noindent -ragged -by_par".

Настройки меняются командой default(key,value) например: default(output,1)
Печать всех настроек: \d

Например чтобы вывод печатался полностью, а не завершался через 25 строк подстрокой [+++], дайте команду default(lines,0)

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение08.10.2018, 14:27 
Аватара пользователя


12/10/16
324
Almaty, Kazakhstan
спасибо, помогли. Искал не в тех настойках.
хотел вывести эту матрицу:
Код:
M=matrix(100, 20)
for(m=1, 20, for(n=1, 100, if(Mod(2*n-1,3)==1, M[n,m]=((2^(2*m)*(2*n-1))-1)/3, if(Mod(2*n-1,3)==2, M[n,m]=((2^(2*m-1)*(2*n-1))-1)/3, M[n,m]=0))))

Числа-градины.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение08.10.2018, 22:45 


16/08/05
815
ещё printp напечатает матрицу в естественном виде
Код:
? ?printp
printp({str}*): outputs its string arguments (in prettymatrix format) ending with a newline.

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение11.10.2018, 15:15 


16/08/05
815
Два вопроса про параллельные вычисления.

1) Как прервать цикл parfor на всех ядрах? Команда break() останавливает вычисления на каком-то текущем ядре, остальные продолжают выполняться. Пока вынужден вызывать внешнюю команду system("taskkill /f /im gp.exe /t"), убивая все процессы gp.exe в системе.

2) Как получить и напечатать номер текущего ядра при выполнении print внутри parfor (хотя бы вызовом какой-то внешней команды внутри system()?

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение11.10.2018, 16:49 
Модератор
Аватара пользователя


11/01/06
5346
dmd, для 1) - return() или quit() не подходит?

-- Thu Oct 11, 2018 08:54:30 --

Soul Friend в сообщении #1344434 писал(а):
Код:
M=matrix(100, 20)
for(m=1, 20, for(n=1, 100, if(Mod(2*n-1,3)==1, M[n,m]=((2^(2*m)*(2*n-1))-1)/3, if(Mod(2*n-1,3)==2, M[n,m]=((2^(2*m-1)*(2*n-1))-1)/3, M[n,m]=0))))
Эту матрицу в оптимизированной форме можно задать так:
Код:
M=matrix(100, 20, m, n,  [0,((2^(2*m)*(2*n-1))-1)/3,((2^(2*m-1)*(2*n-1))-1)/3][(2*n-1)%3+1] )

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение11.10.2018, 22:47 


16/08/05
815
maxal
return() ведёт себя так же, как break(), а quit() - да, прерывает работу, но почему-то не сразу, а через 1.5-2 секунды, за которые остальные ядра успевают сделать нежелательные циклы. Может это так вин-версия себя ведёт, а линукс-версия более корректна? В Линуксе ещё не проверял.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 298 ]  На страницу Пред.  1 ... 16, 17, 18, 19, 20

Модераторы: Karan, PAV, Toucan, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group