Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра СКС
/
Звіт
до розрахункової графічної роботи
з дисципліни: «Реконфігуровані комп’ютери»
«Реконфігурований пристрій обчислення елементарних функцій за методом квадратичної апроксимації»
Львів 2018
Зміст
1. Завдання 3
1.2. Варіант завдання 3
2. Аналітичний огляд методів рішення задачі 4
2.1.Теоретичні відомості 4
2.2. Апроксимація квадратичною функцією 6
2.3. Опис програми обчислення коефіцієнтів апроксимації 9
3. Функціональна схема пристрою 11
4. Блок-схема алгоритму обчислення коефіцієнтів апроксимації 13
5. Конфігурація операційної частини пристрою в ПЛІС ALTERA 14
6. Налаштування елементів (мегафункцій) конфігурації 16
Висновки 17
Список використаної літератури 18
Додаток А. Лістинг програми обчислення коефіцієнтів апроксимації. 19
Додаток Б. Значення коефіцієнтів апроксимації. 21
Завдання
Розробити реконфігурований пристрій обчислення елементарних функцій у відповідності до варіанту завдання та етапів виконання роботи.
Варіант завдання
Таблиця 1. Варіант.
Варіант
Функція
Формат: рухома кома X=Xm2Xp
Кількість двійкових розрядів Xm
Кількість двійкових розрядів Xp
11
1/X
9
5
*Похибка обчислень не повинна перевищувати половини молодшого розряду мантиси Xm.
Аналітичний огляд методів рішення задачі
Теоретичні відомості
Апроксимація (Від Латинського "Approximate" "- Наближатися")- наближене вираження певних математичних об'єктів (наприклад, чисел або функцій) через інші більш прості, більш зручні в користуванні або просто більш відомі.
В наукових дослідженнях апроксимація застосовується для опису, аналізу, узагальнення і подальшого використання емпіричних результатів. Як відомо, між величинами може існувати точний зв'язок (функціональний), коли одному значенню аргументу відповідає одне певне значення функції, і менш точний зв'язок (кореляційний), коли одному конкретному значенню аргументу відповідає наближене значення або деяка множина значень функції, в тій або іншій мірі близьких один до одного. При веденні наукових досліджень, обробці результатів спостереження або експерименту зазвичай доводитися стикатися з другим варіантом. При вивченні кількісних залежностей різних показників, значення яких визначаються емпірично, як правило, є деяка їх варіабельність. Частково вона задається неоднорідністю самих об'єктів неживої і, особливо, живої природи, що вивчаються, частково обумовлюється похибкою спостереження і кількісною обробкою матеріалів. Останню складову не завжди вдається виключити повністю, можна лише мінімізувати її ретельним вибором адекватного методу дослідження і акуратністю роботи. Тому при виконанні будь-якої науково-дослідної роботи виникає проблема виявлення справжнього характеру залежності показників, що вивчаються, цієї або іншої міри замаскованих значень. Для цього і застосовується апроксимація - наближений опис кореляційної залежності змінних відповідним рівнянням функціональної залежності, що передає основну тенденцію залежності (або її "тренд").
При виборі апроксимації потрібно виходити з конкретної задачі дослідження. Зазвичай, чим більш просте рівняння використовується для апроксимації, тим більш приблизно одержуваний опис залежності.
Обираючи метод апроксимації, дослідник завжди йде на компроміс: вирішує, в якій мірі в даному випадку доцільно і доречно пожертвувати деталями і, відповідно, наскільки узагальнено потрібно виразити залежність змінних, що зіставляються.
Для того щоб отримати аналітичні залежності, що описують великі масиви даних, використовують методи апроксимації, які основані на тому, що масив даних замінюють простою функцією (лінійною або квадратичною або кубічною або іншою), яка не обов’язково проходить через всі експериментальні точки, але описує тенденції зміни цих даних та забезпечує мінімум суми квадратів відхилень експериментальних даних від цією функції.
Припустимо, що в результаті інженерного або наукового експерименту отримана система точок /. Необхідно знайти аналітичну залежність /, таку, яка найкращим чином описує задану систему точок. Поняття "найкращим чином" означає розв’язання задачі по заданому критерію. Найбільш відомим критерієм для задач апроксимації є критерій середньоквадратичних відхилень (СКВ), який являє собою мінімізацію суми квадратів відхилень експериментальних даних від аналітичної функції /і визначається на заданій множині точок як
/. (2.1.1)
Однак при такій постановці задача апроксимації експериментальних даних має багато розв’язків. Для отримання єдиного розв’язку цієї задачі потрібно задавати значення /певного вигляду, наприклад:
степеневим поліномом
/; (2.1.2)
тригонометричним поліномом
/; (2.1.3)
ортогональним поліномом
/; (2.1.4)
сплайн-функцією та ін.
Апроксимація може застосовуватись не тільки для заміни масивів експериментальних даних простою функцією, яка визначає тенденції зміни цих даних. Іноді доцільно замінити обчислення значень деякої заданої функції на обчислення іншої функції (апроксимуючої). Очевидно, що значення апроксимуючої функції повинні відповідати значенням заданої функції з визначеною точністю на всьому діапазоні зміни аргументу. Така заміна заданої функції може бути ефективною у випадку створення обчислювальних пристроїв. Обчислювальний пристрій характеризується апаратною складністю, яка визначає апаратні витрати пристрою. Якщо апаратна складність пристрою, що реалізує апроксимуючу функцію менші ніж апаратна складність пристрою, що реалізує задану функцію, така заміна буде виправданою. Причиною заміни також може бути виграш в часі обчислення.
2.2. Апроксимація квадратичною функцією
Апаратна реалізація пристроїв для обчислення елементарних функцій накладає певні обмеження на застосування методу апроксимації степеневими поліномами.
Використання поліномів високих степенів передбачає значне ускладнення апаратури, зростання апаратної та структурної складності таких пристроїв. Тому на практиці обмежуються апроксимацією лінійними функціями та квадратичними функціями.
Апроксимація лінійною функцією Y= A+BX вимагає лише одного суматора та одного перемножувача. Якщо підібрати значення В такими, що В= 2к , то операцію множення можна замінити операцією зсуву. В такому випадку при максимальному спрощенні апаратури значно зростає об’єм пам'яті для збереження коефіцієнтів А та В.
Апроксимація квадратичною функцією вигляду
Y= A+(X+B)2 (2.2.1)
вимагає використання двох суматорів та одного перемножувача для піднесення до квадрату. Використання квадратичної функції для апроксимації функції y = 1/x має свої переваги над лінійною апроксимацією завдяки, по-перше, властивостям самої функції y = 1/x, по-друге, значною подібністю цих функцій на інтервалі [0,5..1].
Розглянемо основні засади проектування пристрою обчислення елементарних функцій на прикладі функції y = 1/x.
1/X ( A+(X+B)2
Завдання: Розробити спеціалізований пристрій для обчислення функції y = 1/x. Пристрій входить до складу комплексу цифрової обробки даних. Вхідні дані та результати зберігаються в оперативній пам’яті комплексу. Зв'язок з керуючим комп’ютером здійснюється через шину РСІ.
Формат вхідних даних : Рухома кома
Порядок – Знак + 5 двійкових розрядів
Мантиса – Знак + 9 двійкових розрядів
Похибка обчислень не перевищує половини молодшого розряду числа
Отже, вхідні дані для пристрою представлені в форматі з рухомою комою. Тоді аргумент функції запишемо у вигляді :
X= Xм*2Xп , (2.2.2)
де Xм – мантиса числа, Xп – порядок числа.
На Рис.2.1.1 наведені етапи еквівалентного перетворення операції обчислення функції 1/Х двійкового числа представленого в форматі з рухомою комою. Використавши той факт, що порядок оберненої величини дорівнює порядку прямої з протилежним знаком, отримаємо результат наведений на рисунку.
/
Рис.2.2.1. Етапи еквівалентного перетворення функції.
Діапазон зміни Хп залежить від кількості двійкових розрядів, що виділені для представлення порядку числа. В даному випадку вважається, що ця кількість двійкових розрядів дорівнює 7 (6 розрядів для модуля числа та один знаковий розряд ).
Значення мантиси нормалізоване (Хм >= 0,5), тобто старший значущий двійковий розряд мантиси завжди дорівнює ”1”.
Таким чином, обчислення функції 1/Х зводиться до обчислення функції Yм = А + (Хм + В)2 в інтервалі 0.5 <= Хм < 1 та сумуванням до неї порядку числа Xп.
Весь діапазон значень 0.5 <= Хм < 1 розбивається на n інтервалів. Для кожного інтервалу визначаються свої коефіцієнти апроксимації, такі щоб похибка не перевищувала задане значення (половини молодшого розряду мантиси Хm).
2.3. Опис програми обчислення коефіцієнтів апроксимації
Робота програми починається з визначення параметрів задачі. Задається кількість двійкових розрядів мантиси, яка визначає вагу молодшого розряду та дозволену похибку. Ця похибка не повинна перевищувати вагу половини молодшого розряду. Крім того задається кількість інтервалів апроксимації.
Програма виконує циклічний перебір всіх інтервалів і обрахунок коефіцієнтів апроксимації. Для кожного інтервалу визначаються значення аргумента на початку, в середині (middleD) та в кінці інтервалу. Для середини інтервалу обчислюємо значення Y=1/middleD.
Наступним кроком алгоритму є визначення ділянки функції Х2, яка максимально наближена до функції Y на даному інтервалі. Цей вибір ґрунтується на властивості похідної від функції. Як відомо, перша похідна визначає миттєву швидкість зміни функції в заданій точці. Отже, якщо прирівняти значення першої похідної функції Y в точці middleD до функції, яка є першою похідною від апроксимуючої функції, то можна визначити значення аргументу апроксимуючої функції при якому обидві функції максимально наближені одна до другої по швидкості зміни своїх значень (в нашому випадку вони наближені по швидкості зростання, мають однакову кривизну).
numbers.MidleD = (i + (tempInterval + i - Wmin)) / 2.0; //середина інтервалу
double valueY = 1 / numbers.MidleD; //знайти У
double valueDivY = -1 / Math.Pow(numbers.MidleD, 2); //Y’
double midleValue = valueDivY / 2.0; //х
Отримавши цю точку x, ми можемо визначити значення коефіцієнтів А та В. Наступний фрагмент програми описує як це відбувається.
double valueB = -( Math.Abs(midleValue) + numbers.MidleD; //Б
double valueA = -(Math.Pow(midleValue, 2) - valueY); //А
По суті, нам необхідно таким чином змістити графік апроксимуючої функції, щоб визначена ділянка цього графіка співпала з заданим інтервалом.
Після отримання значень А та В необхідно перевірити чи не перевищене значення дозволеної похибки на всьому інтервалі. Для цього в окремому циклі перебираються всі значення diap інтервалу (вони відрізняються величиною молодшого розряду) і для кожного значення підраховується похибка.
int j = 0;
double diap = i, endD = i + tempInterval - Wmin, Y, Z, K;
while (diap <= endD)
{
diap = i + Wmin * j;
j++;
Y = Math.Log(diap, 2.0);
Z = valueA - Math.Pow((diap - valueB), 2);
K = Math.Abs(Y - Z);
if (K >= MaxError)
MaxError = K; //макс похибка
}
Значення максимальної похибки фіксується в окремій змінній, а потім виводиться на екран для контролю.
Після оброблення за такою процедурою всіх інтервалів, результати виводяться на екран. На Рис.2.3.1 наведені результати роботи програми для 7 інтервалів апроксимації. Кількість двійкових розрядів дорівнює 9 у відповідності до завдання. Як бачимо для 128 інтервалів значення максимальної похибки вдвічі менше ваги молодшого розряду.
/
Рис.2.3.1. Значення коефіцієнтів апроксимації для перших 7 інтервалів.
3. Функціональна схема пристрою
/
Рис.3.1. Формат числа
9-0 р. – мантиса (9 р. – знак мантиси).
15-10 р. – порядок (15 р. – знак порядку).
Функція, що обчислюється Yм = А + (Хм + В)2
Множення: Додавання :
Множення мантис; Вирівнювання порядків;
Додавання порядків; Додавання мантис;
Нормалізація результату. Нормалізація результату.
/
Рис.3.2. Функціональна схема суматора.
/
Рис.3.3. Функціональна схема помножувача.
Блок-схема алгоритму обчислення коефіцієнтів апроксимації
5. Конфігурація операційної частини пристрою в ПЛІС ALTERA
/
Рис.5.1. Структурна схема пристрою.
Структурна схема пристрою наведена на Рис.5.1. Коефіцієнти апроксимації А та В перед виконання обчислень записуються в оперативну пам'ять пристрою "Пам'ять А" та " Пам'ять В" відповідно. Запис коефіцієнтів здійснюється через шину РСІ від керуючого комп’ютера.
Значення коефіцієнтів згідно даним отриманим в результаті роботи програми обчислення коефіцієнтів апроксимації знаходяться в діапазоні від (0,48…1,9). Для представлення коефіцієнтів достатньо 15 розрядів. Один двійковий розряд виділяється для представлення знаку числа, два розряди для цілої частини числа та 12 розрядів для дробової частини.
Вихідні дані Y, які являють собою значення апроксимуючої функції записуються в "Пам'ять Y". Кількість значень, записаних в пам'ять дорівнює розміру пам'яті FIFOІ.
Вихідні дані Х можуть поступати в блок пам'яті FIFOІ з двох джерел. Якщо джерелом даних є спеціалізований пристрій комплексу або спільна пам'ять, то дані поступають через локальну шину комплексу. Якщо дані були попередньо збережені в пам'яті керуючого комп’ютера, то вони потрапляють на вхід через шину РСІ, аналогічно коефіцієнтам А та В. Комутатор К2 здійснює вибір відповідного джерела даних. В пам'яті FIFOІ накопичується певний об’єм вхідних даних для неперервної обробки потоку даних. Після накопичення потрібного об’єму, дані по одному значенню Х поступають у вхідний регістр Рг1.
Суматор СМ1 та перемножувач ПМ1 обчислюють значення (Хм-В)2
До якого в суматорі СМ2 додається значення коефіцієнта А. Схема нормалізації СН1 забезпечує представлення результату в нормалізованому вигляді, тобто мантиса результату 0.5<=Yм<1.
Результат обчислення записується в пам’ять FIFOO. Після накопичення в цій пам’яті певного об’єму результатів (рівного кількості накопичених вихідних даних в пам’яті FIFOI) весь накопичений блок результатів передається для подальшого оброблення. Якщо подальше оброблення виконується в одному з спеціалізованих пристроїв, або зберігається у спільній памяті, то результати передаються споживачеві через локальну шину. Якщо споживачем є пам’ять керуючого комп’ютера, то дані передаються через шину РСІ.
Достатню точність обчислень забезпечують 128 інтервали апроксимації. Це означає, що пам'ять коефіцієнтів має розмір 128 х 15. Для адресації такої пам'яті необхідно 7 двійкових розрядів 27 = 128. Тому старші 6 розрядів мантиси числа Х поступають на адресні входи пам'яті коефіцієнтів, що забезпечує вибірку з пам'яті потрібного значення коефіцієнта в кожному інтервалі.
6. Налаштування елементів (мегафункцій) конфігурації
/
Рис.6.1. Конфігурація.
Конфігурація побудована на базі основного проекту F_Base. Для коефіцієнтів апроксимації A та B створена пам’ять для їх зберігання (файли AB.hex та AB_1.hex відповідно). Схема містить 2 суматори (один для Хм + В, інший – для реалізації А + (Хм + В)2 та помножувач (для реалізації (Хм + В)2).
/
Рис.6.2. Результат обрахунку.
Висновки
Виконуючи дану розрахунково графічну роботу я освоїв принципи побудови спеціалізованих обчислювальних систем, що будуються на принципах математичної апроксимації для спрощення операцій, які вимагають великої обчислювальної потужності, закріпив знання по створенню комбінаційних схем на логічних елементах, зрозумів питання точності обчислень при розрахунку коефіцієнтів апроксимації.
Список використаної літератури
Методичні вказівки до лабораторної роботи РК.
Лукашенко В.М. "Швидкодіючий цифровий перетворювач елементарних функцій" // Вісник Вінницького державного сільськогоподарського інституту. –1999. – Спец. вип. – С.114-117
Лукашенко А.Г. Лукашенко В.М. Лукашенко Д.А."Спеціалізовані сопроцесори на базі таблично-алгоритмічних методів для лазерних маніпуляторів" Монографія / «ЧДНДІТЕІХП». - Черкаси, 2010. – 164 с. – Укр. - Деп. в ВИНИТИ 20.06.2010. №11-хп 2010
ALTERACyclone Device Handbook, www.altera.com.
Altera Quartus II Tutorial http://lslwww.epfl.ch/pages/teaching/cours_lsl/sl_info/Labo5.a.pdf
С. А. Іванець ПРОЕКТУВАННЯ КОМП'ЮТЕРНИХ СИСТЕМ НА ОСНОВІ МІКРОСХЕМ ПРОГРАМОВАНОЇ ЛОГІКИ Сумський державний університет 2013
Додаток А. Лістинг програми обчислення коефіцієнтів апроксимації.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace PK
{
public partial class Form1 : Form
{
Numbers numbers = new Numbers();
Calculating calculating = new Calculating();
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void calculate_Click(object sender, EventArgs e)
{
// for (;;)
// {
double Wmin = Math.Pow(2, -(numbers.Mantis)); //вага мол розряду
numbers.Interval = Math.Pow(2, numbers.Interval);
double tempInterval = 0.5 / numbers.Interval;
double MaxError = 0;
WeightOfJunior.Text = ("Вага молодшого розряду = ") + Convert.ToString(Wmin);
double divMan = Wmin / 2;
label6.Text = ("Половина молодшого розряду = ") + Convert.ToString(divMan);
dataGridView1.Rows.Clear();
for (double i = 0.5; i < 1; i += tempInterval, numbers.Interval--)
{
numbers.MidleD = (i + (tempInterval + i - Wmin)) / 2.0; //середина інтервалу
double valueY = 1 / numbers.MidleD; //знайти У
double valueDivY = -1 / Math.Pow(numbers.MidleD, 2); //Y’
double midleValue = valueDivY / 2.0; //х
int j = 0;
double diap = i, endD = i + tempInterval - Wmin, Y, Z, K;
while (diap <= endD)
{
diap = i + Wmin * j;
j++;
Y = Math.Log(diap, 2.0);
Z = valueA - Math.Pow((diap - valueB), 2);
K = Math.Abs(Y - Z);
if (K >= MaxError)
MaxError = K; //макс похибка
}
double deltaStart = Math.Abs(Math.Log(i, 2.0) - (valueA - Math.Pow((i - valueB), 2))); //На початку інтервалу
double deltaEnd = Math.Abs(Math.Log(tempInterval + i - Wmin, 2.0) - (valueA - Math.Pow(((tempInterval + i - Wmin) - valueB), 2)));//на кінці інтервалу
dataGridView1.Rows.Add(i, numbers.MidleD, valueB, valueA, deltaStart, deltaEnd); //вивід таблиці в форму
}
label5.Text = ("Максимальна похибка = ") + Convert.ToString(MaxError);
if (Wmin < MaxError)
{
MessageBox.Show("Похибка перевищує половину ваги молодшого розряду", "Попередження", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
}
// }
private void mantis_TextChanged(object sender, EventArgs e)
{
numbers.Mantis = Convert.ToDouble(mantis.Text);
}
private void interval_TextChanged(object sender, EventArgs e)
{
numbers.Interval = Convert.ToDouble(interval.Text);
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void label5_Click(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
}
}
Додаток Б. Значення коефіцієнтів апроксимації.
Початок інтервалу
Середина інтервалу
В
А
Похибка на початку інтервалу
Похибка на кінці інтервалу
0,5
0,501937866210938
1,93906299464534
1,0709093270597
7,02450209622008E-06
6,96915323972203E-06
0,50390625
0,505844116210938
1,93187141855022
1,05031863646036
6,85844444603401E-06
6,80436797229067E-06
0,5078125
0,509750366210938
1,92484992917228
1,03036958489814
6,69619450066605E-06
6,6433517058595E-06
0,51171875
0,513656616210938
1,91799464609091
1,01104143510047
6,53763672875396E-06
6,4859903707859E-06
0,515625
0,517562866210938
1,91130180603374
0,992314248918937
6,38265994845622E-06
6,33217417944643E-06
0,51953125
0,521469116210938
1,90476775848891
0,974168851108854
6,2311571310536E-06
6,18179743583358E-06
0,5234375
0,525375366210938
1,89838896151312
0,956586795000063
6,08302521765136E-06
6,03475835425638E-06
0,52734375
0,529281616210938
1,89216197772532
0,939550329947069
5,93816494232069E-06
5,89095888658964E-06
0,53125
0,533187866210938
1,88608347047644
0,923042370454248
5,79648066600935E-06
5,75030455851611E-06
0,53515625
0,537094116210938
1,88015020018632
0,907046466878552
5,65788021944513E-06
5,61270431465033E-06
0,5390625
0,541000366210938
1,87435902083933
0,891546777618534
5,52227475314471E-06
5,4780703718782E-06
0,54296875
0,544906616210938
1,86870687663068
0,876528042704336
5,38957859408384E-06
5,34631807735941E-06
0,546875
0,548812866210938
1,86319079875604
0,861975558708818
5,25970911058327E-06
5,21736577685505E-06
0,55078125
0,552719116210938
1,85780790233714
0,847875154905018
5,132586584633E-06
5,09113468905031E-06
0,5546875
0,556625366210938
1,85255538347702
0,8342131705999
5,00813408921275E-06
4,96754878287486E-06
0,55859375
0,560531616210938
1,84743051643823
0,820976433578709
4,88627736938696E-06
4,8465346642601E-06
0,5625
0,564437866210938
1,84243065093829
0,808152239598368
4,76694473627859E-06
4,72802146800344E-06
0,56640625
0,568344116210938
1,8375532095567
0,79572833287213
4,65006695715697E-06
4,61194075229709E-06
0,5703125
0,572250366210938
1,83279568524807
0,783692887491286
4,53557715729414E-06
4,49822640091746E-06
0,57421875
0,576156616210938
1,8281556389565
0,772034489732985
4,42341072437458E-06
4,38681452874512E-06
0,578125
0,580062866210938
1,82363069732628
0,760742121206376
4,31350521534757E-06
4,27764339205883E-06
0,58203125
0,583969116210938
1,81921855050452
0,749805142792086
4,20580027249429E-06
4,17065330327038E-06
0,5859375
0,587875366210938
1,81491695003136
0,739213279332812
4,10023753816269E-06
4,06578654899015E-06
0,58984375
0,591781616210938
1,81072370681377
0,728956605035242
3,9967605756086E-06
3,96298731153433E-06
0,59375
0,595687866210938
1,80663668917898
0,719025529545939
3,89531479627614E-06
3,86220159664941E-06
0,59765625
0,599594116210938
1,80265382100416
0,709410784665954
3,7958473843025E-06
3,76337716045949E-06
0,6015625
0,603500366210938
1,79877307991854
0,700103411671029
3,6983072303487E-06
3,66646344240884E-06
0,60546875
0,607406616210938
1,79499249557511
0,691094749206137
3,602644864098E-06
3,57141150120199E-06
0,609375
0,611312866210938
1,79131014798838
0,682376421724948
3,50881239341572E-06
3,47817395263128E-06
0,61328125
0,615219116210938
1,78772416593562
0,673940328446436
3,41676344217667E-06
3,38670490995785E-06
0,6171875
0,619125366210938
1,78423272541857
0,665778632802472
3,32645309553126E-06
3,29695992851153E-06
0,62109375
0,623031616210938
1,78083404818296
0,657883752351693
3,23783784228482E-06
3,20889595062379E-06
0,625
0,626937866210938
1,77752640029348
0,650248349136342
3,15087552515969E-06
3,12247125489051E-06
0,62890625
0,630844116210938
1,77430809076164
0,642865320460051
3,06552528839266E-06
3,0376454057679E-06
0,6328125
0,634750366210938
1,77117747022424
0,635727790065801
2,98174753099456E-06
2,95437920716513E-06
0,63671875
0,638656616210938
1,76813292967049
0,628829099694385
2,89950386112015E-06
2,8726346568142E-06
0,640625
0,642562866210938
1,76517289921537
0,62216280100483
2,81875705043788E-06
2,79237490286022E-06
0,64453125
0,646469116210938
1,76229584691761
0,615722647839195
2,73947099449501E-06
2,71356420200597E-06
0,6484375
0,650375366210938
1,7595002776402
0,609502588815156
2,66161066930781E-06
2,63616788043208E-06
0,65234375
0,654281616210938
1,75678473195173
0,603496760230656
2,58514209594551E-06
2,5601522958274E-06
0,65625
0,658187866210938
1,75414778506684
0,597699479265744
2,51003230000713E-06
2,48548479864219E-06
0,66015625
0,662094116210938
1,75158804582421
0,592105237467526
2,43624927953601E-06
2,41213370044679E-06
0,6640625
0,666000366210938
1,74910415570047
0,586708694504883
2,36376196793842E-06
2,34006823685018E-06
0,66796875
0,669906616210938
1,74669478785865
0,581504672180325
2,2925402035634E-06
2,26925853885618E-06
0,671875
0,673812866210938
1,74435864622972
0,576488148686996
2,22255469661814E-06
2,19967559822454E-06
0,67578125
0,677719116210938
1,74209446462588
0,571654253099497
2,1537769999691E-06
2,13129123971534E-06
0,6796875
0,681625366210938
1,73990100588432
0,566998260087724
2,08617948027623E-06
2,06407809333342E-06
0,68359375
0,685531616210938
1,73777706104032
0,562515584843546
2,01973528990429E-06
1,99800956557361E-06
0,6875
0,689437866210938
1,73572144852839
0,558201778210598
1,95441834016652E-06
1,93305981244229E-06
0,69140625
0,693344116210938
1,73373301341047
0,554052522008019
1,89020327578948E-06
1,86920371636479E-06
0,6953125
0,697250366210938
1,73181062663001
0,550063624539371
1,82706545082123E-06
1,80641686031713E-06
0,69921875
0,701156616210938
1,72995318429106
0,546231016278466
1,76498090453947E-06
1,74467550528856E-06
0,703125
0,705062866210938
1,72815960696125
0,542550745724211
1,70392633813687E-06
1,68395656663378E-06
0,70703125
0,708969116210938
1,72642883899788
0,539018975416983
1,64387909384889E-06
1,62423759403341E-06
0,7109375
0,712875366210938
1,72475984789611
0,535631978109411
1,5848171338595E-06
1,56549674984463E-06
0,71484375
0,716781616210938
1,72315162365851
0,5323861330848
1,52671901909596E-06
1,50771278917272E-06
0,71875
0,720687866210938
1,72160317818506
0,52927792261677
1,46956389113218E-06
1,45086504094172E-06
0,72265625
0,724594116210938
1,72011354468293
0,526303928563956
1,41333145214917E-06
1,39493338902064E-06
0,7265625
0,728500366210938
1,71868177709525
0,523460829093974
1,35800194794866E-06
1,33989825512604E-06
0,73046875
0,732406616210938
1,71730694954808
0,520745395531085
1,30355615007849E-06
1,28574058105846E-06
0,734375
0,736312866210938
1,71598815581511
0,518154489322285
1,24997533951232E-06
1,23244181232662E-06
0,73828125
0,740219116210938
1,71472450879921
0,515685059116778
1,19724128910814E-06
1,17998388182716E-06
0,7421875
0,744125366210938
1,71351514003031
0,513334137954059
1,1453362504521E-06
1,12834919546723E-06
0,74609375
0,748031616210938
1,71235919917913
0,511098840556027
1,09424293764926E-06
1,07752061734301E-06
0,75
0,751937866210938
1,71125585358588
0,508976360718778
1,04394451239109E-06
1,02748145419662E-06
0,75390625
0,755844116210938
1,71020428780374
0,506963968799939
9,9442457146548E-07
9,7821544342569E-07
0,7578125
0,759750366210938
1,70920370315636
0,505059009297567
9,45667132434824E-07
9,29706739094538E-07
0,76171875
0,763656616210938
1,7082533173089
0,50325889851687
8,97656619647247E-07
8,81939897667827E-07
0,765625
0,767562866210938
1,70735236385222
0,501561122321119
8,50377855299289E-07
8,34899869350814E-07
0,76953125
0,771469116210938
1,70650009189973
0,499963233963337
8,03816043171146E-07
7,8857198271276E-07
0,7734375
0,775375366210938
1,70569576569632
0,498462851995475
7,57956760633061E-07
7,42941935472086E-07
0,77734375
0,779281616210938
1,70493866423916
0,497057658251956
7,12785945489181E-07
6,97995782172889E-07
0,78125
0,783187866210938
1,70422808090982
0,495745395904585
6,68289885485951E-07
6,53719924303964E-07
0,78515625
0,787094116210938
1,70356332311727
0,494523867585974
6,24455206876817E-07
6,10101098030835E-07
0,7890625
0,791000366210938
1,70294371195159
0,493390933578765
5,81268868093954E-07
5,67126368922199E-07
0,79296875
0,794906616210938
1,70236858184775
0,492344510068031
5,3871814559292E-07
5,24783116906402E-07
0,796875
0,798812866210938
1,70183728025937
0,491382567454363
4,96790626913768E-07
4,83059030498278E-07
0,80078125
0,802719116210938
1,70134916734196
0,490503128725278
4,55474201466188E-07
4,41942096640613E-07
0,8046875
0,806625366210938
1,70090361564532
0,489704267882648
4,14757050593018E-07
4,01420591766843E-07
0,80859375
0,810531616210938
1,70050000981491
0,488984108423993
3,74627640853387E-07
3,61483074640123E-07
0,8125
0,814437866210938
1,7001377463018
0,488340821875538
3,3507471480787E-07
3,22118377249492E-07
0,81640625
0,818344116210938
1,69981623308084
0,487772626375049
2,9608728246977E-07
2,83315596816269E-07
0,8203125
0,822250366210938
1,699534889377
0,487277785302537
2,57654615476444E-07
2,45064089576807E-07