Public
Edited
Sep 6, 2024
1 fork
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
cube0 = (x) => Math.pow(x, 3)
Insert cell
cube1a = (x, id) => Math.pow(x, 3)
Insert cell
cube1b = (x, id) => Math.pow(x, 3) + 0 * id
Insert cell
cube2a = (x, id, A) => Math.pow(x, 3)
Insert cell
cube2b = (x, id, A) => Math.pow(x, 3) + 0 * id + A[id] * 0
Insert cell
// experiments are an array of objects with a name and a function to run.
experiments = [
{
name: "map 0 float",
run: () => values.map(cube0)
},
{
name: "map 1a float",
run: () => values.map(cube1a)
},
{
name: "map 1b float",
run: () => values.map(cube1b)
},
{
name: "map 2a float",
run: () => values.map(cube2a)
},
{
name: "map 2b float",
run: () => values.map(cube2b)
},
{
name: "map 0 array",
run: () => arrayValues.map(cube0)
},
{
name: "map 1a array",
run: () => arrayValues.map(cube1a)
},
{
name: "map 1b array",
run: () => arrayValues.map(cube1b)
},
{
name: "map 2a array",
run: () => arrayValues.map(cube2a)
},
{
name: "map 2b array",
run: () => arrayValues.map(cube2b)
},
{
name: "for 0 float",
run: () => {
const results = [];
for (let i = 0; i < values.length; i++) {
results.push(cube0(values[i]));
}
return results;
}
},
{
name: "for 1a float",
run: () => {
const results = [];
for (let i = 0; i < values.length; i++) {
results.push(cube1a(values[i], i));
}
return results;
}
},
{
name: "for 1b float",
run: () => {
const results = [];
for (let i = 0; i < values.length; i++) {
results.push(cube1b(values[i], i));
}
return results;
}
},
{
name: "for 2a float",
run: () => {
const results = [];
for (let i = 0; i < values.length; i++) {
results.push(cube2a(values[i], i, values));
}
return results;
}
},
{
name: "for 2b float",
run: () => {
const results = [];
for (let i = 0; i < values.length; i++) {
results.push(cube2b(values[i], i, values));
}
return results;
}
},
{
name: "for 0 array",
run: () => {
const results = [];
for (let i = 0; i < arrayValues.length; i++) {
results.push(cube0(arrayValues[i]));
}
return results;
}
},
{
name: "for 1a array",
run: () => {
const results = [];
for (let i = 0; i < arrayValues.length; i++) {
results.push(cube1a(arrayValues[i], i));
}
return results;
}
},
{
name: "for 1b array",
run: () => {
const results = [];
for (let i = 0; i < arrayValues.length; i++) {
results.push(cube1b(arrayValues[i], i));
}
return results;
}
},
{
name: "for 2a array",
run: () => {
const results = [];
for (let i = 0; i < arrayValues.length; i++) {
results.push(cube2a(arrayValues[i], i, arrayValues));
}
return results;
}
},
{
name: "for 2b array",
run: () => {
const results = [];
for (let i = 0; i < arrayValues.length; i++) {
results.push(cube2b(arrayValues[i], i, arrayValues));
}
return results;
}
},
{
name: "for pre 0 float",
run: () => {
const results = Array.from({length: values.length});
for (let i = 0; i < values.length; i++) {
results[i] = cube0(values[i]);
}
return results;
}
},
{
name: "for pre 1a float",
run: () => {
const results = Array.from({length: values.length});
for (let i = 0; i < values.length; i++) {
results[i] = cube1a(values[i], i);
}
return results;
}
},
{
name: "for pre 1b float",
run: () => {
const results = Array.from({length: values.length});
for (let i = 0; i < values.length; i++) {
results[i] = cube1b(values[i], i);
}
return results;
}
},
{
name: "for pre 2a float",
run: () => {
const results = Array.from({length: values.length});
for (let i = 0; i < values.length; i++) {
results[i] = cube2a(values[i], i, values);
}
return results;
}
},
{
name: "for pre 2b float",
run: () => {
const results = Array.from({length: values.length});
for (let i = 0; i < values.length; i++) {
results[i] = cube2b(values[i], i, values);
}
return results;
}
},
{
name: "for pre 0 array",
run: () => {
const results = Array.from({length: values.length});
for (let i = 0; i < arrayValues.length; i++) {
results[i] = cube0(arrayValues[i]);
}
return results;
}
},
{
name: "for pre 1a array",
run: () => {
const results = Array.from({length: values.length});
for (let i = 0; i < arrayValues.length; i++) {
results[i] = cube1a(arrayValues[i], i);
}
return results;
}
},
{
name: "for pre 1b array",
run: () => {
const results = Array.from({length: values.length});
for (let i = 0; i < arrayValues.length; i++) {
results[i] = cube1b(arrayValues[i], i);
}
return results;
}
},
{
name: "for pre 2a array",
run: () => {
const results = Array.from({length: values.length});
for (let i = 0; i < arrayValues.length; i++) {
results[i] = cube2a(arrayValues[i], i, arrayValues);
}
return results;
}
},
{
name: "for pre 2b array",
run: () => {
const results = Array.from({length: values.length});
for (let i = 0; i < arrayValues.length; i++) {
results[i] = cube2b(arrayValues[i], i, arrayValues);
}
return results;
}
},
{
name: "for pre pre 0 float",
run: () => {
for (let i = 0; i < values.length; i++) {
prealocatedValues[i] = cube0(values[i]);
}
return prealocatedValues;
}
},
{
name: "for pre pre 1a float",
run: () => {
for (let i = 0; i < values.length; i++) {
prealocatedValues[i] = cube1a(values[i], i);
}
return prealocatedValues;
}
},
{
name: "for pre pre 1b float",
run: () => {
for (let i = 0; i < values.length; i++) {
prealocatedValues[i] = cube1b(values[i], i);
}
return prealocatedValues;
}
},
{
name: "for pre pre 2a float",
run: () => {
for (let i = 0; i < values.length; i++) {
prealocatedValues[i] = cube2a(values[i], i, values);
}
return prealocatedValues;
}
},
{
name: "for pre pre 2b float",
run: () => {
for (let i = 0; i < values.length; i++) {
prealocatedValues[i] = cube2b(values[i], i, values);
}
return prealocatedValues;
}
},
{
name: "for pre pre 0 array",
run: () => {
for (let i = 0; i < arrayValues.length; i++) {
prealocatedArrayValues[i] = cube0(arrayValues[i]);
}
return prealocatedArrayValues;
}
},
{
name: "for pre pre 1a array",
run: () => {
for (let i = 0; i < arrayValues.length; i++) {
prealocatedArrayValues[i] = cube1a(arrayValues[i], i);
}
return prealocatedArrayValues;
}
},
{
name: "for pre pre 1b array",
run: () => {
for (let i = 0; i < arrayValues.length; i++) {
prealocatedArrayValues[i] = cube1b(arrayValues[i], i);
}
return prealocatedArrayValues;
}
},
{
name: "for pre pre 2a array",
run: () => {
for (let i = 0; i < arrayValues.length; i++) {
prealocatedArrayValues[i] = cube2a(arrayValues[i], i, arrayValues);
}
return prealocatedArrayValues;
}
},
{
name: "for pre pre 2b array",
run: () => {
for (let i = 0; i < arrayValues.length; i++) {
prealocatedArrayValues[i] = cube2b(arrayValues[i], i, arrayValues);
}
return prealocatedArrayValues;
}
}
]
Insert cell
Insert cell
arrayValues = Array.from(values)
Insert cell
prealocatedArrayValues = Array.from({ length: N })
Insert cell
prealocatedValues = Float64Array.from({ length: N })
Insert cell
{
let csv = "";
stats.forEach((stat) => {
stat.times.forEach((time) => {
csv += stat.name + ", " + time;
csv += "\n";
});
});
return csv;
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more