Флудилка:)

Автор S!N, 29 Квітень 2008, 13:06:50

Попередня тема - Наступна тема

немой

Цитата: graved1gger від 28 Квітень 2009, 06:51:311. мне нравятся маленькие и худенькие
2. смотри на ее руки - далеко не тощие
та она плоская как доска

graved1gger

Цитата: немой від 28 Квітень 2009, 06:00:07
та она плоская как доска
пшел смотреть еще раз
this gravedigga is completely broken. all we want is an old version of that toxic angry guy who hates everything and everyone © link. А вот я не уверен,  что старая версия будет доступна.

Юрец

шо вы шифровщики? от кого скрываетесь?

graved1gger

#158353
Цитата: graved1gger від 28 Квітень 2009, 06:03:41
пшел смотреть еще раз
гы, точно, а я сразу и не обратил внимание
this gravedigga is completely broken. all we want is an old version of that toxic angry guy who hates everything and everyone © link. А вот я не уверен,  что старая версия будет доступна.

graved1gger

Цитата: Юрец від 28 Квітень 2009, 06:04:36
шо вы шифровщики? от кого скрываетесь?
ни от кого и никто не шифруется
this gravedigga is completely broken. all we want is an old version of that toxic angry guy who hates everything and everyone © link. А вот я не уверен,  что старая версия будет доступна.

Юрец

зачем же тогда быть скрытыми пользователями?  :P

graved1gger

ЦитатаЮрец     06:05:47   Просматривает профиль пользователя graved1gger.

омфг
this gravedigga is completely broken. all we want is an old version of that toxic angry guy who hates everything and everyone © link. А вот я не уверен,  что старая версия будет доступна.

graved1gger

Цитата: Юрец від 28 Квітень 2009, 06:06:24
зачем же тогда быть скрытыми пользователями?  :P
хз...
graved1gger, Юрец, немой, bad_santa, linuxdrom
this gravedigga is completely broken. all we want is an old version of that toxic angry guy who hates everything and everyone © link. А вот я не уверен,  что старая версия будет доступна.

Юрец

так я смотрю горит ли онлайн !

и чё вообще в этом плохого? там что, конфиденциальная информация  ;D

graved1gger

онлайн не горит, онлайн выжигает... ...напалмом


блин, уже начинаю засыпать, тогда хотел закинуться чем-то, что б уснуть, а ссейчас надо найти чем-то заняццо на чуть меньше чем два часа и закинуться чем-то, что б НЕ спать  :'(
this gravedigga is completely broken. all we want is an old version of that toxic angry guy who hates everything and everyone © link. А вот я не уверен,  что старая версия будет доступна.

Юрец

хаха. по барбитуре торчишь  ;D

немой

ЦитатаИК91, прости ^^
:D

graved1gger

Цитата: Юрец від 28 Квітень 2009, 06:12:36
хаха. по барбитуре торчишь  ;D
чё-чё? кто эт такая?
this gravedigga is completely broken. all we want is an old version of that toxic angry guy who hates everything and everyone © link. А вот я не уверен,  что старая версия будет доступна.

Юрец

это такая разная ласта с надписями, в которой колёса хранятся  ;D

graved1gger

Цитата: Юрец від 28 Квітень 2009, 07:16:32разная ласта
хто?

Цитата: Юрец від 28 Квітень 2009, 06:16:32
это такая разная ласта с надписями, в которой колёса хранятся  ;D
на некую ласту у меня не торчит :P


---
ну и бредятина http://www.dpk.com.ua/forums/index.php?topic=516.msg404865#msg404865
this gravedigga is completely broken. all we want is an old version of that toxic angry guy who hates everything and everyone © link. А вот я не уверен,  что старая версия будет доступна.

Юрец

а закинутся всё равно ж надо чтоб спать не хотелось? вот и закинь ласту конного возбудителя, до вечера будет торчать  ;D

Lexusiw

Всем доброе утро! Сейчас качаю и поставлю BurnAware Free (у меня Windows 7) и почимчикую в школу ;)

Garfield

Цитата: Lexusiw від 28 Квітень 2009, 07:41:32
Всем доброе утро! Сейчас качаю и поставлю BurnAware Free (у меня Windows 7) и почимчикую в школу ;)
Доброе утро! :) А я буду ждать коврега. :%)

Lexusiw

Цитата: Garfield від 28 Квітень 2009, 07:44:26
Доброе утро! :) А я буду ждать коврега. :%)
А в школу? Я вот BurnAware поставил и скоро пойду, минут через 5-10.

Garfield

Цитата: Lexusiw від 28 Квітень 2009, 08:46:11А в школу?
Я экстерн, когда хочю тогда иду... :D Кстати, я уже написал все контрольные и сейчас готовлюсь к экзаменам. :)

Lexusiw

#158370
И куда вы все деваетесь? :o
Все флудить срочно! :)

Добавлено: 28 Квітень 2009, 07:52:22

Цитата: Garfield від 28 Квітень 2009, 07:49:13
Я экстерн, когда хочю тогда иду... :D Кстати, я уже написал все контрольные и сейчас готовлюсь к экзаменам. :)
Всем бай-бай, я ухожу. ;)

Garfield

Цитата: Lexusiw від 28 Квітень 2009, 08:49:55Всем бай-бай, я ухожу.
Пока! Я один остался. :(

Ndakota

#158372
Цитата: Garfield від 28 Квітень 2009, 07:54:49
Пока! Я один остался. :(
Нет ещё я есть..... ;) :)

Добавлено: 28 Квітень 2009, 08:49:17

сегодня тоже в школу не пошел - ещё бошка болит.....+ там какая-то встреча директоров города
- не учимся а показываем где какой кабинет -
так что ну его нах..... :)

Добавлено: 28 Квітень 2009, 09:50:58

Гарф.... ты где?
давай в кросс... :)

Garfield

Цитата: Ndakota від 28 Квітень 2009, 10:44:44Гарф.... ты где?
давай в кросс...

Ок, создавай, я через мин 15 подойду.

Ndakota

Цитата: Garfield від 28 Квітень 2009, 09:52:29
Ок, создавай, я через мин 15 подойду.
;D ;D ;D
та не я сам не хо.....
лучше так чтоб МЯСО!!! :)

Garfield

Цитата: Ndakota від 28 Квітень 2009, 09:57:55
;D ;D ;D
та не я сам не хо.....
лучше так чтоб МЯСО!!! :)
Какой канал?

Ndakota

Блин мама вернулась..... щас уйдёт - тогда и погамаю.... :(

Добавлено: 28 Квітень 2009, 10:13:59

Цитата: Ndakota від 28 Квітень 2009, 10:13:20
Блин мама вернулась..... щас уйдёт - тогда и погамаю.... :(
минут 7-10.....

Garfield


Ndakota

Я уже там - заходи...

Garfield


Ndakota

Канал 4 - комната 3

Edd.Dragon

Класно вам
С утра во что-то режутся!

βεερ_βooρ

Цитата: Edd.Dragon від 28 Квітень 2009, 10:40:29
Класно вам
С утра во что-то режутся!

А я познаю дзен.
Но однозначно Хаскель рулит и бибикает :%)

Кто не верит пишет так:

double* chords(double left_bounds [],double right_bounds [],int size_bounds,double polynom [],int size_polynom,double precision)
{
        int root_index=0;
        int iter_amount=0;
        double* roots=new double [size_polynom+1];

        roots[size_polynom-1]=getmaxbound(polynom,size_polynom);
        for(int i=0;i<(size_polynom-1);i++)
                roots[i]=roots[size_polynom-1];

        double inter=0,inter_prev=0;

        for(int i=0;i<size_bounds;i++)
                {
                        double left_bound=left_bounds[i];
                        double right_bound=right_bounds[i];
                        inter=(left_bound*getvalue(right_bound,polynom,size_polynom)-right_bound*getvalue(left_bound,polynom,size_polynom))/(getvalue(right_bound,polynom,size_polynom)-getvalue(left_bound,polynom,size_polynom));

                        do {
                                if((getvalue(left_bound,polynom,size_polynom)*getvalue(inter,polynom,size_polynom))<0)
                                        {
                                                right_bound=inter;
                                                inter_prev=inter;
                                                inter=(left_bound*getvalue(right_bound,polynom,size_polynom)-right_bound*getvalue(left_bound,polynom,size_polynom))/(getvalue(right_bound,polynom,size_polynom)-getvalue(left_bound,polynom,size_polynom));
                                                iter_amount++;
                                                cout<<"Proshlaya tochka: "<<inter_prev<<" Tekuschaya tochka: "<<inter<<endl;
                                                continue;
                                        };
                                if((getvalue(right_bound,polynom,size_polynom)*getvalue(inter,polynom,size_polynom))<0)
                                        {
                                                left_bound=inter;
                                                inter_prev=inter;
                                                inter=(left_bound*getvalue(right_bound,polynom,size_polynom)-right_bound*getvalue(left_bound,polynom,size_polynom))/(getvalue(right_bound,polynom,size_polynom)-getvalue(left_bound,polynom,size_polynom));
                                                iter_amount++;
                                                cout<<"Proshlaya tochka: "<<inter_prev<<" Tekuschaya tochka: "<<inter<<endl;
                                                continue;
                                        };
                            }
                        while(fabs(inter-inter_prev)>=precision);
                        roots[root_index]=inter;
                        root_index++;
                }
        roots[size_polynom]=iter_amount;               
        return roots;               
}


А я классно экономлю бумагу:
--------------------------
-- Уточнить корни методом хорд
--------------------------
solve_sec p i = map (sec_solve_int p) i
-- найти корни на заданом интервле методом хорд
sec_solve_int p (a,b) =fst $ until same update (a,b)
where
update (x,y) = (x - (x - y)*(f x)/(f x - f y), x)
f  = evalUP p
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

Miron_Y

Привет :)
Эх, погодка...хороша. Перевожу бумагу. Полез в принтер, похоже грохнул EEPROM  >:( Руки в краске и наверное кончится всё полной разборкой и чисткой (мусорником  :'( >:( ) очень зол!


Edd.Dragon

Цитата: beep_boop від 28 Квітень 2009, 11:49:59А я классно экономлю бумагу:
Где-то ты юлишь и не дописываешь скрытое  :D

Miron_Y



Эээх! Красавица и КрасАвец. 8)

Добавлено: 28 Квітень 2009, 11:08:01

Нада у Статика спросить МАзератти это какого рода? :-[

βεερ_βooρ

Цитата: Edd.Dragon від 28 Квітень 2009, 11:03:27
Где-то ты юлишь и не дописываешь скрытое  :D
Все абсолютно честно -обе ф-ции делают одно и то же ;)
при этом они естественно используют отельно реализованые ф-ции для работы с полиномами.

Могу для сравнения выложить код моего решения и "реферанс"(которыйнаписан одногруппником чуть боле чем ублюдочно)
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

Edd.Dragon

Цитата: beep_boop від 28 Квітень 2009, 12:16:47при этом они естественно используют отельно реализованые ф-ции для работы с полиномами.
И явно во втором случае в этих функциях скрыто чуть больше? ;)

Цитата: beep_boop від 28 Квітень 2009, 12:16:47чуть боле чем ублюдочно)
Не нада! Я еще жить сегодня хочу  ;D

βεερ_βooρ

Цитата: Edd.Dragon від 28 Квітень 2009, 12:18:19И явно во втором случае в этих функциях скрыто чуть больше?
Нет. Для решения тут необходима всего одна сторонняя ф-ция - вычислить значение р(х) все.
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

βεερ_βooρ

Цитата: Edd.Dragon від 28 Квітень 2009, 12:18:19Не нада! Я еще жить сегодня хочу
Бугага ;D ;D
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

Aftorr

Незнаю что от бессонницы но ДЛЯ того что бодрячком оставатся нужно фезам пить

Edd.Dragon

неплохо на Баше завернули )))


Представьте себе, что, скажем, в химии, физике, математике или любой другой науке правильная точка зрения определяется путем всеобщего голосования. Вот буквально все собираются - тетя Маша, тетя Зина, сантехник Боря, вон тот мужик с двортерьером на ремешке, сосед, ты сам - и определяют, какую валентность проявляет кислород.
А победивший вариант идет в учебники. В какое состояние тогда придет наука? Представили? Хорошо представили?

А тогда какого же вы удивляетесь, почему наука управлять обществом и государством находится именно в этом состоянии?

βεερ_βooρ

Референс, 410 строк Не для слабонервных

Моя реализация - 149 строк + (146+78) слегка подпиленые мной библиотечки. Всего 373. Если бы вместо того что бывзять готовые библиотеки(где все окуратненько оформлено в классы +иемется некоторый избыточный для данного здания ф-ционал) писать самому, то это все уложилосьбы в строк 75 максимум.


module Main where
-- Импортируем модуль полиномиальной арифметики:
import UPoly

-- Точность поиска корней:
precision = 0.001

-- Шаг поиска корней:
sstep = 0.05

-- Ф-ция 'почти равно с заданой точностью':
same (x ,y) = (abs(x-y)<= precision)
--------------------------
-- Построение системы Штурма:
--------------------------

-- calcsturm p n вычислить n-й полином системы Штурма для полинома р
calcsturm p 0 = p
calcsturm p 1 = derivUP p
calcsturm p n = -(modUP u v)
where
u=calcsturm p (n-2)
v=calcsturm p (n-1)

-- buildsturm p - Построить систему Штурма для полинома р
buildsturm p = buildsturm_ p 0 where
buildsturm_ p n = if (degUP i) == 0 then [i] else
i:(buildsturm_  p (n+1)) where i=calcsturm p n

-- evalsturm p  x - вычислить значения полиномов системы Штурма
--                  для полинома р в точке х
evalsturm p  x = evalsturm_ p 0 x where
evalsturm_ p n x = if (degUP i) == 0 then [evalUP i x ] else
(evalUP i x):(evalsturm_  p (n+1) x) where i=calcsturm p n

--n_sturm ss - вычислить к-во смен знaков в системе Штурма:
n_sturm ss = n_sturm_ ss (signum (head ss)) 0 where
n_sturm_ [] _ c = c
n_sturm_ (h:t) pre c =  if (pre == sg) then n_sturm_ t pre c else
n_sturm_ t sg (c+1) where sg = signum h

----------------------
-- Функции для локализации корней
----------------------

-- getmax_rightbound p - Вычислить крайнию правую границу корней для р
getmax_rightbound p = (aan + am)/aan  where
pl = map abs (polytolist p)
am = maximum(init pl)
aan = abs (last pl)

-- getmax_leftbound p - Вычислить крайнию левую границу корней для р
getmax_leftbound p = -getmax_rightbound p

--is_root p (a,b) имеет ли р корень на [a,b]
is_root p (a,b) = if ((aa*bb)<0) then True else False where
aa =evalUP p a
bb =evalUP p b

-- roots_intervals - определить интервалы с корнями
roots_intervals p = filter (is_root p) (root_bounds p) where
--root_bounds p - Промежутки на которых мы будем искать корни p:
    root_bounds p = _root_bounds max_left_bond (size_of_bounds p)
    max_right_bound = getmax_rightbound p
    max_left_bond = -max_right_bound
    size_of_bounds p =fromInteger (ceiling ((2*max_right_bound)/sstep))
    _root_bounds b 0 = [(b, b+sstep)]
    _root_bounds b n = (b+n*sstep, b+(n+1)*sstep):(_root_bounds b (n-1))

--------------------------
-- Уточнить корни методом бисекций
--------------------------
solve_bi p i = map (bi_solve_int p) i
-- найти корни на заданом интервле методом бисекций
bi_solve_int p (a,b) = if same (fm, 0) then m else
                            if ((fm*fa)<0) then bi_solve_int p (a,m) else
                            if ((fm*fb)<0) then bi_solve_int p (m,b) else
                            error "bi_solve_int: Can't determinate new interval"
                            where
                                fm = evalUP p m
                                fa = evalUP p a
                                fb = evalUP p b
                                m = (a+b)/2
--------------------------
-- Уточнить корни методом хорд
--------------------------
solve_sec p i = map (sec_solve_int p) i
-- найти корни на заданом интервле методом хорд
sec_solve_int p (a,b) =fst $ until same update (a,b)
where
update (x,y) = (x - (x - y)*(f x)/(f x - f y), x)
f  = evalUP p

--------------------------
-- Уточнить корни методом Ньютона(касательных)
--------------------------
solve_new p i = map (new_solve_int p) i
-- найти корни на заданом интервле методом кастельных
new_solve_int p (a,b) = fst $ until same update (a,b)
where
update (x,y) = (x - (f x)/(d x), x)
f = evalUP p
d = evalUP (derivUP p)

-------------------------
polytolist (UP as) = map (\(a,i)-> a) (filter (\(a,i) -> a /= 0) (zip as [0..]))
--------------------------
-- Наш полином, задается константной ф-цией polynom:
polynom=x^4-2*x^3-9*x^2-3*x-2
-- Система Штурма для заданого полинома:
sturm = buildsturm polynom

--------------------------
main :: IO ()
main = do
putStrLn $ "Input polinom: " ++ show polynom
putStrLn $ "Searching o roots in:" ++ "\nleft bound: "
print $ getmax_leftbound polynom
putStrLn $ "right bound: "
print $ getmax_rightbound polynom
putStrLn $ "Sturm system:"
print $ sturm
putStrLn $ "Sturm system(left bound):"
print $ evalsturm polynom (getmax_leftbound polynom)
putStr $ "N="
print $ n_sturm (evalsturm polynom (getmax_leftbound polynom))
putStrLn $ "Sturm system(right bound):"
print $ evalsturm polynom (getmax_rightbound polynom)
putStr $ "N="
print $ n_sturm (evalsturm polynom (getmax_rightbound polynom))
putStrLn $ "Number of non-complex roots detected(using Sturm system):"
let aa=n_sturm (evalsturm polynom (getmax_leftbound polynom))
let bb=n_sturm (evalsturm polynom (getmax_rightbound polynom))
print $ aa-bb
putStrLn $ "Roots detected at:"
let roots_i = roots_intervals polynom
print $ roots_i
putStrLn $ "Using bisection method:"
print $ solve_bi polynom roots_i
putStrLn $ "Using secant method:"
print $ solve_sec polynom roots_i
putStrLn $ "Using Newton method:"
print $ solve_new polynom roots_i



-- upoly.hs

module UPoly (UPoly (..), x, (*/), toUPoly, degUP, lcUP, evalUP,
quotRemUP, divUP, modUP, monomialUP, gcdUP, extendedEuclidUP, toMonicUP,
derivUP, integUP, composeUP) where
--Подключаем модуль низкоуровнивых математических примитивов(сложение/умножение векторов, матриц, тензорное произвидение, etc)
import MathsPrimitives (FunctionRep (..), ($+), ($-) )
--Объявляем новый тип UPoly - полином одной переменной (Univariate polynomial)
newtype UPoly a = UP [a] deriving (Eq)
-- the list [a_0, a_1, ..., a_n] represents the polynomial a_0 + a_1 x + ... + a_n x^n

x = UP [0,1] :: UPoly Double

infixl 7  */, $*


-- ORD INSTANCE

instance (Ord a) => Ord (UPoly a) where
compare (UP []) (UP [])    = EQ
compare (UP []) (UP (_:_)) = LT
compare (UP (_:_)) (UP []) = GT
compare (UP as) (UP bs) = case compare (length as) (length bs) of
GT -> GT
LT -> LT
EQ -> compare (reverse as) (reverse bs)


-- SHOW INSTANCE

instance (Num a, Show a) => Show (UPoly a) where
show (UP as) =
let powers = reverse (filter (\(a,i) -> a /= 0) (zip as [0..]))
in
if null powers
then "0"
else foldl1 linkTerms (map showTerm powers)
where linkTerms t u = if head u == '-' then t ++ u else t ++ "+" ++ u

showTerm (a,0) = show a
showTerm (a,i) = showCoeff a ++ showPower i

showCoeff a = let a' = show a in case a' of
"1" -> ""
"-1" -> "-"
_ -> a'

showPower i
| i == 0    = ""
| i == 1    = "x"
| otherwise = "x^" ++ show i


-- NUM INSTANCE

instance Num a => Num (UPoly a) where
UP as + UP bs = toUPoly (as $+ bs)
UP as - UP bs = toUPoly (as $- bs)
negate (UP as) = UP (map negate as)
UP as * UP bs = toUPoly (as $* bs)

fromInteger 0 = UP []
fromInteger a = UP [fromInteger a]

signum f = fromInteger 1

toUPoly as = UP (reverse (dropWhile (== 0) (reverse as)))


-- the dollar versions of the arithmetic functions don't remove trailing zeroes
-- when carrying out a sequence of calculations, it is often more efficient to use the dollar versions and remove trailing zeroes at the end

(a:as) $* (b:bs) = [a*b] $+ shiftUP (map (a*) bs $+ map (*b) as) $+ shiftUP (shiftUP (as $* bs))
[] $* _ = []
_ $* [] = []

shiftUP [] = []
shiftUP as = 0 : as

k */ UP as = UP (map (k*) as)


-- OTHER FUNCTIONS
--Степень полинома
degUP (UP as) = length as - 1

-- leading coefficient
lcUP (UP []) = 0
lcUP (UP as) = last as

--evalUP (UP as) v - Вычислить значение as(v)
evalUP (UP as) v = doEvalUP as
where
doEvalUP [] = 0                        -- there's an implicit "fromInteger" call here
doEvalUP (a:[]) = a                    -- this means that evalUP will work even when the Num instance we're working over doesn't define "fromInteger"
doEvalUP (a:as) = a + v * doEvalUP as
-- can probably be written more efficiently
--Диференцирование полиномов
derivUP (UP []) = UP []
derivUP (UP as) = UP (zipWith (*) (map fromInteger [1..]) (tail as))
--Интегрирование полиномов
integUP (UP []) = UP []
integUP (UP as) = UP (0 : zipWith (/) as (map fromInteger [1..]))

liftUP (UP as) = UP (map (\a -> UP [a]) as)

composeUP f g = evalUP (liftUP f) g

instance (Num a, Fractional a) => FunctionRep (UPoly a) where
compose = composeUP
deriv = derivUP
integ = integUP

--Деление полиномов
quotRemUP _ 0 = error "quotRemUP: division by zero"
quotRemUP f g = doqr g 0 f
where
doqr g q r =
if degUP r < degUP g
then (q,r)
else
let s = monomialUP ((lcUP r) / (lcUP g)) (degUP r - degUP g)
in doqr g (q + s) (r - s * g)

divUP f g = q where (q,r) = quotRemUP f g

modUP f g = r where (q,r) = quotRemUP f g

monomialUP a n
| a == 0     = UP []
| otherwise  = UP (replicate n 0 ++ [a])

gcdUP f g
| degUP f > degUP g = doGcdUP f g
| otherwise         = doGcdUP g f
where
doGcdUP f 0 = toMonicUP f
doGcdUP f g = let (q,r) = quotRemUP f g in doGcdUP g r

extendedEuclidUP a b = doExtendedEuclid a b []
where
doExtendedEuclid d 0 qs = let (u,v) = unwind 1 0 qs in (u,v,d)
doExtendedEuclid a b qs = let (q,r) = quotRemUP a b in doExtendedEuclid b r (q:qs)
unwind u v [] = (u,v)
unwind u v (q:qs) = unwind v (u-v*q) qs

toMonicUP f = (1/lcUP f) */ f



-- mathsprimitives.hs

module MathsPrimitives where

-- primitive operations on sequences (lists) of numbers
-- used in implementation of vectors, matrices, polynomials, cyclotomic fields, etc

import List (transpose)

infixr 8  */, *//
infixl 7  $*, $., $$*
infixl 6  $+, $-, $$+, $$-


-- addition of sequences
(a:as) $+ (b:bs) = (a+b) : (as $+ bs)
as     $+ []     = as
[]     $+ bs     = bs

as $- bs = as $+ (map negate bs)

-- scalar multiplication
a */ bs = map (a*) bs


-- polynomial multiplication
[] $* _ = []
_ $* [] = []
(a:as) $* (b:bs) = [a*b] $+ shift (map (a*) bs $+ map (*b) as) $+ shift (shift (as $* bs))

shift [] = []
shift as = 0 : as


-- dot product of vectors (also called inner or scalar product)
u $. v = sum (zipWith (*) u v)


-- tensor product of vectors (also called outer or matrix product)
(a:as) $** v = map (a*) v : (as $** v)
[] $** _ = []



-- matrix operations

a $$+ b = zipWith (zipWith (+)) a b

a $$- b = zipWith (zipWith (-)) a b

a $$* b = doMultMx a (transpose b)
where
doMultMx [] _ = []
-- doMultMx (u:us) bT = map (u $.) bT : doMultMx us bT
doMultMx (u:us) bT = ((:) $! (map (u $.) bT)) (doMultMx us bT)

-- scalar multiplication
k *// m = map (map (k*)) m


fMatrix f n = [[f i j | j <- [1..n]] | i <- [1..n]]


partialSums xs = scanl1 (+) xs

partialProducts xs = scanl1 (*) xs

factorials :: [Integer]
factorials = scanl (*) 1 [1..]


-- A class for types which represent mathematical functions
class FunctionRep f where
compose :: f -> f -> f
deriv :: f -> f
integ :: f -> f
nthderiv :: Int -> f -> f
nthderiv n f = iterate deriv f !! n
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

Ndakota

Вибачте, але ви не маєте права на перегляд спойлерів.

Гарф чего ты ушёл - я как раз до стаффа дошёл.... ???

Edd.Dragon

beep_boop,
double* chords(double left_bounds [],double right_bounds [],int size_bounds,double polynom [],int size_polynom,double precision)

А что за массивы границ?

βεερ_βooρ

Цитата: Edd.Dragon від 28 Квітень 2009, 11:36:22
beep_boop,
double* chords(double left_bounds [],double right_bounds [],int size_bounds,double polynom [],int size_polynom,double precision)

А что за массивы границ?

Левые и правые границы интервалов на которых нужно искать корни.
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

graved1gger

тема о плетках и наручниках напоминает 3-ю фулидлку(после флудилки  и мк  ;D)
this gravedigga is completely broken. all we want is an old version of that toxic angry guy who hates everything and everyone © link. А вот я не уверен,  что старая версия будет доступна.

Garfield

Цитата: Ndakota від 28 Квітень 2009, 12:33:42Гарф чего ты ушёл - я как раз до стаффа дошёл....
Нагамался. :)

βεερ_βooρ

Цитата: graved1gger від 28 Квітень 2009, 11:51:24
тема о плетках и наручниках напоминает 3-ю фулидлку(после флудилки  и мк  ;D)
а она и есть 3-я.
Это первя.
Вторая - Флудилка только для модераторов.
Цитата: SiN від 30 Жовтень 2008, 13:14:09
Флудилка только для модераторов - разговоры на высокоинтеллектуальные темы, не понятные низшим созданиям
Тетья -Закрытая флудилка только для модераторов с плетками и наручниками.
- Разговоры на запретные темы, непостижимые низшим созданиям!
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.
All that's here is Fear! Suppression! Betrayal! Despair! Contempt! Regret! Sadness! Anguish! Madness! And Pain, right?

graved1gger

#158399
есть лишние деньги, думаю куда вложить пока они являются лишними - http://hotline.ua/user/6078/ - один из трех вариантов в закладках

1. хочу нормальную мышку с норм дровами и норм чувствительностью, хотя в тоже время есть МХ1000, которой я не очень доволен, но свои ф-ции выполняет
2. надо сменить наушники к иподу - хочется низких частот
3. нормальная звуковуха, да распаянный на отдельной плате кодек лучше обычной встроенной, но галимый микшер под висту который нельзятключить просто убивает
4. варианты 1+2
this gravedigga is completely broken. all we want is an old version of that toxic angry guy who hates everything and everyone © link. А вот я не уверен,  что старая версия будет доступна.