Wolfram Language
Paclet Repository
Community-contributed installable additions to the Wolfram Language
Primary Navigation
Categories
Cloud & Deployment
Core Language & Structure
Data Manipulation & Analysis
Engineering Data & Computation
External Interfaces & Connections
Financial Data & Computation
Geographic Data & Computation
Geometry
Graphs & Networks
Higher Mathematical Computation
Images
Knowledge Representation & Natural Language
Machine Learning
Notebook Documents & Presentation
Scientific and Medical Data & Computation
Social, Cultural & Linguistic Data
Strings & Text
Symbolic & Numeric Computation
System Operation & Setup
Time-Related Computation
User Interface Construction
Visualization & Graphics
Random Paclet
Alphabetical List
Using Paclets
Create a Paclet
Get Started
Download Definition Notebook
Learn More about
Wolfram Language
RectanglePacking
Guides
Rectangle Packing
Symbols
PackRectangles
RectanglePacker
JasonB`RectanglePacking`
P
a
c
k
R
e
c
t
a
n
g
l
e
s
P
a
c
k
R
e
c
t
a
n
g
l
e
s
[
b
o
u
n
d
i
n
g
b
o
x
,
{
r
e
c
t
1
,
r
e
c
t
2
,
.
.
}
]
p
a
c
k
s
t
h
e
g
i
v
e
n
r
e
c
t
a
n
g
l
e
s
i
n
t
h
e
g
i
v
e
n
b
o
u
n
d
i
n
g
b
o
x
.
P
a
c
k
R
e
c
t
a
n
g
l
e
s
[
b
o
u
n
d
i
n
g
b
o
x
,
r
e
c
t
a
n
g
l
e
s
,
m
e
t
h
o
d
]
u
s
e
s
t
h
e
g
i
v
e
n
m
e
t
h
o
d
t
o
p
a
c
k
r
e
c
t
a
n
g
l
e
s
.
D
e
t
a
i
l
s
a
n
d
O
p
t
i
o
n
s
Examples
(
3
)
Basic Examples
(
1
)
Pack a sequence of squares into a larger square:
I
n
[
1
]
:
=
P
a
c
k
R
e
c
t
a
n
g
l
e
s
[
{
1
0
0
,
1
0
0
}
,
T
a
b
l
e
[
{
n
,
n
}
,
{
n
,
3
0
}
]
]
O
u
t
[
1
]
=
{
{
{
1
3
,
9
9
}
,
{
1
4
,
1
0
0
}
}
,
{
{
2
5
,
9
8
}
,
{
2
7
,
1
0
0
}
}
,
{
{
5
4
,
9
6
}
,
{
5
7
,
9
9
}
}
,
{
{
5
0
,
9
6
}
,
{
5
4
,
1
0
0
}
}
,
{
{
3
0
,
2
5
}
,
{
3
5
,
3
0
}
}
,
{
{
9
1
,
8
7
}
,
{
9
7
,
9
3
}
}
,
{
{
9
1
,
8
0
}
,
{
9
8
,
8
7
}
}
,
{
{
9
0
,
7
2
}
,
{
9
8
,
8
0
}
}
,
{
{
9
0
,
6
3
}
,
{
9
9
,
7
2
}
}
,
{
{
5
0
,
8
6
}
,
{
6
0
,
9
6
}
}
,
{
{
2
5
,
8
7
}
,
{
3
6
,
9
8
}
}
,
{
{
1
3
,
8
7
}
,
{
2
5
,
9
9
}
}
,
{
{
0
,
8
7
}
,
{
1
3
,
1
0
0
}
}
,
{
{
3
6
,
8
6
}
,
{
5
0
,
1
0
0
}
}
,
{
{
7
6
,
8
3
}
,
{
9
1
,
9
8
}
}
,
{
{
6
0
,
8
4
}
,
{
7
6
,
1
0
0
}
}
,
{
{
7
3
,
6
6
}
,
{
9
0
,
8
3
}
}
,
{
{
5
5
,
6
6
}
,
{
7
3
,
8
4
}
}
,
{
{
5
5
,
4
7
}
,
{
7
4
,
6
6
}
}
,
{
{
7
9
,
2
1
}
,
{
9
9
,
4
1
}
}
,
{
{
7
9
,
0
}
,
{
1
0
0
,
2
1
}
}
,
{
{
7
8
,
4
1
}
,
{
1
0
0
,
6
3
}
}
,
{
{
5
5
,
2
4
}
,
{
7
8
,
4
7
}
}
,
{
{
5
5
,
0
}
,
{
7
9
,
2
4
}
}
,
{
{
3
0
,
0
}
,
{
5
5
,
2
5
}
}
,
{
{
2
9
,
3
0
}
,
{
5
5
,
5
6
}
}
,
{
{
2
8
,
5
9
}
,
{
5
5
,
8
6
}
}
,
{
{
0
,
5
9
}
,
{
2
8
,
8
7
}
}
,
{
{
0
,
3
0
}
,
{
2
9
,
5
9
}
}
,
{
{
0
,
0
}
,
{
3
0
,
3
0
}
}
}
I
n
[
2
]
:
=
$
R
e
c
t
a
n
g
l
e
P
a
c
k
i
n
g
M
e
t
h
o
d
s
O
u
t
[
2
]
=
{
M
a
x
R
e
c
t
s
,
G
u
i
l
l
o
t
i
n
e
,
S
h
e
l
f
,
S
k
y
l
i
n
e
,
M
a
x
R
e
c
t
s
B
e
s
t
S
h
o
r
t
S
i
d
e
,
M
a
x
R
e
c
t
s
B
e
s
t
L
o
n
g
S
i
d
e
,
M
a
x
R
e
c
t
s
B
e
s
t
A
r
e
a
,
M
a
x
R
e
c
t
s
B
o
t
t
o
m
L
e
f
t
,
M
a
x
R
e
c
t
s
C
o
n
t
a
c
t
P
o
i
n
t
,
G
u
i
l
l
o
t
i
n
e
B
e
s
t
S
h
o
r
t
S
i
d
e
,
G
u
i
l
l
o
t
i
n
e
B
e
s
t
L
o
n
g
S
i
d
e
,
G
u
i
l
l
o
t
i
n
e
B
e
s
t
A
r
e
a
,
G
u
i
l
l
o
t
i
n
e
W
o
r
s
t
S
h
o
r
t
S
i
d
e
,
G
u
i
l
l
o
t
i
n
e
W
o
r
s
t
L
o
n
g
S
i
d
e
,
G
u
i
l
l
o
t
i
n
e
W
o
r
s
t
A
r
e
a
,
S
h
e
l
f
N
e
x
t
F
i
t
,
S
h
e
l
f
F
i
r
s
t
F
i
t
,
S
h
e
l
f
B
e
s
t
A
r
e
a
F
i
t
,
S
h
e
l
f
B
e
s
t
H
e
i
g
h
t
F
i
t
,
S
h
e
l
f
B
e
s
t
W
i
d
t
h
F
i
t
,
S
h
e
l
f
W
o
r
s
t
A
r
e
a
F
i
t
,
S
h
e
l
f
W
o
r
s
t
W
i
d
t
h
F
i
t
,
S
k
y
l
i
n
e
B
o
t
t
o
m
L
e
f
t
,
S
k
y
l
i
n
e
B
e
s
t
F
i
t
}
Visualize the result:
I
n
[
3
]
:
=
G
r
a
p
h
i
c
s
[
{
E
d
g
e
F
o
r
m
[
B
l
a
c
k
]
,
F
a
c
e
F
o
r
m
[
N
o
n
e
]
,
R
e
c
t
a
n
g
l
e
@
@
@
%
}
,
F
r
a
m
e
T
r
u
e
]
O
u
t
[
3
]
=
I
n
[
4
]
:
=
P
a
c
k
R
e
c
t
a
n
g
l
e
s
[
{
1
0
0
,
1
0
0
}
,
T
a
b
l
e
[
{
n
,
n
}
,
{
n
,
3
0
}
]
,
"
S
k
y
l
i
n
e
B
e
s
t
F
i
t
"
]
O
u
t
[
4
]
=
{
{
0
,
0
}
,
{
1
,
1
}
}
,
{
{
1
,
0
}
,
{
3
,
2
}
}
,
{
{
3
,
0
}
,
{
6
,
3
}
}
,
{
{
6
,
0
}
,
{
1
0
,
4
}
}
,
{
{
1
0
,
0
}
,
{
1
5
,
5
}
}
,
{
{
1
5
,
0
}
,
{
2
1
,
6
}
}
,
{
{
2
1
,
0
}
,
{
2
8
,
7
}
}
,
{
{
2
8
,
0
}
,
{
3
6
,
8
}
}
,
{
{
3
6
,
0
}
,
{
4
5
,
9
}
}
,
{
{
4
5
,
0
}
,
{
5
5
,
1
0
}
}
,
{
{
5
5
,
0
}
,
{
6
6
,
1
1
}
}
,
{
{
6
6
,
0
}
,
{
7
8
,
1
2
}
}
,
{
{
7
8
,
0
}
,
{
9
1
,
1
3
}
}
,
{
{
2
1
,
8
}
,
{
3
5
,
2
2
}
}
,
{
{
3
6
,
1
0
}
,
{
5
1
,
2
5
}
}
,
{
{
5
5
,
1
2
}
,
{
7
1
,
2
8
}
}
,
{
{
7
1
,
1
3
}
,
{
8
8
,
3
0
}
}
,
{
{
7
1
,
3
0
}
,
{
8
9
,
4
8
}
}
,
{
{
1
,
6
}
,
{
2
0
,
2
5
}
}
,
{
{
1
,
2
5
}
,
{
2
1
,
4
5
}
}
,
{
{
1
,
4
5
}
,
{
2
2
,
6
6
}
}
,
{
{
1
,
6
6
}
,
{
2
3
,
8
8
}
}
,
{
{
2
3
,
2
5
}
,
{
4
6
,
4
8
}
}
,
{
{
2
3
,
4
8
}
,
{
4
7
,
7
2
}
}
,
{
{
2
3
,
7
2
}
,
{
4
8
,
9
7
}
}
,
{
{
5
5
,
4
8
}
,
{
8
1
,
7
4
}
}
,
F
a
i
l
u
r
e
I
n
p
u
t
:
{
2
7
,
2
7
}
T
a
g
:
U
n
p
l
a
c
e
d
R
e
c
t
a
n
g
l
e
,
F
a
i
l
u
r
e
I
n
p
u
t
:
{
2
8
,
2
8
}
T
a
g
:
U
n
p
l
a
c
e
d
R
e
c
t
a
n
g
l
e
,
F
a
i
l
u
r
e
I
n
p
u
t
:
{
2
9
,
2
9
}
T
a
g
:
U
n
p
l
a
c
e
d
R
e
c
t
a
n
g
l
e
,
F
a
i
l
u
r
e
I
n
p
u
t
:
{
3
0
,
3
0
}
T
a
g
:
U
n
p
l
a
c
e
d
R
e
c
t
a
n
g
l
e
S
c
o
p
e
(
1
)
O
p
t
i
o
n
s
(
1
)
S
e
e
A
l
s
o
R
e
c
t
a
n
g
l
e
P
a
c
k
e
r
▪
R
e
c
t
a
n
g
l
e
R
e
l
a
t
e
d
G
u
i
d
e
s
▪
R
e
c
t
a
n
g
l
e
P
a
c
k
i
n
g
R
e
l
a
t
e
d
L
i
n
k
s
R
e
c
t
a
n
g
l
e
B
i
n
P
a
c
k
l
i
b
r
a
r
y
,
▪
h
t
t
p
s
:
/
/
g
i
t
h
u
b
.
c
o
m
/
j
u
j
/
R
e
c
t
a
n
g
l
e
B
i
n
P
a
c
k
A
t
h
o
u
s
a
n
d
w
a
y
s
t
o
p
a
c
k
t
h
e
b
i
n
-
a
p
r
a
c
t
i
c
a
l
a
p
p
r
o
a
c
h
t
o
t
w
o
-
d
i
m
e
n
s
i
o
n
a
l
r
e
c
t
a
n
g
l
e
b
i
n
p
a
c
k
i
n
g
.
J
u
k
k
a
J
y
l
ä
n
k
i
.
2
0
1
0
.
▪
[
m
o
r
e
i
n
f
o
]
"
"