2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5 ... 29  След.

А вам пакет PARI/GP интересен?
Да 84%  84%  [ 54 ]
Нет 5%  5%  [ 3 ]
Не уверен(а) 11%  11%  [ 7 ]
Всего голосов : 64
 
 
Сообщение10.03.2009, 00:22 
Заслуженный участник
Аватара пользователя


22/11/06
1096
Одесса, ОНУ ИМЭМ
maxal, а у вас не найдется скомпилированного под Windows gp2c? Что-то я не пойму, как скрестить его исходники с офсайта и компилятор Dev-C++.

 Профиль  
                  
 
 
Сообщение13.03.2009, 17:26 
Модератор
Аватара пользователя


11/01/06
5532
Бодигрим
Я не работаю с виндой. А компилировать gp2c под виндой разработчики советуют с помошью cygwin или colinux.

 Профиль  
                  
 
 
Сообщение20.04.2009, 18:22 


20/04/09
1
maxal
Здравствуйте! Мне очень понравились ваши лекции.Я пишу курсовую работу : характеристика pari gp, сравнение с Maple. Если у вас есть какая либо, русскоязычная инф. по этому вопросу прошу помогите!

 Профиль  
                  
 
 
Сообщение26.04.2009, 16:06 
Заслуженный участник
Аватара пользователя


09/02/09
2030
Минск, Беларусь
Интересно было бы узнать о чтении из файла и записи в файл. Думаю обработать с помощью PARI большой объём данных.

К вопросу, зачем он нужен: он в десятки и сотни раз быстрее многих других калькуляторов. Интегралы и т.п. можно считать в Mathematica, а теорию чисел - в PARI.

Так что если есть Mathematica и PARI, то больше никаих Maple-ов не нужно :-)

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


11/01/06
5532
Droog_Andrey в сообщении #208364 писал(а):
Интересно было бы узнать о чтении из файла и записи в файл.

Вывод в файл включается командой \l - например:
Код:
? \l result.txt

При этом все, что печатается на экране будет дублироваться в файл result.txt в той же директории, откуда запущен gp. Можно указать файл с полным путем, если хочется его видеть в другом месте.
Выключается вывод в файл той же командой, но без аргумента:
Код:
? \l


Чтение из файла осуществляется командой \r, при этом файл сразу же интерпретируется в PARI/GP, поэтому его содержимое должно быть в синтаксисе PARI/GP (желательно без ошибок - в противном случае GP ругнется).
Например, файл myprog.gp может содержать следующий текст:
Код:
Q = [3,4,101];

{ runme(s) = my(t);
  for(j=s,#Q,
    t = Q[j];
    print(factor(t));
); }

В этом файле определяется массив Q и функция runme(). Многострочные команды нужно заключать в { ... }.

Загрузка и работа с содержимым этого файла в PARI/GP осуществляется, например, так:
Код:
? \r myprog.gp
? runme(2)

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


09/02/09
2030
Минск, Беларусь
Спасибо! :)

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


22/11/06
1096
Одесса, ОНУ ИМЭМ
Существуют ли пакеты, позволяющие решать в PARI/GP простейшие задачи линейного программирования?

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


11/01/06
5532
Бодигрим в сообщении #294075 писал(а):
Существуют ли пакеты, позволяющие решать в PARI/GP простейшие задачи линейного программирования?

Пакетов не знаю, но линейная алгебра (в том числе и целочисленная) в PARI/GP достаточно хорошо развита, поэтому простейшие задачи можно решать и без пакетов.

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


08/05/08
935
MSK
Установить число предвычесленных простых в 10 миллиардов не удается.
Код:
? default(primelimit,10^10)

Программа выдает ошибку: Integer too large.

Как обойти это ограничение?

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


11/01/06
5532
e7e5 в сообщении #356162 писал(а):
Как обойти это ограничение?

Это можно обойти только использованием 64-битной версии PARI/GP на 64-битной платформе.

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


08/05/08
935
MSK
maxal в сообщении #356169 писал(а):
Это можно обойти только использованием 64-битной версии PARI/GP на 64-битной платформе.


Какое ограничение по простым числам в этом случае?
И как можно 64-битную приспособить к 32-битной системе? может быть виртуальная машина поможет?

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


11/01/06
5532
e7e5 в сообщении #356172 писал(а):
Какое ограничение по простым числам в этом случае?

Должно влезать в 32 бита, то есть быть меньше $2^{32} = 4294967296$.
e7e5 в сообщении #356172 писал(а):
И как можно 64-битную приспособить к 32-битной системе?

Вероятнее всего, никак.

-- Sat Sep 25, 2010 12:34:38 --

e7e5
Впрочем, последовательные простые (любого размера) можно получать "на лету", пользуясь, например, nextprime():

Код:
? m=0; while(m<100, m=nextprime(m+1); print1(m,", ") )
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101,

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


16/08/05
1121
Можно ли сказать, сколько потребуется оперативки для формирования в памяти 10^11 простых? У меня при любом размере parisize ошибка. И сколько примерно времени это займёт? На 10^10 ушло пол-минуты.

Ещё. Есть ли способ быстро на ходу формировать свой массив простых, быстро его пополнять и быстро в нём искать? setsearch - довольно быстр, видимо бинарный поиск реализует, но setunion - тормоз, как и listput для массива List.

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


11/01/06
5532
dmd в сообщении #356207 писал(а):
Можно ли сказать, сколько потребуется оперативки для формирования в памяти 10^11 простых?

Если я правильно помню, то для $10^{11}$ простых 8GB оперативки хватает, 4GB - вроде нет.
dmd в сообщении #356207 писал(а):
Есть ли способ быстро на ходу формировать свой массив простых, быстро его пополнять и быстро в нём искать?

Не знаю, насколько это поможет, но вот моя реализация хеш-таблицы (все ключи должны быть уникальными):
Код:
\\ create hashtable
{ ht_create() = [Set(),listcreate()] }


\\ kill hashtable
{ ht_kill(h) = listkill(h[2]); }


\\ insert (key,value) into hashtable
{ ht_insert(h,key,value) = local(p,l);
\\  print(h);
  p = setsearch(h[1],key);
  if(p, h[2][p]=value; return(h));
  p = setsearch(h[1],key,1);
  l=h[2];
  if(p>#l,listput(l,value),listinsert(l,value,p));
  return([setunion(h[1],Set([key])),l]);
}


\\ check if key is defined in the hashtable
{ ht_search(h,key) = setsearch(h[1],key); }


\\ query value for a given key
{ ht_value(h,key) = local(p);
  p = setsearch(h[1],key);
  if(p==0,error("ht_value error: key ",key," is not in the hashtable"));
  return(h[2][p]);
}


-- Sat Sep 25, 2010 13:48:37 --

P.S. Если встроенных возможностей PARI/GP не хватает, то можно переключиться на C/C++ и использовать PARI в качестве библиотеки.

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


16/08/05
1121
maxal в сообщении #356225 писал(а):
Если встроенных возможностей PARI/GP не хватает, то можно переключиться на C/C++ и использовать PARI в качестве библиотеки.

Если имели в виду gp2c, то это само собой. Если вызов функций из libpari в своём приложении - увы, нет достаточного опыта. Хотя интересно посмотреть на примеры.

Ещё интересно узнать, как организовать пакетное сохранение данных в файл. Вызывать write отдельно для каждого найденного числа (строки чисел вектора/матрицы) - не эффективно медленно.

-- Вс сен 26, 2010 19:11:36 --

делал двоичный поиск в массиве простых, упорядоченных по возрастанию, получилось так:
Код:
zsearch(p:int, Y:list)=
\\zsearch(p:int, Y:vec)=
{
local(j, i1, i2, it, t):int;
if(p<5, j= 0:int,
i1= 1:int;
i2= (#Y):int;
t= -1:int;
while(p!=t,
  it= ((i2+i1)\2):int;
  t= Y[it]:int;
\\  t= Y[it][1]:int;
  if(p<t, i2= (it-1):int,
   if(p>t, i1= (it+1):int,
    j= it:int; break
   )
  );
  if((i1>i2), j= 0:int; break)
)
);
return(j)
};

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 428 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 29  След.

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



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

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


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

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