From a6956f3947f31239587a15fbe0677149dd59681e Mon Sep 17 00:00:00 2001 From: Ksyer Date: Thu, 22 Feb 2024 10:52:46 +0800 Subject: [PATCH] Add analysis of bound curve --- Block RIP/bound/linefit.m | 12 + Block RIP/bound/main.m | 27 +- Block RIP/bound/result.eps | 1886 ++++++++++++++++++++++++++++++++++++ Block RIP/bound/result.jpg | Bin 0 -> 29228 bytes 4 files changed, 1917 insertions(+), 8 deletions(-) create mode 100644 Block RIP/bound/linefit.m create mode 100644 Block RIP/bound/result.eps create mode 100644 Block RIP/bound/result.jpg diff --git a/Block RIP/bound/linefit.m b/Block RIP/bound/linefit.m new file mode 100644 index 0000000..a7879f8 --- /dev/null +++ b/Block RIP/bound/linefit.m @@ -0,0 +1,12 @@ +function [k, b] = linefit(x, y) + n = length(x); + x = reshape(x, n, 1); + y = reshape(y, n, 1); + A = [x, ones(n, 1)]; + bb = y; + B = A' * A; + bb = A' * bb; + yy = B \ bb; + k = yy(1); + b = yy(2); +end \ No newline at end of file diff --git a/Block RIP/bound/main.m b/Block RIP/bound/main.m index 6de5259..c163df2 100644 --- a/Block RIP/bound/main.m +++ b/Block RIP/bound/main.m @@ -3,23 +3,34 @@ clear; M = 50; eps = 1e-5; -delta = 0.3; +delta = 1/3; C = 10.66; -nums = 10:0.1:50; -num = length(nums); -N = zeros(1, num); -upper_bound_C1 = zeros(1, num); -upper_bound_C2 = zeros(1, num); +nums = 20:0.1:50; +len = length(nums); +N = zeros(1, len); +upper_bound_C1 = zeros(1, len); +upper_bound_C2 = zeros(1, len); +log_ub_C1 = zeros(1, len); +log_ub_C2 = zeros(1, len); -for i = 1: length(nums) +for i = 1: len N(i) = 10^nums(i); upper_bound_C1(i) = get_our_ub(1, N(i), C, M, eps); + log_ub_C1(i) = log(upper_bound_C1(i)); upper_bound_C2(i) = get_wl_ub(N(i), M, eps); + log_ub_C2(i) = log(upper_bound_C2(i)); N(i) = nums(i); end semilogy(N, upper_bound_C1, 'r-', N, upper_bound_C2, 'b'); +legend("Our result", "Wang's result"); xlabel("log_{10}(N)"); ylabel("Upper bound of K"); -title("Prob(\delta_K < 0.3) >= 1 - 10^{-5}") \ No newline at end of file +title_name = strcat("Prob(\delta_K < ", string(delta), ") >= 1 - ", string(eps)); +title(title_name); + +[k1, b1] = linefit(N, log_ub_C1); +[k2, b2] = linefit(N, log_ub_C2); +fprintf("Our result gradient: %f\n", k1); +fprintf("Wang's result gradient: %f\n", k2); diff --git a/Block RIP/bound/result.eps b/Block RIP/bound/result.eps new file mode 100644 index 0000000..78953af --- /dev/null +++ b/Block RIP/bound/result.eps @@ -0,0 +1,1886 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (MATLAB, The Mathworks, Inc. Version 9.14.0.2206163 \(R2023a\). Operating System: Linux) +%%Title: (/home/ksyer/Develop/FAR_CS/Block RIP/bound/result.eps) +%%CreationDate: 2024-02-22T10:51:45 +%%Pages: (atend) +%%BoundingBox: 0 0 428 310 +%%LanguageLevel: 3 +%%EndComments +%%BeginProlog +%%BeginResource: procset (Apache XML Graphics Std ProcSet) 1.2 0 +%%Version: 1.2 0 +%%Copyright: (Copyright 2001-2003,2010 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/bd{bind def}bind def +/ld{load def}bd +/GR/grestore ld +/GS/gsave ld +/RM/rmoveto ld +/C/curveto ld +/t/show ld +/L/lineto ld +/ML/setmiterlimit ld +/CT/concat ld +/f/fill ld +/N/newpath ld +/S/stroke ld +/CC/setcmykcolor ld +/A/ashow ld +/cp/closepath ld +/RC/setrgbcolor ld +/LJ/setlinejoin ld +/GC/setgray ld +/LW/setlinewidth ld +/M/moveto ld +/re {4 2 roll M +1 index 0 rlineto +0 exch rlineto +neg 0 rlineto +cp } bd +/_ctm matrix def +/_tm matrix def +/BT { _ctm currentmatrix pop matrix _tm copy pop 0 0 moveto } bd +/ET { _ctm setmatrix } bd +/iTm { _ctm setmatrix _tm concat } bd +/Tm { _tm astore pop iTm 0 0 moveto } bd +/ux 0.0 def +/uy 0.0 def +/F { + /Tp exch def + /Tf exch def + Tf findfont Tp scalefont setfont + /cf Tf def /cs Tp def +} bd +/ULS {currentpoint /uy exch def /ux exch def} bd +/ULE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add moveto Tcx uy To add lineto + Tt setlinewidth stroke + grestore +} bd +/OLE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs add moveto Tcx uy To add cs add lineto + Tt setlinewidth stroke + grestore +} bd +/SOE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs 10 mul 26 idiv add moveto Tcx uy To add cs 10 mul 26 idiv add lineto + Tt setlinewidth stroke + grestore +} bd +/QT { +/Y22 exch store +/X22 exch store +/Y21 exch store +/X21 exch store +currentpoint +/Y21 load 2 mul add 3 div exch +/X21 load 2 mul add 3 div exch +/X21 load 2 mul /X22 load add 3 div +/Y21 load 2 mul /Y22 load add 3 div +/X22 load /Y22 load curveto +} bd +/SSPD { +dup length /d exch dict def +{ +/v exch def +/k exch def +currentpagedevice k known { +/cpdv currentpagedevice k get def +v cpdv ne { +/upd false def +/nullv v type /nulltype eq def +/nullcpdv cpdv type /nulltype eq def +nullv nullcpdv or +{ +/upd true def +} { +/sametype v type cpdv type eq def +sametype { +v type /arraytype eq { +/vlen v length def +/cpdvlen cpdv length def +vlen cpdvlen eq { +0 1 vlen 1 sub { +/i exch def +/obj v i get def +/cpdobj cpdv i get def +obj cpdobj ne { +/upd true def +exit +} if +} for +} { +/upd true def +} ifelse +} { +v type /dicttype eq { +v { +/dv exch def +/dk exch def +/cpddv cpdv dk get def +dv cpddv ne { +/upd true def +exit +} if +} forall +} { +/upd true def +} ifelse +} ifelse +} if +} ifelse +upd true eq { +d k v put +} if +} if +} if +} forall +d length 0 gt { +d setpagedevice +} if +} bd +/RE { % /NewFontName [NewEncodingArray] /FontName RE - + findfont dup length dict begin + { + 1 index /FID ne + {def} {pop pop} ifelse + } forall + /Encoding exch def + /FontName 1 index def + currentdict definefont pop + end +} bind def +%%EndResource +%%BeginResource: procset (Apache XML Graphics EPS ProcSet) 1.0 0 +%%Version: 1.0 0 +%%Copyright: (Copyright 2002-2003 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/BeginEPSF { %def +/b4_Inc_state save def % Save state for cleanup +/dict_count countdictstack def % Count objects on dict stack +/op_count count 1 sub def % Count objects on operand stack +userdict begin % Push userdict on dict stack +/showpage { } def % Redefine showpage, { } = null proc +0 setgray 0 setlinecap % Prepare graphics state +1 setlinewidth 0 setlinejoin +10 setmiterlimit [ ] 0 setdash newpath +/languagelevel where % If level not equal to 1 then +{pop languagelevel % set strokeadjust and +1 ne % overprint to their defaults. +{false setstrokeadjust false setoverprint +} if +} if +} bd +/EndEPSF { %def +count op_count sub {pop} repeat % Clean up stacks +countdictstack dict_count sub {end} repeat +b4_Inc_state restore +} bd +%%EndResource +%FOPBeginFontDict +%%IncludeResource: font Courier-Oblique +%%IncludeResource: font Courier-BoldOblique +%%IncludeResource: font Courier-Bold +%%IncludeResource: font ZapfDingbats +%%IncludeResource: font Symbol +%%IncludeResource: font Helvetica +%%IncludeResource: font Helvetica-Oblique +%%IncludeResource: font Helvetica-Bold +%%IncludeResource: font Helvetica-BoldOblique +%%IncludeResource: font Times-Roman +%%IncludeResource: font Times-Italic +%%IncludeResource: font Times-Bold +%%IncludeResource: font Times-BoldItalic +%%IncludeResource: font Courier +%FOPEndFontDict +%%BeginResource: encoding WinAnsiEncoding +/WinAnsiEncoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl +/numbersign /dollar /percent /ampersand /quotesingle +/parenleft /parenright /asterisk /plus /comma +/hyphen /period /slash /zero /one +/two /three /four /five /six +/seven /eight /nine /colon /semicolon +/less /equal /greater /question /at +/A /B /C /D /E +/F /G /H /I /J +/K /L /M /N /O +/P /Q /R /S /T +/U /V /W /X /Y +/Z /bracketleft /backslash /bracketright /asciicircum +/underscore /quoteleft /a /b /c +/d /e /f /g /h +/i /j /k /l /m +/n /o /p /q /r +/s /t /u /v /w +/x /y /z /braceleft /bar +/braceright /asciitilde /bullet /Euro /bullet +/quotesinglbase /florin /quotedblbase /ellipsis /dagger +/daggerdbl /circumflex /perthousand /Scaron /guilsinglleft +/OE /bullet /Zcaron /bullet /bullet +/quoteleft /quoteright /quotedblleft /quotedblright /bullet +/endash /emdash /asciitilde /trademark /scaron +/guilsinglright /oe /bullet /zcaron /Ydieresis +/space /exclamdown /cent /sterling /currency +/yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /sfthyphen /registered +/macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /middot /cedilla +/onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex +/Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave +/Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis +/multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave +/aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex +/edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex +/otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn +/ydieresis +] def +%%EndResource +%FOPBeginFontReencode +/Courier-Oblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-Oblique exch definefont pop +/Courier-BoldOblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-BoldOblique exch definefont pop +/Courier-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-Bold exch definefont pop +/Helvetica findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica exch definefont pop +/Helvetica-Oblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-Oblique exch definefont pop +/Helvetica-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-Bold exch definefont pop +/Helvetica-BoldOblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-BoldOblique exch definefont pop +/Times-Roman findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Roman exch definefont pop +/Times-Italic findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Italic exch definefont pop +/Times-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Bold exch definefont pop +/Times-BoldItalic findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-BoldItalic exch definefont pop +/Courier findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier exch definefont pop +%FOPEndFontReencode +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 428 310 +%%BeginPageSetup +[1 0 0 -1 0 310] CT +%%EndPageSetup +GS +[0.75 0 0 0.75 0 0.25] CT +1 GC +N +0 0 570 413 re +f +GR +GS +[0.75 0 0 0.75 0 0.25] CT +1 GC +N +0 0 570 413 re +f +GR +GS +[0.75 0 0 0.75 0 0.25] CT +1 GC +N +74 365 M +516 365 L +516 31 L +74 31 L +cp +f +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 365 M +516 365 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 31 M +516 31 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 365 M +74 360.58 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +147.667 365 M +147.667 360.58 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +221.333 365 M +221.333 360.58 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +295 365 M +295 360.58 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +368.667 365 M +368.667 360.58 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +442.333 365 M +442.333 360.58 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 365 M +516 360.58 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 31 M +74 35.42 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +147.667 31 M +147.667 35.42 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +221.333 31 M +221.333 35.42 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +295 31 M +295 35.42 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +368.667 31 M +368.667 35.42 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +442.333 31 M +442.333 35.42 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 31 M +516 35.42 L +S +GR +GS +[0.75 0 0 0.75 55.5 278.00001] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-8.5 13 moveto +1 -1 scale +(20) t +GR +GR +GS +[0.75 0 0 0.75 110.75 278.00001] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-8.5 13 moveto +1 -1 scale +(25) t +GR +GR +GS +[0.75 0 0 0.75 166.00001 278.00001] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-8.5 13 moveto +1 -1 scale +(30) t +GR +GR +GS +[0.75 0 0 0.75 221.25 278.00001] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-8.5 13 moveto +1 -1 scale +(35) t +GR +GR +GS +[0.75 0 0 0.75 276.50002 278.00001] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-8.5 13 moveto +1 -1 scale +(40) t +GR +GR +GS +[0.75 0 0 0.75 331.74998 278.00001] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-8.5 13 moveto +1 -1 scale +(45) t +GR +GR +GS +[0.75 0 0 0.75 387 278.00001] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-8.5 13 moveto +1 -1 scale +(50) t +GR +GR +GS +[0.75 0 0 0.75 198 302.5] CT +0.149 GC +/Helvetica 14.667 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(log) t +GR +GR +GS +[0.75 0 0 0.75 215.25 307.75] CT +0.149 GC +/Helvetica 11.733 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(10) t +GR +GR +GS +[0.75 0 0 0.75 226.5 302.5] CT +0.149 GC +/Helvetica 14.667 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(\(N\)) t +GR +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 365 M +74 31 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 365 M +516 31 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 365 M +78.42 365 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 281.5 M +78.42 281.5 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 198 M +78.42 198 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 114.5 M +78.42 114.5 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 31 M +78.42 31 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 365 M +511.58 365 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 281.5 M +511.58 281.5 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 198 M +511.58 198 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 114.5 M +511.58 114.5 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 31 M +511.58 31 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 365 M +76.21 365 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 323.25 M +76.21 323.25 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 281.5 M +76.21 281.5 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 239.75 M +76.21 239.75 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 198 M +76.21 198 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 156.25 M +76.21 156.25 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 114.5 M +76.21 114.5 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 72.75 M +76.21 72.75 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +74 31 M +76.21 31 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 365 M +513.79 365 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 323.25 M +513.79 323.25 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 281.5 M +513.79 281.5 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 239.75 M +513.79 239.75 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 198 M +513.79 198 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 156.25 M +513.79 156.25 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 114.5 M +513.79 114.5 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 72.75 M +513.79 72.75 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +516 31 M +513.79 31 L +S +GR +GS +[0.75 0 0 0.75 28.5 278.5] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(10) t +GR +GR +GS +[0.75 0 0 0.75 41.25 274] CT +0.149 GC +/Helvetica 10.667 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(10) t +GR +GR +GS +[0.75 0 0 0.75 28.5 216.25] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(10) t +GR +GR +GS +[0.75 0 0 0.75 41.25 211.75] CT +0.149 GC +/Helvetica 10.667 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(20) t +GR +GR +GS +[0.75 0 0 0.75 28.5 153.25] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(10) t +GR +GR +GS +[0.75 0 0 0.75 41.25 148.75] CT +0.149 GC +/Helvetica 10.667 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(30) t +GR +GR +GS +[0.75 0 0 0.75 28.5 91] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(10) t +GR +GR +GS +[0.75 0 0 0.75 41.25 86.5] CT +0.149 GC +/Helvetica 10.667 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(40) t +GR +GR +GS +[0.75 0 0 0.75 28.5 28] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(10) t +GR +GR +GS +[0.75 0 0 0.75 41.25 23.5] CT +0.149 GC +/Helvetica 10.667 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(50) t +GR +GR +GS +[0 -0.75 0.75 0 25.25 148.74989] CT +0.149 GC +/Helvetica 14.667 F +GS +[1 0 0 1 0 0] CT +-64.5 -4 moveto +1 -1 scale +(Upper bound of K) t +GR +GR +GS +[0.75 0 0 0.75 120.75 13.75] CT +/Helvetica-Bold 14.667 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(Prob\() t +GR +GR +GS +[0.75 0 0 0.75 155.25 13.75] CT +N +3 0.234 M +2.484 0.234 2.039 0.039 QT +1.594 -0.156 1.258 -0.523 QT +0.922 -0.891 0.758 -1.344 QT +0.594 -1.797 0.594 -2.328 QT +0.594 -3.266 1.039 -4.148 QT +1.484 -5.031 2.25 -5.672 QT +3.016 -6.313 3.922 -6.547 QT +3.484 -7.359 3.25 -7.945 QT +3.016 -8.531 3.016 -9.141 QT +3.016 -9.609 3.227 -9.953 QT +3.438 -10.297 3.813 -10.492 QT +4.188 -10.688 4.656 -10.688 QT +6.094 -10.688 7.422 -10.391 QT +7.766 -10.313 7.766 -9.984 QT +7.766 -9.734 7.586 -9.531 QT +7.406 -9.328 6.156 -9.328 QT +5.969 -9.328 5.82 -9.414 QT +5.672 -9.5 5.359 -9.711 QT +5.047 -9.922 4.797 -10.039 QT +4.547 -10.156 4.281 -10.156 QT +4.281 -10.156 4.344 -9.969 QT +4.406 -9.781 4.406 -9.484 QT +4.406 -9 4.867 -8.383 QT +5.328 -7.766 6.094 -6.797 QT +6.984 -5.672 6.984 -4.313 QT +6.984 -3.641 6.789 -2.852 QT +6.594 -2.063 6.227 -1.367 QT +5.859 -0.672 5.281 -0.219 QT +4.703 0.234 3 0.234 QT +cp +3.344 -0.188 M +3.625 -0.188 4.039 -0.797 QT +4.453 -1.406 4.672 -2.242 QT +4.891 -3.078 4.891 -3.641 QT +4.891 -4.766 4.234 -5.922 QT +4.234 -5.922 3.703 -5.234 QT +3.172 -4.547 2.883 -3.625 QT +2.594 -2.703 2.594 -1.891 QT +2.594 -1.172 2.969 -0.68 QT +3.344 -0.188 3.344 -0.188 QT +cp +f +GR +GS +[0.75 0 0 0.75 161.25 19] CT +/Helvetica-Bold 11.733 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +(K) t +GR +GR +GS +[0.75 0 0 0.75 168.75 13.75] CT +/Helvetica-Bold 14.667 F +GS +[1 0 0 1 0 0] CT +0 0 moveto +1 -1 scale +( < 0.33333\) >= 1 - 1e-05) t +GR +GR +GS +[0.75 0 0 0.75 0 0.25] CT +1 0 0 RC +1 LJ +0.667 LW +N +74 314.19 M +75.473 313.355 L +76.947 312.52 L +78.42 311.685 L +79.893 310.85 L +81.367 310.015 L +82.84 309.18 L +84.313 308.345 L +85.787 307.51 L +87.26 306.675 L +88.733 305.84 L +90.207 305.005 L +91.68 304.17 L +93.153 303.335 L +94.627 302.5 L +96.1 301.665 L +97.573 300.83 L +99.047 299.995 L +100.52 299.16 L +101.993 298.325 L +103.467 297.49 L +104.94 296.655 L +106.413 295.82 L +107.887 294.985 L +109.36 294.15 L +110.833 293.315 L +112.307 292.48 L +113.78 291.645 L +115.253 290.81 L +116.727 289.975 L +118.2 289.14 L +119.673 288.305 L +121.147 287.47 L +122.62 286.635 L +124.093 285.8 L +125.567 284.965 L +127.04 284.13 L +128.513 283.295 L +129.987 282.46 L +131.46 281.625 L +132.933 280.79 L +134.407 279.955 L +135.88 279.12 L +137.353 278.285 L +138.827 277.45 L +140.3 276.615 L +141.773 275.78 L +143.247 274.945 L +144.72 274.11 L +146.193 273.275 L +147.667 272.44 L +149.14 271.605 L +150.613 270.77 L +152.087 269.935 L +153.56 269.1 L +155.033 268.265 L +156.507 267.43 L +157.98 266.595 L +159.453 265.76 L +160.927 264.925 L +162.4 264.09 L +163.873 263.255 L +165.347 262.42 L +166.82 261.585 L +168.293 260.75 L +169.767 259.915 L +171.24 259.08 L +172.713 258.245 L +174.187 257.41 L +175.66 256.575 L +177.133 255.74 L +178.607 254.905 L +180.08 254.07 L +181.553 253.235 L +183.027 252.4 L +184.5 251.565 L +185.973 250.73 L +187.447 249.895 L +188.92 249.06 L +190.393 248.225 L +191.867 247.39 L +193.34 246.555 L +194.813 245.72 L +196.287 244.885 L +197.76 244.05 L +199.233 243.215 L +200.707 242.38 L +202.18 241.545 L +203.653 240.71 L +205.127 239.875 L +206.6 239.04 L +208.073 238.205 L +209.547 237.37 L +211.02 236.535 L +212.493 235.7 L +213.967 234.865 L +215.44 234.03 L +216.913 233.195 L +218.387 232.36 L +219.86 231.525 L +221.333 230.69 L +222.807 229.855 L +224.28 229.02 L +225.753 228.185 L +227.227 227.35 L +228.7 226.515 L +230.173 225.68 L +231.647 224.845 L +233.12 224.01 L +234.593 223.175 L +236.067 222.34 L +237.54 221.505 L +239.013 220.67 L +240.487 219.835 L +241.96 219 L +243.433 218.165 L +244.907 217.33 L +246.38 216.495 L +247.853 215.66 L +249.327 214.825 L +250.8 213.99 L +252.273 213.155 L +253.747 212.32 L +255.22 211.485 L +256.693 210.65 L +258.167 209.815 L +259.64 208.98 L +261.113 208.145 L +262.587 207.31 L +264.06 206.475 L +265.533 205.64 L +267.007 204.805 L +268.48 203.97 L +269.953 203.135 L +271.427 202.3 L +272.9 201.465 L +274.373 200.63 L +275.847 199.795 L +277.32 198.96 L +278.793 198.125 L +280.267 197.29 L +281.74 196.455 L +283.213 195.62 L +284.687 194.785 L +286.16 193.95 L +287.633 193.115 L +289.107 192.28 L +290.58 191.445 L +292.053 190.61 L +293.527 189.775 L +295 188.94 L +296.473 188.105 L +297.947 187.27 L +299.42 186.435 L +300.893 185.6 L +302.367 184.765 L +303.84 183.93 L +305.313 183.095 L +306.787 182.26 L +308.26 181.425 L +309.733 180.59 L +311.207 179.755 L +312.68 178.92 L +314.153 178.085 L +315.627 177.25 L +317.1 176.415 L +318.573 175.58 L +320.047 174.745 L +321.52 173.91 L +322.993 173.075 L +324.467 172.24 L +325.94 171.405 L +327.413 170.57 L +328.887 169.735 L +330.36 168.9 L +331.833 168.065 L +333.307 167.23 L +334.78 166.395 L +336.253 165.56 L +337.727 164.725 L +339.2 163.89 L +340.673 163.055 L +342.147 162.22 L +343.62 161.385 L +345.093 160.55 L +346.567 159.715 L +348.04 158.88 L +349.513 158.045 L +350.987 157.21 L +352.46 156.375 L +353.933 155.54 L +355.407 154.705 L +356.88 153.87 L +358.353 153.035 L +359.827 152.2 L +361.3 151.365 L +362.773 150.53 L +364.247 149.695 L +365.72 148.86 L +367.193 148.025 L +368.667 147.19 L +370.14 146.355 L +371.613 145.52 L +373.087 144.685 L +374.56 143.85 L +376.033 143.015 L +377.507 142.18 L +378.98 141.345 L +380.453 140.51 L +381.927 139.675 L +383.4 138.84 L +384.873 138.005 L +386.347 137.17 L +387.82 136.335 L +389.293 135.5 L +390.767 134.665 L +392.24 133.83 L +393.713 132.995 L +395.187 132.16 L +396.66 131.325 L +398.133 130.49 L +399.607 129.655 L +401.08 128.82 L +402.553 127.985 L +404.027 127.15 L +405.5 126.315 L +406.973 125.48 L +408.447 124.645 L +409.92 123.81 L +411.393 122.975 L +412.867 122.14 L +414.34 121.305 L +415.813 120.47 L +417.287 119.635 L +418.76 118.8 L +420.233 117.965 L +421.707 117.13 L +423.18 116.295 L +424.653 115.46 L +426.127 114.625 L +427.6 113.79 L +429.073 112.955 L +430.547 112.12 L +432.02 111.285 L +433.493 110.45 L +434.967 109.615 L +436.44 108.78 L +437.913 107.945 L +439.387 107.11 L +440.86 106.275 L +442.333 105.44 L +443.807 104.605 L +445.28 103.77 L +446.753 102.935 L +448.227 102.1 L +449.7 101.265 L +451.173 100.43 L +452.647 99.595 L +454.12 98.76 L +455.593 97.925 L +457.067 97.09 L +458.54 96.255 L +460.013 95.42 L +461.487 94.585 L +462.96 93.75 L +464.433 92.915 L +465.907 92.08 L +467.38 91.245 L +468.853 90.41 L +470.327 89.575 L +471.8 88.74 L +473.273 87.905 L +474.747 87.07 L +476.22 86.235 L +477.693 85.4 L +479.167 84.565 L +480.64 83.73 L +482.113 82.895 L +483.587 82.06 L +485.06 81.225 L +486.533 80.39 L +488.007 79.555 L +489.48 78.72 L +490.953 77.885 L +492.427 77.05 L +493.9 76.215 L +495.373 75.38 L +496.847 74.545 L +498.32 73.71 L +499.793 72.875 L +501.267 72.04 L +502.74 71.205 L +504.213 70.37 L +505.687 69.535 L +507.16 68.7 L +508.633 67.865 L +510.107 67.03 L +511.58 66.195 L +513.053 65.36 L +514.527 64.525 L +516 63.69 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0 0 1 RC +1 LJ +0.667 LW +N +74 340.888 M +75.473 340.07 L +76.947 339.252 L +78.42 338.433 L +79.893 337.614 L +81.367 336.796 L +82.84 335.977 L +84.313 335.158 L +85.787 334.339 L +87.26 333.52 L +88.733 332.701 L +90.207 331.882 L +91.68 331.063 L +93.153 330.244 L +94.627 329.425 L +96.1 328.605 L +97.573 327.786 L +99.047 326.966 L +100.52 326.147 L +101.993 325.327 L +103.467 324.507 L +104.94 323.688 L +106.413 322.868 L +107.887 322.048 L +109.36 321.228 L +110.833 320.408 L +112.307 319.588 L +113.78 318.768 L +115.253 317.948 L +116.727 317.128 L +118.2 316.307 L +119.673 315.487 L +121.147 314.667 L +122.62 313.846 L +124.093 313.026 L +125.567 312.205 L +127.04 311.384 L +128.513 310.564 L +129.987 309.743 L +131.46 308.922 L +132.933 308.101 L +134.407 307.28 L +135.88 306.459 L +137.353 305.638 L +138.827 304.817 L +140.3 303.996 L +141.773 303.175 L +143.247 302.354 L +144.72 301.532 L +146.193 300.711 L +147.667 299.89 L +149.14 299.068 L +150.613 298.247 L +152.087 297.425 L +153.56 296.604 L +155.033 295.782 L +156.507 294.96 L +157.98 294.138 L +159.453 293.317 L +160.927 292.495 L +162.4 291.673 L +163.873 290.851 L +165.347 290.029 L +166.82 289.207 L +168.293 288.385 L +169.767 287.563 L +171.24 286.741 L +172.713 285.918 L +174.187 285.096 L +175.66 284.274 L +177.133 283.452 L +178.607 282.629 L +180.08 281.807 L +181.553 280.984 L +183.027 280.162 L +184.5 279.339 L +185.973 278.517 L +187.447 277.694 L +188.92 276.871 L +190.393 276.049 L +191.867 275.226 L +193.34 274.403 L +194.813 273.58 L +196.287 272.757 L +197.76 271.934 L +199.233 271.111 L +200.707 270.288 L +202.18 269.465 L +203.653 268.642 L +205.127 267.819 L +206.6 266.996 L +208.073 266.173 L +209.547 265.349 L +211.02 264.526 L +212.493 263.703 L +213.967 262.879 L +215.44 262.056 L +216.913 261.233 L +218.387 260.409 L +219.86 259.586 L +221.333 258.762 L +222.807 257.939 L +224.28 257.115 L +225.753 256.291 L +227.227 255.468 L +228.7 254.644 L +230.173 253.82 L +231.647 252.996 L +233.12 252.172 L +234.593 251.349 L +236.067 250.525 L +237.54 249.701 L +239.013 248.877 L +240.487 248.053 L +241.96 247.229 L +243.433 246.405 L +244.907 245.581 L +246.38 244.757 L +247.853 243.932 L +249.327 243.108 L +250.8 242.284 L +252.273 241.46 L +253.747 240.635 L +255.22 239.811 L +256.693 238.987 L +258.167 238.162 L +259.64 237.338 L +261.113 236.514 L +262.587 235.689 L +264.06 234.865 L +265.533 234.04 L +267.007 233.215 L +268.48 232.391 L +269.953 231.566 L +271.427 230.742 L +272.9 229.917 L +274.373 229.092 L +275.847 228.267 L +277.32 227.443 L +278.793 226.618 L +280.267 225.793 L +281.74 224.968 L +283.213 224.143 L +284.687 223.318 L +286.16 222.493 L +287.633 221.668 L +289.107 220.843 L +290.58 220.018 L +292.053 219.193 L +293.527 218.368 L +295 217.543 L +296.473 216.718 L +297.947 215.893 L +299.42 215.068 L +300.893 214.243 L +302.367 213.417 L +303.84 212.592 L +305.313 211.767 L +306.787 210.941 L +308.26 210.116 L +309.733 209.291 L +311.207 208.465 L +312.68 207.64 L +314.153 206.814 L +315.627 205.989 L +317.1 205.163 L +318.573 204.338 L +320.047 203.512 L +321.52 202.687 L +322.993 201.861 L +324.467 201.036 L +325.94 200.21 L +327.413 199.384 L +328.887 198.559 L +330.36 197.733 L +331.833 196.907 L +333.307 196.081 L +334.78 195.256 L +336.253 194.43 L +337.727 193.604 L +339.2 192.778 L +340.673 191.952 L +342.147 191.126 L +343.62 190.3 L +345.093 189.475 L +346.567 188.649 L +348.04 187.823 L +349.513 186.997 L +350.987 186.171 L +352.46 185.344 L +353.933 184.518 L +355.407 183.692 L +356.88 182.866 L +358.353 182.04 L +359.827 181.214 L +361.3 180.388 L +362.773 179.561 L +364.247 178.735 L +365.72 177.909 L +367.193 177.083 L +368.667 176.256 L +370.14 175.43 L +371.613 174.604 L +373.087 173.777 L +374.56 172.951 L +376.033 172.125 L +377.507 171.298 L +378.98 170.472 L +380.453 169.645 L +381.927 168.819 L +383.4 167.992 L +384.873 167.166 L +386.347 166.339 L +387.82 165.513 L +389.293 164.686 L +390.767 163.86 L +392.24 163.033 L +393.713 162.206 L +395.187 161.38 L +396.66 160.553 L +398.133 159.726 L +399.607 158.9 L +401.08 158.073 L +402.553 157.246 L +404.027 156.419 L +405.5 155.593 L +406.973 154.766 L +408.447 153.939 L +409.92 153.112 L +411.393 152.285 L +412.867 151.458 L +414.34 150.631 L +415.813 149.805 L +417.287 148.978 L +418.76 148.151 L +420.233 147.324 L +421.707 146.497 L +423.18 145.67 L +424.653 144.843 L +426.127 144.016 L +427.6 143.189 L +429.073 142.361 L +430.547 141.534 L +432.02 140.707 L +433.493 139.88 L +434.967 139.053 L +436.44 138.226 L +437.913 137.399 L +439.387 136.572 L +440.86 135.744 L +442.333 134.917 L +443.807 134.09 L +445.28 133.263 L +446.753 132.435 L +448.227 131.608 L +449.7 130.781 L +451.173 129.953 L +452.647 129.126 L +454.12 128.299 L +455.593 127.471 L +457.067 126.644 L +458.54 125.816 L +460.013 124.989 L +461.487 124.162 L +462.96 123.334 L +464.433 122.507 L +465.907 121.679 L +467.38 120.852 L +468.853 120.024 L +470.327 119.197 L +471.8 118.369 L +473.273 117.542 L +474.747 116.714 L +476.22 115.886 L +477.693 115.059 L +479.167 114.231 L +480.64 113.404 L +482.113 112.576 L +483.587 111.748 L +485.06 110.921 L +486.533 110.093 L +488.007 109.265 L +489.48 108.437 L +490.953 107.61 L +492.427 106.782 L +493.9 105.954 L +495.373 105.126 L +496.847 104.299 L +498.32 103.471 L +499.793 102.643 L +501.267 101.815 L +502.74 100.987 L +504.213 100.159 L +505.687 99.331 L +507.16 98.504 L +508.633 97.676 L +510.107 96.848 L +511.58 96.02 L +513.053 95.192 L +514.527 94.364 L +516 93.536 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +1 GC +N +505 76 M +505 42 L +371 42 L +371 76 L +cp +f +GR +GS +[0.75 0 0 0.75 313.5 38.77174] CT +/Helvetica 12 F +GS +[1 0 0 1 0 0] CT +0 4.5 moveto +1 -1 scale +(Our result) t +GR +GR +GS +[0.75 0 0 0.75 0 0.25] CT +1 0 0 RC +1 LJ +0.667 LW +N +375 51.362 M +415 51.362 L +S +GR +GS +[0.75 0 0 0.75 313.5 50.22826] CT +/Helvetica 12 F +GS +[1 0 0 1 0 0] CT +0 4.5 moveto +1 -1 scale +(Wang's result) t +GR +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0 0 1 RC +1 LJ +0.667 LW +N +375 66.638 M +415 66.638 L +S +GR +GS +[0.75 0 0 0.75 0 0.25] CT +0.149 GC +10.0 ML +0.667 LW +N +371 76 M +371 42 L +505 42 L +505 76 L +cp +S +GR +%%Trailer +%%Pages: 1 +%%EOF diff --git a/Block RIP/bound/result.jpg b/Block RIP/bound/result.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35898637a57553252ad3c8055c9fcb48430dfb9b GIT binary patch literal 29228 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 literal 0 HcmV?d00001