2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10 ... 54  След.

А вам пакет PARI/GP интересен?
Да 83%  83%  [ 58 ]
Нет 6%  6%  [ 4 ]
Не уверен(а) 11%  11%  [ 8 ]
Всего голосов : 70
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение03.10.2015, 23:05 
Заслуженный участник


20/08/14
11765
Россия, Москва
arseniiv
Я бы сказал знак ";" в определённых местах наоборот подавляет вывод результата выражения. Например:
Код:
? v=12
%1 = 12
? v=15;
? v=22
%3 = 22
?
Отображено в консоли лишь 12 и 22, но не 15. Хотя результат 15 и запомнен и доступен для ссылок.
Но далеко не везде можно пропускать ";".

-- 03.10.2015, 23:06 --

Begemot82
Спасибо.

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


27/04/09
28128
Dmitriy40 в сообщении #1058928 писал(а):
Я бы сказал знак ";" в определённых местах наоборот подавляет вывод результата выражения.
А, такой эффект в Wolfram тоже есть, потому что там в таком случае a; ; b; считается синонимом a; Null; b; Null, и Null не выводится, если получается в результате чего-нибудь. Может, и здесь снова так?

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


20/08/14
11765
Россия, Москва
arseniiv
Я детально в синтаксис не вникал (вон даже про комментарии не знал), про подавление вывода от наличия ";" заметил где-то в хелпе случайно.

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


27/04/09
28128

(Оффтоп)

Скачал, 2; 3 возвращает 3, хотя print(;2;) почему-то печатает 2. Ладно, любопытство удовлетворил. :-)

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


10/07/15
286
Обнаружил интересную особенность - большие числа можно записывать через пробелы
Код:
a=123 456 789;b=38734 36777;print(a" "b);

 Профиль  
                  
 
 Re: интерактивный курс: введение в программирование на PARI/GP
Сообщение08.10.2015, 05:39 
Заслуженный участник
Аватара пользователя


11/01/06
3824
Begemot82 в сообщении #1060324 писал(а):
Обнаружил интересную особенность - большие числа можно записывать через пробелы
PARI/GP вообще игнорирует пробелы (за исключением тех, что в кавычках):
Код:
gp > s    i    n     (   P         i    /  2  .  0 )   
%1 = 1.0000000000000000000000000000000000000

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


27/06/08
4062
Волгоград
PARI тормозит :-(
Летом считал на PARI. И он приятно удивил быстродействием. В десятки раз быстрее maple.
Сейчас запустил аналогичную задачу. Считает раз в 10 медленнее maple. Т.е. в сотни раз медленнее себя летнего.
На компе ничего не переставлял.
Для проверки запустил не аналогичную, а ТУ ЖЕ задачу. Тормозит.

Попробовал выделить побольше памяти, увеличить primelimit. Эффекта нет.

В чем может быть дело?

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


28/01/12
467
VAL
А что у вас за ОС?
Посмотрите в процессах, чем занят компьютер?

PS. Бывает, что антивир страшно подвисает комп.
Если у вас Винда, для проверки на время вычислений отключите Интернет и антивирус.

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


27/06/08
4062
Волгоград
NT2000 в сообщении #1100533 писал(а):
VAL
А что у вас за ОС?
Посмотрите в процессах, чем занят компьютер?

PS. Бывает, что антивир страшно подвисает комп.
Если у вас Винда, для проверки на время вычислений отключите Интернет и антивирус.

ОС - семерка.
Антивирус - Avast. В отличие от Касперского в торможении программ не замечен.
Процессор загружен практически только одним PARI/GP. На 25%.
Кстати!
Может быть в этом и разгадка. Возможно, (что-то такое припоминаю) я летом каким-то образом (а каким, уже не помню :-( ) подключал к работе PARI все (или почти все) ядра. А сейчас используется всего одно.

Тогда вопрос дилетанта: как заставить работать с PARI другие ядра? Процессор - Intel Core 5 i-32

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


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

(Оффтоп)

Очень мне интересно, на какой же это задаче увеличение количества ядер с 1 до 4 даёт 100-кратный выигрыш производительности?! :shock:

Команда \d в консоли выдаёт список значений по умолчанию множества параметров , среди них есть два вроде бы относящиеся к многозадачности: nbthreads и threadsize. Можно покопать в их сторону.

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


27/06/08
4062
Волгоград
Dmitriy40 в сообщении #1100543 писал(а):
Очень мне интересно, на какой же это задаче увеличение количества ядер с 1 до 4 даёт 100-кратный выигрыш производительности?! :shock:
Ну... менее эмоциональная оценка, свидетельствует о замедлении в разы, а не в сотни раз :-)
Цитата:
Команда \d в консоли выдаёт список значений по умолчанию множества параметров , среди них есть два вроде бы относящиеся к многозадачности: nbthreads и threadsize. Можно покопать в их сторону.
Попробовал изменить значение nbthreads с 1 до 3 (по аналогии с тем, как изменяется primelimit). Но ничего не изменилось, по-прежнему процессор загружен на 25%

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


16/08/05
1153
Наткнулся на ошибку, не пойму - у меня или в pari/gp. Простейший код, удаление из списка элемента
Код:
tst()=
{

local(H, S):list;

H= List(); S= List();

for(i=1, 100, listput(S, i));

H= S;

print("#H= ", #H);
print("#S= ", #S);

listpop(H, 67);

print("#H= ", #H);
print("#S= ", #S);

};

просто в gp работает правильно, но в gp2c оператор listpop(H, 67) удаляет и из H и из S:

Изображение

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


16/08/05
1153
Два варианта посчитать установленные биты:
Код:
? bitcount1(n)= sum(i=0, #binary(n), bittest(n, i));
?
? bitcount2(n)={i=0;while(n!=0,i++;n=bitand(n,n-1));return(i)};
?
? for(i=1,10^6,bitcount1(i))
time = 4,660 ms.
?
? for(i=1,10^6,bitcount2(i))
time = 10,266 ms.


Можно ли сделать ещё быстрее?

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


20/08/14
11765
Россия, Москва
Сравнение скорости не совсем корректно, для других диапазонов чисел результат может быть более драматичным, например:
Код:
? for(i=10^12, 10^12+10^6, bitcount1(i))
time = 2,555 ms.
? for(i=10^12, 10^12+10^6, bitcount2(i))
time = 1 min, 20,199 ms.

Возможное улучшение:
Код:
? bitcount3(n) = vecsum(binary(n));
? for(i=10^12, 10^12+10^6, bitcount3(i))
time = 776 ms.

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


16/08/05
1153
Здорово, спасибо!


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

Код:
?
?\\ N - длина в битах числа n
?
?bitdel(n, i)= bitnegimply(n, 2^i);
?
?for(i=1, N, if(bittest(n, i), if(<некое условие>, n= bitdel(n, i))));
?

Возможно такое ускорить?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 809 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10 ... 54  След.

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



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

Сейчас этот форум просматривают: Dmitriy40


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

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