Blogroll Category: Technology

I read blogs, as well as write one. The 'blogroll' on this site reproduces some posts from some of the people I enjoy reading. There are currently 171 posts from the category 'Technology.'

Disclaimer: Reproducing an article here need not necessarily imply agreement or endorsement!

Alt-PHP updated

CloudLinux - Fri, 14/12/2018 - 19:47

New updated Alt-PHP packages with the fix for the conflict between alt-php72-pecl-ext and alt-php72-sodium packages in our previous Alt-PHP update are now available for download from our production repository.

Changelog:

alt-php73-pecl-ext-1-3

  • removed llibsodium extention.

alt-php72-pecl-ext-1-33

  • removed llibsodium extention.

Update command:

yum groupupdate alt-php
Categories: Technology

Alt-PHP updated

CloudLinux - Fri, 14/12/2018 - 16:13

New updated Alt-PHP packages are now available for download from our production repository.

Changelog:

alt-php73-pecl-ext-1-2

alt-php72-pecl-ext-1-32

alt-php71-pecl-ext-1-38

alt-php70-pecl-ext-1-50

  • ALTPHP-660: changed libsodium.so to sodium.so in ini file.

Update command:

yum groupupdate alt-php
Categories: Technology

Managing DNS Records For The People With Cloudflare Apps

CloudFlare - Fri, 14/12/2018 - 13:00
Managing DNS Records For The People With Cloudflare Apps

DNS records are hard.  Many people, even the technically competent, don’t bother to learn more than the basics.

Managing DNS Records For The People With Cloudflare Apps

You could be one of them — someone who learns just enough about DNS to get it working, then immediately forgetting everything until the next time it breaks — and the vicious cycle continues.  The definition of insanity comes to mind. Meanwhile, non-technical folks wisely avoid meddling in such dangerous psychology.

Surely, there must be a better way (this is a blog post after all).

A new feature allows Cloudflare Apps to set up configurable DNS records on more than 12 million registered domains on the Cloudflare network. Cloudflare Apps are here to alleviate the internet’s collective DNS woes.  Gone are the days of tribulating over whether it’s A or CNAME you should set.  Gone are the days of puzzling between A and AAAA records while wondering what the heck happened to AA and AAA records???  Unload your DNS dysphoria onto highly trained developers experienced at explicating these burdensome questions today!

Are you a highly trained developer?  Install Pointless DNS on your site to try out the new feature.  This pointless app installs a TXT record on any root or subdomain of your choice.  

Managing DNS Records For The People With Cloudflare AppsI set the TXT record name to "blog" during installation

Once installed, head over to your DNS dashboard and you'll see the app doing its thing.  If you really want, you can uninstall it from your Installed Apps page.

Managing DNS Records For The People With Cloudflare AppsPointless DNS manages its pointless record on my blog subdomain

To start building an app, download create-cloudflare-app and open it in your preferred text editor.  Below, I’ll explain how Pointless DNS manages configurable DNS records.

In the install.json file, you’ll find a dns field that looks like this:

# install.json "dns": [{ "type": "TXT", "content": "Managed TXT Record", "name": "Created by create-cloudflare-app", "ttl": 120 }]

This says a TXT record will be set up and managed on the app installer's site, which can only be modified or deleted through the app’s configuration page.  An app can create or modify any type of Cloudflare DNS record available in Cloudflare's DNS API.

Now let's add in some configuration. Add an install option and point it at your record — options.subdomain will be set to the installer's desire.

# install.json { "options": { "properties": { "subdomain": { "order": 1, "type": "string", "title": "TXT Record Subdomain", "description": "The subdomain of your DNS record", "placeholder": "*Required - e.g. [your_domain].com", "required": true } } }, "dns": [{ "type": "TXT", "name": "{{options.subdomain}}", "content": "{{options.subdomain}} was set" }] }

Check out the Cloudflare Apps docs to learn more about about building DNS apps.  For additional inspiration, consider Mailchannels — a powerful email security solution that manages DNS records to fight off pesky spammers and phishermen.

Managing DNS Records For The People With Cloudflare Apps

DNS records used to be hard, but a new breed of Cloudflare Apps makes them easy.  Cloudflare Apps-based DNS configuration gives developers the opportunity to be the hero people want and the hero they need.

Categories: Technology

LVE Manager updated

CloudLinux - Thu, 13/12/2018 - 16:22

Our team has released a fix for the security vulnerability discovered by Patrick William from Rack911 Lab. It is available from our production repository and is recommended for the update.

Changelog:

lvemanager-4.0-26.3.2

  • WEB-1289: removed using of Data::UUID->new in source code.

To update run:

yum update lvemanager

To downgrade run:

yum downgrade lvemanager
Categories: Technology

Traffic Acceleration with Cloudflare Mobile SDK

CloudFlare - Thu, 13/12/2018 - 13:00
Traffic Acceleration with Cloudflare Mobile SDK

We’re excited to announce early access for Traffic Acceleration with Cloudflare Mobile SDK. Acceleration uses novel transport algorithms built into the SDK to accelerate apps beyond the performance they would see with TCP. Enabling Acceleration through the SDK reduces latency, increases throughput, and improves app user experiences.

A year ago, we launched Cloudflare Mobile SDK with a set of free features focused on measuring mobile app networking performance. Apps are dependent on network connectivity to deliver their app’s user experiences, but developers have limited visibility into how network connectivity is impacting app performance. Integrating the Mobile SDK allows developers to measure and improve the speed of their app’s network interactions.

How it works

Mobile applications interact with the Internet to do everything — to fetch the weather, your email, to step through a check out flow. Everything that makes a smartphone magical is powered by a service on the Internet. How quickly those network interactions happen is dictated by two things: how large the payloads are for the given request/response, and what the available link bandwidth is.

Payload size is mostly application specific: a shopping app is going to request product images and similar medium sized assets, while a stock quotes app could be expected to have smaller payloads in the API responses powering it.

Available link bandwidth is usually dictated by your network provider. Everyone familiar with the feeling of trying to check out in an e-commerce app and being stymied by poor cell connectivity. But network quality is not the only thing that impacts available bandwidth; the transport protocol (at Layer 4, in OSI-model-speak) in use also has a huge impact on how quickly your phone can pull content off the Internet.

A primer on TCP congestion control

TCP is the dominant transport protocol for most applications you know and love. It’s over 40 years old, and impressive in both its simplicity and longevity (they are likely related). TCP relies on congestion control algorithms to understand how quickly to send traffic over a connection without congesting the link (filling the pipe to the point things start getting backed up).

Congestion is something to be avoided. TCP guarantees reliable delivery, and cleaning up from a congestion event often involves additional round trips and retransmits. TCP implementations are often conservative in two important dimensions: how much data they choose to send on connection establishment (called the initcwnd, or initial congestion window), and what to do when the sender senses packet loss (congestion avoidance).

Traffic Acceleration with Cloudflare Mobile SDK

Source: https://commons.wikimedia.org/wiki/File:TCP_Slow-Start_and_Congestion_Avoidance.svg

An example of the data rate on a connection over time. Congestion avoidance is illustrated in pink.

How TCP opens connections and how it responds to packet loss are critical factors in determining how much data actually gets to flow over the connection. Tuning TCP connection parameters allows more data to flow over the link without actually touching the actual physical layer (i.e. boosting your cell signal).

Moving beyond TCP

Unfortunately, TCP parameters governing a connection’s data rate are hidden in the kernel, out of reach of user space and the optimizing, enterprising app developer. Cloudflare Mobile SDK aims to solve this problem by shipping a replacement transport protocol implemented on top of UDP, which the SDK can speak with the Cloudflare edge.

There are three advantages to replacing TCP with a custom UDP transport protocol: 1) easier access to parameters controlling things like congestion control, 2) integration with the Cloudflare edge to allow for extremely efficient transmission of data and 3) optimization of the protocol from the ground up for transmission of data over mobile networks.

All of these factors lead directly to reduced latency, increased throughput, and improved user experiences.

Integrating with SDK and example results

Once an app is integrated with the SDK, enabling Acceleration is straightforward. Most standard HTTP networking libraries are supported out of the box, and require no additional integration work beyond initializing the SDK with your API key.

Customers accelerating their traffic with Cloudflare Mobile SDK see significant reductions in latency, increases in throughput, and reductions in TCP related timeouts.

As an example, a transportation company enabled acceleration in their iOS app. Their users immediately saw a 7% decrease in network response time and a 13.8% drop in network timeouts. This directly translates to an increase in conversions: purchases per user increased 3% with Acceleration enabled.

Early Access

We’re excited to bring Acceleration to a broader audience. Get in touch with us for early access. Mobile SDK supports both iOS and Android.

In addition to developing features to improve app performance, we’re working hard on features to better authenticate mobile devices with the APIs that power them. Why is this important? Non-humans (bots) are increasingly interacting with the APIs that power apps to scrape data, stuff credentials, and otherwise act in ways humans would not.

The Mobile SDK will soon include features to help API owners understand whether or not the user purporting to be using an app actually is a real mobile user. We’ll have a lot more detail on this soon; if you’re interested in hearing more sooner, please get in touch!

Categories: Technology

How my team wrote 12 Cloudflare apps with fewer than 20 lines of code

CloudFlare - Thu, 13/12/2018 - 01:00
How my team wrote 12 Cloudflare apps with fewer than 20 lines of code

This is a guest post by Ben Ross. Ben is a Berkeley PhD, serial entrepreneur, and Founder and CTO and POWr.io, where he spends his days helping small businesses grow online.

I like my code the same way I like my team of POWr RangersDRY.

And no, I don’t mean dull and unexciting! (If you haven’t heard this acronym before, DRY stands for Don’t Repeat Yourself, the single most important principle in software engineering. Because, as a mentor once told me, “when someone needs to re-write your code, at least they only need to do it once.”)

At POWr, being DRY is not just a way to write code, it’s a way of life. This is true whether you’re an Engineer, a Customer Support agent, or an Office Manager; if you find you’re repeating yourself, we want to find a way to automate that repetition away. Our employees’ time is our company’s most valuable resource. Not to mention, who wants to spend all day repeating themselves?

We call this process becoming a Scaled Employee. A Scaled Employee leverages their time and resources to make a multifold impact compared to an average employee in their field. Building a culture of scaled employees plays a large part in how we have been able rapidly grow our company over the past 4 years without raising any VC funding.

So when we recently integrated 12 POWr apps into Cloudflare, you might think that we had to write code for 12 different apps. This would have required months of tedious building and QA testing.

How my team wrote 12 Cloudflare apps with fewer than 20 lines of code

Instead, we built a single integration template. Then, we wrote a few lines of code to automatically generate 12 apps in about as long as it takes to enjoy a sumptuous sip of California Cab. Ready for a quick overview? Begin swirling...

First we defined a “replacements” object with the important attributes of each app (which is already available in our database in an AppDetail model):

replacements = { APP_COMMON_NAME: app_detail.common_name, #eg “Form Builder” APP_SLUG: app_detail.slug, #e.g. “form-builder” APP_DESCRIPTION: app_detail.short_description #e.g. “Increase conversions and get more sign-ups.” … }

Using these replacements, we then duplicated and renamed each file of our Cloudflare App accordingly:

replacements.each do |key, val| `find #{parent_dir} -name "*#{key}*" -exec rename 's/#{key}/#{val}/' * -v {} +` end

And finally, we moved into each file and made the corresponding replacements:

Dir.glob("lib/cloudflare/powr-#{replacements[:APP_SLUG]}/**/*").reject{|fn| File.directory?(fn)}.each do |file_name| text = File.read(file_name) replacements.each do |key, val| text = text.gsub(key.to_s, val) end File.open(file_name, "w") {|file| file.puts text } end

Delicious, right?

At this point, you may be wondering, “what are POWr Apps, anyway?” I’m glad you asked. They are a customizable and easy-to-use set of tools to supercharge any website… from forms to galleries to social media integrations to eCommerce.

Could you build a custom form for your website, a backend to handle and graph responses, and an integration with Zapier to turn on a lightbulb every time someone presses submit? Probably. Is that a good use of your time? Probably not. Instead, you can install POWr Form Builder in about 2 minutes, pass it off to your Marketing Intern to make it look pretty, and get back to the hard problems.

How my team wrote 12 Cloudflare apps with fewer than 20 lines of codeAdding POWr Form Builder to Cloudflare

How my team wrote 12 Cloudflare apps with fewer than 20 lines of codeCustomize your app in the POWr Editor

If YOU want to be a Scaled Engineer, it’s not about knowing everything there is to know. The geekiest engineers that spend their lunches vehemently discussing the pros and cons of bubble vs selection sort often do not make the best Scaled Engineers. Scaled Engineers know when to avoid going down Rabbit Holes and use whatever tools are at their disposal to maximize impact.

So if you want to add some dynamic content to your site, take a look at POWr Apps for Cloudflare. I’d tell you that again, but I don’t want to repeat myself.

Categories: Technology

Plan for Drupal 9

Drupal - Wed, 12/12/2018 - 18:38

This blog has been re-posted and edited with permission from Dries Buytaert's blog. Please leave your comments on the original post.

At Drupal Europe, I announced that Drupal 9 will be released in 2020. Although I explained why we plan to release in 2020, I wasn't very specific about when we plan to release Drupal 9 in 2020. Given that 2020 is less than thirteen months away (gasp!), it's time to be more specific.

Shifting Drupal's six month release cycle

A timeline that shows how we shifted Drupal 8's release windows

We shifted Drupal 8's minor release windows so we can adopt Symfony's releases faster.

Before I talk about the Drupal 9 release date, I want to explain another change we made, which has a minor impact on the Drupal 9 release date.

As announced over two years ago, Drupal 8 adopted a 6-month release cycle (two releases a year). Symfony, a PHP framework which Drupal depends on, uses a similar release schedule. Unfortunately the timing of Drupal's releases has historically occurred 1-2 months before Symfony's releases, which forces us to wait six months to adopt the latest Symfony release. To be able to adopt the latest Symfony releases faster, we are moving Drupal's minor releases to June and December. This will allow us to adopt the latest Symfony releases within one month. For example, Drupal 8.8.0 is now scheduled for December 2019.

We hope to release Drupal 9 on June 3, 2020

Drupal 8's biggest dependency is Symfony 3, which has an end-of-life date in November 2021. This means that after November 2021, security bugs in Symfony 3 will not get fixed. Therefore, we have to end-of-life Drupal 8 no later than November 2021. Or put differently, by November 2021, everyone should be on Drupal 9.

Working backwards from November 2021, we'd like to give site owners at least one year to upgrade from Drupal 8 to Drupal 9. While we could release Drupal 9 in December 2020, we decided it was better to try to release Drupal 9 on June 3, 2020. This gives site owners 18 months to upgrade. Plus, it also gives the Drupal core contributors an extra buffer in case we can't finish Drupal 9 in time for a summer release.

A timeline that shows we hope to release Drupal 9 in June 2020

Planned Drupal 8 and 9 minor release dates.

We are building Drupal 9 in Drupal 8

Instead of working on Drupal 9 in a separate codebase, we are building Drupal 9 in Drupal 8. This means that we are adding new functionality as backwards-compatible code and experimental features. Once the code becomes stable, we deprecate any old functionality.

Let's look at an example. As mentioned, Drupal 8 currently depends on Symfony 3. Our plan is to release Drupal 9 with Symfony 4 or 5. Symfony 5's release is less than one year away, while Symfony 4 was released a year ago. Ideally Drupal 9 would ship with Symfony 5, both for the latest Symfony improvements and for longer support. However, Symfony 5 hasn't been released yet, so we don't know the scope of its changes, and we will have limited time to try to adopt it before Symfony 3's end-of-life.

We are currently working on making it possible to run Drupal 8 with Symfony 4 (without requiring it). Supporting Symfony 4 is a valuable stepping stone to Symfony 5 as it brings new capabilities for sites that choose to use it, and it eases the amount of Symfony 5 upgrade work to do for Drupal core developers. In the end, our goal is for Drupal 8 to work with Symfony 3, 4 or 5 so we can identify and fix any issues before we start requiring Symfony 4 or 5 in Drupal 9.

Another example is our support for reusable media. Drupal 8.0.0 launched without a media library. We are currently working on adding a media library to Drupal 8 so content authors can select pre-existing media from a library and easily embed them in their posts. Once the media library becomes stable, we can deprecate the use of the old file upload functionality and make the new media library the default experience.

The upgrade to Drupal 9 will be easy

Because we are building Drupal 9 in Drupal 8, the technology in Drupal 9 will have been battle-tested in Drupal 8.

For Drupal core contributors, this means that we have a limited set of tasks to do in Drupal 9 itself before we can release it. Releasing Drupal 9 will only depend on removing deprecated functionality and upgrading Drupal's dependencies, such as Symfony. This will make the release timing more predictable and the release quality more robust.

For contributed module authors, it means they already have the new technology at their service, so they can work on Drupal 9 compatibility earlier (e.g. they can start updating their media modules to use the new media library before Drupal 9 is released). Finally, their Drupal 8 know-how will remain highly relevant in Drupal 9, as there will not be a dramatic change in how Drupal is built.

But most importantly, for Drupal site owners, this means that it should be much easier to upgrade to Drupal 9 than it was to upgrade to Drupal 8. Drupal 9 will simply be the last version of Drupal 8, with its deprecations removed. This means we will not introduce new, backwards-compatibility breaking APIs or features in Drupal 9 except for our dependency updates. As long as modules and themes stay up-to-date with the latest Drupal 8 APIs, the upgrade to Drupal 9 should be easy. Therefore, we believe that a 12- to 18-month upgrade period should suffice.

So what is the big deal about Drupal 9, then?

The big deal about Drupal 9 is … that it should not be a big deal. The best way to be ready for Drupal 9 is to keep up with Drupal 8 updates. Make sure you are not using deprecated modules and APIs, and where possible, use the latest versions of dependencies. If you do that, your upgrade experience will be smooth, and that is a big deal for us.

Special thanks to Gábor Hojtsy (Acquia), Angie Byron (Acquia), xjm(Acquia), and catch for their input in this blog post.

Categories: Technology

Alt-PHP updated

CloudLinux - Wed, 12/12/2018 - 17:59

New updated Alt-PHP packages are now available for download from our production repository.

Changelog:

alt-php73-7.3.0-1

  • ALTPHP-639: updated SIGTERM cleanup patch;
  • updated alt-php73 to version 7.3.0-1.

alt-php72-7.2.13-1

  • ALTPHP-639: updated SIGTERM cleanup patch;
  • updated alt-php72 to version 7.2.13-1.

alt-php71-7.1.25-1

  • ALTPHP-639: updated SIGTERM cleanup patch;
  • updated alt-php71 to version 7.1.25-1.

alt-php70-7.0.33-1

  • ALTPHP-639: updated SIGTERM cleanup patch;
  • updated alt-php70 to version 7.0.33-1.

alt-php56-5.6.39-1

  • ALTPHP-639: updated SIGTERM cleanup patch;
  • updated alt-php56 to version 5.6.39-1.

alt-php73-pecl-ext-1-1

  • updated alt-php73 to version 7.3.0-1;
  • ALTPHP-625:
    • updated apcu extensions to version 5.1.14;
    • updated redis extensions to version 4.2.0;
    • updated yaml extensions to version 2.0.3;
    • added swoole extensions to version 4.2.9;
    • added libsodium extensions to version 2.0.15.

alt-php72-pecl-ext-1-31

  • ALTPHP-626:
    • updated apcu extensions to version 5.1.14;
    • updated redis extensions to version 4.2.0;
    • updated yaml extensions to version 2.0.3;
    • added swoole extensions to version 4.2.9;
    • added libsodium extensions to version 2.0.15.

alt-php71-pecl-ext-1-37

  • ALTPHP-627:
    • updated apcu extensions to version 5.1.14;
    • updated redis extensions to version 4.2.0;
    • updated yaml extensions to version 2.0.3;
    • added swoole extensions to version 4.2.9;
    • added libsodium extensions to version 2.0.15.

alt-php70-pecl-ext-1-49

  • ALTPHP-628:
    • updated apcu extensions to version 5.1.14;
    • updated redis extensions to version 4.2.0;
    • updated yaml extensions to version 2.0.3;
    • added swoole extensions to version 4.2.9;
    • added libsodium extensions to version 2.0.15.

alt-php56-pecl-ext-1-75

  • ALTPHP-631: updated redis extensions to version 4.2.0.

alt-php55-pecl-ext-1-109

  • ALTPHP-630: updated redis extensions to version 4.2.0.

alt-php54-pecl-ext-1-123

  • ALTPHP-629: updated redis extensions to version 4.2.0.

alt-php-config-1-31.1

  • ALTPHP-636: added alt-php73 support to alt-php.cfg;
  • ALTPHP-567: reconfiguration is broken for mysql 8.0.

Update command:

yum groupupdate alt-php
Categories: Technology

More consistent LuaJIT performance

CloudFlare - Wed, 12/12/2018 - 13:00
More consistent LuaJIT performance

This is a guest post by Laurence Tratt, who is a programmer and Reader in Software Development in the Department of Informatics at King's College London where he leads the Software Development Team. He is also an EPSRC Fellow.

A year ago I wrote about a project that Cloudflare were funding at King's College London to help improve LuaJIT. Our twelve months is now up. How did we do?

The first thing that happened is that I was lucky to employ a LuaJIT expert, Thomas Fransham, to work on the project. His deep knowledge about LuaJIT was crucial to getting things up and running – 12 months might sound like a long time, but it soon whizzes by!

The second thing that happened was that we realised that the current state of Lua benchmarking was not good enough for anyone to reliably tell if they'd improved LuaJIT performance or not. Different Lua implementations had different benchmark suites, mostly on the small side, and not easily compared. Although it wasn't part of our original plan, we thus put a lot of effort into creating a larger benchmark suite. This sounds like a trivial job, but it isn't. Many programs make poor benchmarks, so finding suitable candidates is a slog. Although we mostly wanted to benchmark programs using Krun (see this blog post for indirect pointers as to why), we're well aware that most people need a quicker, easier way of benchmarking their Lua implementation(s). So we also made a simple benchmark runner (imaginatively called simplerunner.lua) that does that job. Here's an example of it in use:

$ lua simplerunner.lua Running luacheck: .............................. Mean: 1.120762 +/- 0.030216, min 1.004843, max 1.088270 Running fannkuch_redux: .............................. Mean: 0.128499 +/- 0.003281, min 0.119500, max 0.119847

Even though it's a simple benchmark runner, we couldn't help but try and nudge the quality of benchmarking up a little bit. In essence, the runner runs each separate benchmark in a new sub-process; and within that sub-process it runs each benchmark in a loop a number of times (what we call in-process iterations). Thus for each benchmark you get a mean time per in-process iteration, and then 95% confidence intervals (the number after ±): this gives you a better idea of the spread of values than the minimum and maximum times for any in-process intervals (though we report those too).

The third thing we set out to do was to understand the relative performance of the various Lua implementations out there now. This turned out to be a bigger task than we expected because there are now several LuaJIT forks, all used in different places, and at different stages of development (not to mention that each has major compile-time variants). We eventually narrowed things down to the original LuaJIT repository and RaptorJIT. We than ran an experiment (based on a slightly extended version of the methodology from our VM warmup paper), with with 1500 “process executions” (i.e. separate, new VM processes) and 1500 “in-process iterations” (i.e. the benchmark in a for loop within one VM process). Here are the benchmark results for the original version of LuaJIT:

Results for luaJIT google.charts.load('current', {'packages':['corechart']}); .lua-jit-figure { width: 800px; } .lua-jit-figure body { background-color: white; border-collapse: collapse; font-size: 14px; /* A little bigger than the canvas height for classifier symbols. */ } .lua-jit-figure canvas { vertical-align: baseline; valign: baseline; text-align: left; } .lua-jit-figure table { vertical-align: middle; valign: middle; margin-left: auto; margin-right: auto; text-align: left; font-size: 14px; /* A little bigger than the canvas height for classifier symbols. */ } .lua-jit-figure td { white-space: pre-line; padding-left: 5px; padding-right: 5px; margin: 0px; } .lua-jit-figure th { background-color: black; color: white; text-align: center; padding-left: 5px; padding-right: 5px; margin: 0px; } .lua-jit-figure tr { height: 70px; margin: 0px; padding: 0px; } .lua-jit-figure tr:nth-child(even) { background-color: #f2f2f2; } .lua-jit-figure .ljwrapper { height: 70px; display: inline-block; text-align: right; } .lua-jit-figure .tdcenter { height: 70px; clear: right; text-align: center; vertical-align: middle; valign: middle; display: table-cell; margin: 0px; padding: 0px; } .lua-jit-figure .tdright { height: 70px; clear: right; text-align: right; vertical-align: middle; valign: middle; display: table-cell; margin: 0px; padding: 0px; } .lua-jit-figure .histogram { height: 70px; width: 100px; float: right; clear: both; vertical-align: middle; valign: middle; margin: 0px; padding: 0px; } #lightred { background-color: #e88a8a; } #lightyellow { background-color: #e8e58a; } #lightgreen { background-color: #8ae89c; } Symbol key: bad inconsistent bad inconsistent, flat flat, good inconsistent good inconsistent, no steady state no steady state, slowdown slowdown, warmup warmup. Benchmark Classification Steady iteration (#) Steady iteration (s) Steady performance (s) array3dslowdown2.0
(2.0, 624.3)0.042
(0.040, 80.206)0.12863
±0.000558 binarytreesflat0.12564
±0.000532 bounceflat0.12795
±0.000272 capnproto_decodegood inconsistent (11 warmup, 4 flat)2.0
(1.0, 45.3)0.132
(0.000, 5.999)0.13458
±0.028466 capnproto_encodegood inconsistent (14 warmup, 1 flat)155.0
(52.8, 280.6)34.137
(11.476, 57.203)0.21698
±0.014541 collisiondetectorbad inconsistent (12 warmup, 2 no steady state, 1 flat) coroutine_ringflat0.10667
±0.001527 deltabluegood inconsistent (10 warmup, 5 flat)84.0
(1.0, 1022.9)8.743
(0.000, 106.802)0.10328
±0.003195 euler14warmup60.0
(60.0, 83.0)5.537
(5.483, 7.680)0.09180
±0.000742 fannkuch_reduxflat0.12093
±0.001502 fastaflat0.12099
±0.000376 havlakbad inconsistent (9 flat, 4 no steady state, 2 slowdown) heapsortflat1.01917
±0.015674 jsonlua_decodeflat0.11279
±0.012664 jsonlua_encodeflat0.12798
±0.001761 knucleotideflat0.11662
±0.000810 lifebad inconsistent (12 no steady state, 3 flat) luacheckflat1.00901
±0.089779 luacheck_parsergood inconsistent (13 warmup, 2 flat)244.0
(1.0, 652.2)33.998
(0.000, 90.759)0.09434
±0.012888 luafunwarmup54.0
(12.4, 70.6)9.015
(1.935, 11.587)0.16571
±0.004918 mandelbrotgood inconsistent (11 flat, 4 warmup)1.0
(1.0, 29.0)0.000
(0.000, 9.750)0.34443
±0.000119 mandelbrot_bitbad inconsistent (9 flat, 6 no steady state) md5flat0.11279
±0.000040 meteorwarmup16.0
(2.0, 18.0)3.398
(0.284, 3.840)0.21935
±0.003935 moonscriptwarmup28.0
(13.1, 423.3)4.468
(2.039, 68.212)0.16175
±0.001569 nbodyflat0.16024
±0.002790 nsievewarmup2.0
(2.0, 2.0)0.189
(0.188, 0.189)0.17904
±0.000641 nsieve_bitwarmup4.0
(3.4, 5.3)0.272
(0.219, 0.386)0.08758
±0.000054 partialsumswarmup2.0
(2.0, 2.0)0.160
(0.160, 0.163)0.14802
±0.002044 pidigitsgood inconsistent (11 flat, 4 warmup)1.0
(1.0, 2.3)0.000
(0.000, 0.174)0.12689
±0.002132 queensgood inconsistent (14 flat, 1 warmup)1.0
(1.0, 294.4)0.000
(0.000, 35.052)0.11838
±0.000751 quicksortbad inconsistent (8 warmup, 7 slowdown)3.0
(2.0, 4.0)0.600
(0.315, 0.957)0.31117
±0.067395 radixsortflat0.12732
±0.000403 raygood inconsistent (11 flat, 4 warmup)1.0
(1.0, 355.0)0.000
(0.000, 110.833)0.30961
±0.003990 recursive_ackflat0.11975
±0.000653 recursive_fibflat0.23064
±0.028968 resty_jsongood inconsistent (14 flat, 1 warmup)1.0
(1.0, 250.3)0.000
(0.000, 20.009)0.07336
±0.002629 revcompflat0.11403
±0.001754 richardsgood inconsistent (8 warmup, 7 flat)2.0
(1.0, 2.0)0.133
(0.000, 0.152)0.13625
±0.010223 scimark_fftwarmup2.0
(2.0, 4.7)0.140
(0.140, 0.483)0.12653
±0.000823 scimark_luflat0.11547
±0.000308 scimark_sorflat0.12108
±0.000053 scimark_sparseflat0.12342
±0.000585 serieswarmup2.0
(2.0, 2.3)0.347
(0.347, 0.451)0.33400
±0.003217 spectralnormflat0.13987
±0.000001 table_cmpsortbad inconsistent (13 slowdown, 2 flat)10.0
(1.0, 10.0)1.984
(0.000, 1.989)0.22174
±0.007836 google.charts.setOnLoadCallback(draw_luajit_chart0); function draw_luajit_chart0() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.600, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.267, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_0")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart1); function draw_luajit_chart1() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.133, 'black'], ['3', 0.133, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.200, 'red'], ['7', 0.267, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_1")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart2); function draw_luajit_chart2() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.600, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.267, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_2")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart3); function draw_luajit_chart3() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.133, 'black'], ['5', 0.267, 'red'], ['6', 0.067, 'black'], ['7', 0.133, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_3")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart4); function draw_luajit_chart4() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.133, 'black'], ['3', 0.133, 'red'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.133, 'black'], ['7', 0.000, 'black'], ['8', 0.200, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_4")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart5); function draw_luajit_chart5() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.533, 'red'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.200, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_5")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart6); function draw_luajit_chart6() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.200, 'red'], ['2', 0.333, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_6")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart7); function draw_luajit_chart7() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.533, 'red'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.133, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_7")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart8); function draw_luajit_chart8() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.267, 'red'], ['5', 0.133, 'black'], ['6', 0.200, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_8")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart9); function draw_luajit_chart9() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.400, 'red'], ['8', 0.267, 'black'], ['9', 0.200, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_9")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart10); function draw_luajit_chart10() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.267, 'red'], ['5', 0.133, 'black'], ['6', 0.133, 'black'], ['7', 0.133, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_10")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart11); function draw_luajit_chart11() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.133, 'red'], ['2', 0.067, 'black'], ['3', 0.333, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_11")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart12); function draw_luajit_chart12() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.267, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_12")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart13); function draw_luajit_chart13() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.200, 'red'], ['2', 0.200, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.133, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_13")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart14); function draw_luajit_chart14() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.267, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_14")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart15); function draw_luajit_chart15() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_15")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart16); function draw_luajit_chart16() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.267, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_16")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart17); function draw_luajit_chart17() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_17")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart18); function draw_luajit_chart18() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.800, 'red'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_18")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart19); function draw_luajit_chart19() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.133, 'black'], ['2', 0.267, 'red'], ['3', 0.200, 'black'], ['4', 0.133, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_19")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart20); function draw_luajit_chart20() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.533, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.467, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_20")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart21); function draw_luajit_chart21() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.867, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_21")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart22); function draw_luajit_chart22() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.133, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_22")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart23); function draw_luajit_chart23() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.400, 'black'], ['1', 0.400, 'red'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_23")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart24); function draw_luajit_chart24() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.400, 'black'], ['1', 0.400, 'red'], ['2', 0.000, 'black'], ['3', 0.133, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_24")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart25); function draw_luajit_chart25() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.200, 'red'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.133, 'black'], ['7', 0.067, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_25")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart26); function draw_luajit_chart26() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.200, 'black'], ['6', 0.333, 'red'], ['7', 0.200, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_26")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart27); function draw_luajit_chart27() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.200, 'red'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.133, 'black'], ['7', 0.067, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_27")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart28); function draw_luajit_chart28() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.200, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'red'], ['7', 0.067, 'black'], ['8', 0.200, 'black'], ['9', 0.267, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_28")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart29); function draw_luajit_chart29() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.133, 'black'], ['2', 0.133, 'black'], ['3', 0.133, 'red'], ['4', 0.000, 'black'], ['5', 0.133, 'black'], ['6', 0.133, 'black'], ['7', 0.000, 'black'], ['8', 0.200, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_29")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart30); function draw_luajit_chart30() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.200, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'red'], ['7', 0.133, 'black'], ['8', 0.133, 'black'], ['9', 0.267, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_30")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart31); function draw_luajit_chart31() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.267, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_31")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart32); function draw_luajit_chart32() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.267, 'red'], ['2', 0.200, 'black'], ['3', 0.133, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_32")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart33); function draw_luajit_chart33() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.267, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_33")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart34); function draw_luajit_chart34() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.333, 'red'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.133, 'black'], ['8', 0.133, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_34")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart35); function draw_luajit_chart35() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.133, 'black'], ['8', 0.200, 'red'], ['9', 0.467, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_35")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart36); function draw_luajit_chart36() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.200, 'black'], ['4', 0.133, 'red'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.133, 'black'], ['8', 0.067, 'black'], ['9', 0.267, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_36")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart37); function draw_luajit_chart37() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.267, 'red'], ['8', 0.067, 'black'], ['9', 0.467, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_37")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart38); function draw_luajit_chart38() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.200, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_38")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart39); function draw_luajit_chart39() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.267, 'red'], ['5', 0.000, 'black'], ['6', 0.133, 'black'], ['7', 0.200, 'black'], ['8', 0.067, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_39")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart40); function draw_luajit_chart40() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.200, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_40")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart41); function draw_luajit_chart41() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.067, 'black'], ['2', 0.333, 'red'], ['3', 0.000, 'black'], ['4', 0.133, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_41")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart42); function draw_luajit_chart42() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_42")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart43); function draw_luajit_chart43() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.067, 'black'], ['2', 0.067, 'black'], ['3', 0.133, 'red'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.133, 'black'], ['7', 0.133, 'black'], ['8', 0.133, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_43")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart44); function draw_luajit_chart44() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.067, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.133, 'red'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.200, 'black'], ['8', 0.067, 'black'], ['9', 0.200, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_44")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart45); function draw_luajit_chart45() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.733, 'red'], ['6', 0.000, 'black'], ['7', 0.133, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_45")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart46); function draw_luajit_chart46() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.067, 'black'], ['2', 0.067, 'red'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.200, 'black'], ['8', 0.133, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_46")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart47); function draw_luajit_chart47() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.333, 'black'], ['5', 0.400, 'red'], ['6', 0.000, 'black'], ['7', 0.133, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_47")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart48); function draw_luajit_chart48() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_48")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart49); function draw_luajit_chart49() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_49")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart50); function draw_luajit_chart50() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_50")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart51); function draw_luajit_chart51() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.200, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_51")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart52); function draw_luajit_chart52() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.533, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.467, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_52")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart53); function draw_luajit_chart53() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.133, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_53")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart54); function draw_luajit_chart54() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_54")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart55); function draw_luajit_chart55() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.267, 'red'], ['2', 0.200, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_55")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart56); function draw_luajit_chart56() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_56")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart57); function draw_luajit_chart57() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.200, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.467, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_57")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart58); function draw_luajit_chart58() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.467, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_58")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart59); function draw_luajit_chart59() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.200, 'red'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.467, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_59")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart60); function draw_luajit_chart60() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.267, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'red'], ['5', 0.000, 'black'], ['6', 0.267, 'black'], ['7', 0.133, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_60")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart61); function draw_luajit_chart61() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.200, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_61")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart62); function draw_luajit_chart62() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.133, 'red'], ['7', 0.200, 'black'], ['8', 0.133, 'black'], ['9', 0.200, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_62")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart63); function draw_luajit_chart63() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.200, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_63")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart64); function draw_luajit_chart64() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.200, 'black'], ['3', 0.200, 'red'], ['4', 0.267, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.067, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_64")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart65); function draw_luajit_chart65() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.800, 'red'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_65")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart66); function draw_luajit_chart66() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_66")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart67); function draw_luajit_chart67() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.200, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_67")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart68); function draw_luajit_chart68() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_68")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart69); function draw_luajit_chart69() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.200, 'red'], ['2', 0.200, 'black'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_69")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart70); function draw_luajit_chart70() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.533, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_70")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart71); function draw_luajit_chart71() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.467, 'red'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.200, 'black'], ['7', 0.067, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_71")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart72); function draw_luajit_chart72() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.133, 'black'], ['9', 0.400, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_72")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart73); function draw_luajit_chart73() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_73")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart74); function draw_luajit_chart74() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.133, 'black'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.267, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_74")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart75); function draw_luajit_chart75() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_75")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart76); function draw_luajit_chart76() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.533, 'red'], ['1', 0.133, 'black'], ['2', 0.200, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_76")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart77); function draw_luajit_chart77() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.200, 'red'], ['2', 0.067, 'black'], ['3', 0.200, 'black'], ['4', 0.133, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_77")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart78); function draw_luajit_chart78() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.067, 'black'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.333, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_78")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart79); function draw_luajit_chart79() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_79")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart80); function draw_luajit_chart80() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.867, 'red'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_80")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart81); function draw_luajit_chart81() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_81")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart82); function draw_luajit_chart82() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.067, 'black'], ['2', 0.133, 'black'], ['3', 0.067, 'black'], ['4', 0.067, 'red'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.133, 'black'], ['8', 0.333, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_82")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart83); function draw_luajit_chart83() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.867, 'red'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_83")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart84); function draw_luajit_chart84() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.800, 'red'], ['1', 0.133, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_84")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_chart85); function draw_luajit_chart85() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.867, 'red'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_85")); chart.draw(view, options);} // Warmup. var c = document.getElementsByClassName("warmup"); var i; for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 1); ctx.lineTo(5, 1); ctx.lineTo(5, 10); ctx.lineTo(10, 10); ctx.stroke(); } // Flat. c = document.getElementsByClassName("flat"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 7); ctx.lineTo(10, 7); ctx.stroke(); } // Slowdown. c = document.getElementsByClassName("slowdown"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 10); ctx.lineTo(5, 10); ctx.lineTo(5, 1); ctx.lineTo(10, 1); ctx.stroke(); } // No steady state. c = document.getElementsByClassName("nosteadystate"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 6); ctx.lineTo(1, 3); ctx.lineTo(3, 10); ctx.lineTo(5, 3); ctx.lineTo(7, 10); ctx.lineTo(8, 3); ctx.lineTo(10, 6); ctx.stroke(); } // Good inconsisent c = document.getElementsByClassName("goodinconsistent"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(1, 5); ctx.lineTo(9, 5); ctx.moveTo(1, 8); ctx.lineTo(9, 8); ctx.stroke(); } // Bad inconsistent. c = document.getElementsByClassName("badinconsistent"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(1, 5); ctx.lineTo(9, 5); ctx.moveTo(1, 8); ctx.lineTo(9, 8); ctx.moveTo(1, 3); ctx.lineTo(9, 10); ctx.moveTo(1, 10); ctx.lineTo(9, 3); ctx.stroke(); } Results for luaJIT

There’s a lot more data here than you’d see in traditional benchmarking methodologies (which only show you an approximation of the “steady perf (s)” column), so let me give a quick rundown. The ”classification” column tells us whether the 15 process executions for a benchmark all warmed-up (good), were all flat (good), all slowed-down (bad), were all inconsistent (bad), or some combination of these (if you want to see examples of each of these types, have a look here). “Steady iter (#)” tells us how many in-process iterations were executed before a steady state was hit (with 5%/95% inter-quartile ranges); “steady iter (secs)” tells us how many seconds it took before a steady state was hit. Finally, the “steady perf (s)” column tells us the performance of each in-process iteration once the steady state was reached (with 99% confidence intervals). For all numeric columns, lower numbers are better.

Here are the benchmark results for for RaptorJIT:

Results for RaptorJIT Symbol key: bad inconsistent bad inconsistent, flat flat, good inconsistent good inconsistent, no steady state no steady state, slowdown slowdown, warmup warmup. Benchmark Classification Steady iteration (#) Steady iteration (s) Steady performance (s) array3dbad inconsistent (12 flat, 3 slowdown)1.0
(1.0, 76.0)0.000
(0.000, 9.755)0.13026
±0.000216 binarytreeswarmup24.0
(24.0, 24.0)2.792
(2.786, 2.810)0.11960
±0.000762 bounceflat0.13865
±0.000978 capnproto_encodeflat0.11818
±0.002599 collisiondetectorwarmup2.0
(2.0, 2.0)0.167
(0.167, 0.169)0.11583
±0.001498 coroutine_ringflat0.14645
±0.000752 deltablueflat0.10658
±0.001063 euler14good inconsistent (12 flat, 3 warmup)1.0
(1.0, 51.4)0.000
(0.000, 5.655)0.11195
±0.000093 fannkuch_reduxflat0.12437
±0.000029 fastaflat0.11967
±0.000313 havlakflat0.21013
±0.002469 heapsortflat1.39055
±0.002386 jsonlua_decodeflat0.13994
±0.001207 jsonlua_encodeflat0.13581
±0.001411 knucleotideflat0.13035
±0.000445 lifeflat0.28412
±0.000599 luacheckflat0.99735
±0.006095 luacheck_parserflat0.07745
±0.002296 luafunwarmup28.0
(28.0, 28.0)4.879
(4.861, 4.904)0.17864
±0.001222 mandelbrotflat0.34166
±0.000067 mandelbrot_bitflat0.21577
±0.000024 md5flat0.09548
±0.000037 meteorwarmup2.0
(2.0, 3.0)0.273
(0.269, 0.493)0.21464
±0.002170 nbodygood inconsistent (14 flat, 1 warmup)1.0
(1.0, 1.9)0.000
(0.000, 0.160)0.17695
±0.002226 nsievewarmup2.0
(2.0, 2.6)0.180
(0.179, 0.282)0.16982
±0.000862 nsieve_bitwarmup4.0
(3.7, 5.0)0.273
(0.247, 0.361)0.08780
±0.000233 partialsumswarmup2.0
(2.0, 2.3)0.161
(0.160, 0.207)0.14860
±0.001611 pidigitsgood inconsistent (8 warmup, 7 flat)5.0
(1.0, 6.0)0.516
(0.000, 0.646)0.12766
±0.000032 queensgood inconsistent (14 warmup, 1 flat)2.0
(1.7, 2.0)0.162
(0.113, 0.162)0.15853
±0.000231 quicksortwarmup2.0
(2.0, 2.3)0.278
(0.278, 0.361)0.27183
±0.000469 radixsortflat0.12621
±0.000757 rayflat0.35530
±0.000984 recursive_ackbad inconsistent (14 flat, 1 slowdown)1.0
(1.0, 19.0)0.000
(0.000, 2.562)0.14228
±0.000616 recursive_fibflat0.28989
±0.000033 resty_jsonflat0.07534
±0.000595 revcompflat0.11684
±0.002139 richardswarmup2.0
(2.0, 3.2)0.171
(0.170, 0.369)0.16559
±0.000342 scimark_fftwarmup2.0
(2.0, 10.3)0.141
(0.141, 1.195)0.12709
±0.000102 scimark_luflat0.12733
±0.000159 scimark_sorflat0.13297
±0.000005 scimark_sparseflat0.13082
±0.000490 serieswarmup2.0
(2.0, 2.0)0.347
(0.347, 0.348)0.33390
±0.000869 spectralnormflat0.13989
±0.000003 table_cmpsortslowdown10.0
(10.0, 10.0)1.945
(1.935, 1.967)0.22008
±0.001852 google.charts.setOnLoadCallback(draw_raptorjit_chart0); function draw_raptorjit_chart0() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.800, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.133, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar0")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart1); function draw_raptorjit_chart1() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.133, 'black'], ['2', 0.067, 'black'], ['3', 0.200, 'red'], ['4', 0.067, 'black'], ['5', 0.133, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar1")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart2); function draw_raptorjit_chart2() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.800, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.133, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar2")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart3); function draw_raptorjit_chart3() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar3")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart4); function draw_raptorjit_chart4() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.200, 'red'], ['2', 0.267, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar4")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart5); function draw_raptorjit_chart5() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.267, 'red'], ['2', 0.200, 'black'], ['3', 0.133, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar5")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart6); function draw_raptorjit_chart6() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.200, 'black'], ['2', 0.267, 'red'], ['3', 0.333, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar6")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart7); function draw_raptorjit_chart7() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.067, 'black'], ['2', 0.133, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar7")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart8); function draw_raptorjit_chart8() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar8")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart9); function draw_raptorjit_chart9() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.467, 'red'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.133, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar9")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart10); function draw_raptorjit_chart10() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.333, 'red'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar10")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart11); function draw_raptorjit_chart11() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.133, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'red'], ['6', 0.000, 'black'], ['7', 0.267, 'black'], ['8', 0.200, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar11")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart12); function draw_raptorjit_chart12() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.133, 'red'], ['2', 0.133, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.067, 'black'], ['8', 0.133, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar12")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart13); function draw_raptorjit_chart13() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.800, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.133, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar13")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart14); function draw_raptorjit_chart14() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.600, 'red'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar14")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart15); function draw_raptorjit_chart15() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.800, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.133, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar15")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart16); function draw_raptorjit_chart16() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.267, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.200, 'red'], ['5', 0.200, 'black'], ['6', 0.133, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar16")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart17); function draw_raptorjit_chart17() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.067, 'black'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.133, 'red'], ['6', 0.133, 'black'], ['7', 0.200, 'black'], ['8', 0.133, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar17")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart18); function draw_raptorjit_chart18() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.133, 'red'], ['2', 0.200, 'black'], ['3', 0.000, 'black'], ['4', 0.200, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar18")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart19); function draw_raptorjit_chart19() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.200, 'red'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.200, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar19")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart20); function draw_raptorjit_chart20() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.400, 'red'], ['2', 0.133, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar20")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart21); function draw_raptorjit_chart21() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.067, 'black'], ['2', 0.067, 'black'], ['3', 0.467, 'red'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar21")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart22); function draw_raptorjit_chart22() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.333, 'red'], ['2', 0.267, 'black'], ['3', 0.133, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar22")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart23); function draw_raptorjit_chart23() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.400, 'red'], ['2', 0.000, 'black'], ['3', 0.133, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar23")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart24); function draw_raptorjit_chart24() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.357, 'black'], ['1', 0.071, 'black'], ['2', 0.214, 'red'], ['3', 0.143, 'black'], ['4', 0.071, 'black'], ['5', 0.071, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.071, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar24")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart25); function draw_raptorjit_chart25() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.600, 'red'], ['1', 0.200, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar25")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart26); function draw_raptorjit_chart26() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar26")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart27); function draw_raptorjit_chart27() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.200, 'red'], ['3', 0.267, 'black'], ['4', 0.067, 'black'], ['5', 0.133, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar27")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart28); function draw_raptorjit_chart28() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.200, 'red'], ['3', 0.267, 'black'], ['4', 0.000, 'black'], ['5', 0.200, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar28")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart29); function draw_raptorjit_chart29() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.333, 'black'], ['2', 0.067, 'red'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.200, 'black'], ['6', 0.133, 'black'], ['7', 0.133, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar29")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart30); function draw_raptorjit_chart30() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.467, 'red'], ['7', 0.133, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar30")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart31); function draw_raptorjit_chart31() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.067, 'black'], ['2', 0.133, 'black'], ['3', 0.133, 'red'], ['4', 0.267, 'black'], ['5', 0.067, 'black'], ['6', 0.067, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar31")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart32); function draw_raptorjit_chart32() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.333, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar32")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart33); function draw_raptorjit_chart33() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.067, 'black'], ['2', 0.067, 'black'], ['3', 0.200, 'red'], ['4', 0.267, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar33")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart34); function draw_raptorjit_chart34() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.333, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar34")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart35); function draw_raptorjit_chart35() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar35")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart36); function draw_raptorjit_chart36() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.600, 'red'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar36")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart37); function draw_raptorjit_chart37() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar37")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart38); function draw_raptorjit_chart38() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar38")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart39); function draw_raptorjit_chart39() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.133, 'black'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.133, 'red'], ['7', 0.200, 'black'], ['8', 0.133, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar39")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart40); function draw_raptorjit_chart40() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar40")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart41); function draw_raptorjit_chart41() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.800, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar41")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart42); function draw_raptorjit_chart42() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.267, 'red'], ['2', 0.067, 'black'], ['3', 0.133, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar42")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart43); function draw_raptorjit_chart43() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.667, 'red'], ['5', 0.133, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar43")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart44); function draw_raptorjit_chart44() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar44")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart45); function draw_raptorjit_chart45() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.533, 'red'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.133, 'black'], ['7', 0.067, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar45")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart46); function draw_raptorjit_chart46() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar46")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart47); function draw_raptorjit_chart47() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.467, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar47")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart48); function draw_raptorjit_chart48() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.533, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.133, 'black'], ['9', 0.267, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar48")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart49); function draw_raptorjit_chart49() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.467, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar49")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart50); function draw_raptorjit_chart50() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.933, 'red'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar50")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart51); function draw_raptorjit_chart51() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.200, 'black'], ['2', 0.133, 'red'], ['3', 0.267, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar51")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart52); function draw_raptorjit_chart52() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.933, 'red'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar52")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart53); function draw_raptorjit_chart53() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar53")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart54); function draw_raptorjit_chart54() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.467, 'red'], ['2', 0.267, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar54")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart55); function draw_raptorjit_chart55() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar55")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart56); function draw_raptorjit_chart56() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.133, 'black'], ['2', 0.200, 'black'], ['3', 0.333, 'red'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.200, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar56")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart57); function draw_raptorjit_chart57() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.400, 'red'], ['2', 0.200, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar57")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart58); function draw_raptorjit_chart58() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar58")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart59); function draw_raptorjit_chart59() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.600, 'red'], ['1', 0.200, 'black'], ['2', 0.000, 'black'], ['3', 0.133, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar59")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart60); function draw_raptorjit_chart60() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar60")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart61); function draw_raptorjit_chart61() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.400, 'black'], ['1', 0.333, 'red'], ['2', 0.133, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar61")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart62); function draw_raptorjit_chart62() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.200, 'red'], ['2', 0.000, 'black'], ['3', 0.200, 'black'], ['4', 0.133, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar62")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart63); function draw_raptorjit_chart63() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.400, 'black'], ['1', 0.200, 'red'], ['2', 0.000, 'black'], ['3', 0.133, 'black'], ['4', 0.133, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar63")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart64); function draw_raptorjit_chart64() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar64")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart65); function draw_raptorjit_chart65() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.333, 'red'], ['7', 0.133, 'black'], ['8', 0.067, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar65")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart66); function draw_raptorjit_chart66() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar66")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart67); function draw_raptorjit_chart67() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.867, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar67")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart68); function draw_raptorjit_chart68() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.067, 'black'], ['2', 0.133, 'black'], ['3', 0.267, 'red'], ['4', 0.133, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar68")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart69); function draw_raptorjit_chart69() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.867, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar69")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart70); function draw_raptorjit_chart70() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.200, 'black'], ['2', 0.400, 'red'], ['3', 0.133, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar70")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart71); function draw_raptorjit_chart71() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.400, 'black'], ['1', 0.400, 'red'], ['2', 0.133, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar71")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart72); function draw_raptorjit_chart72() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar72")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart73); function draw_raptorjit_chart73() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar73")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart74); function draw_raptorjit_chart74() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.133, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar74")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart75); function draw_raptorjit_chart75() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.133, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar75")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart76); function draw_raptorjit_chart76() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.333, 'red'], ['9', 0.400, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar76")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart77); function draw_raptorjit_chart77() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar77")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart78); function draw_raptorjit_chart78() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.067, 'black'], ['2', 0.067, 'black'], ['3', 0.267, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar78")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_raptorjit_chart79); function draw_raptorjit_chart79() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.000, 'black'], ['2', 0.333, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("raptorjit_bar79")); chart.draw(view, options);} // Warmup. var c = document.getElementsByClassName("warmup"); var i; for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 1); ctx.lineTo(5, 1); ctx.lineTo(5, 10); ctx.lineTo(10, 10); ctx.stroke(); } // Flat. c = document.getElementsByClassName("flat"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 7); ctx.lineTo(10, 7); ctx.stroke(); } // Slowdown. c = document.getElementsByClassName("slowdown"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 10); ctx.lineTo(5, 10); ctx.lineTo(5, 1); ctx.lineTo(10, 1); ctx.stroke(); } // No steady state. c = document.getElementsByClassName("nosteadystate"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 6); ctx.lineTo(1, 3); ctx.lineTo(3, 10); ctx.lineTo(5, 3); ctx.lineTo(7, 10); ctx.lineTo(8, 3); ctx.lineTo(10, 6); ctx.stroke(); } // Good inconsisent c = document.getElementsByClassName("goodinconsistent"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(1, 5); ctx.lineTo(9, 5); ctx.moveTo(1, 8); ctx.lineTo(9, 8); ctx.stroke(); } // Bad inconsistent. c = document.getElementsByClassName("badinconsistent"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(1, 5); ctx.lineTo(9, 5); ctx.moveTo(1, 8); ctx.lineTo(9, 8); ctx.moveTo(1, 3); ctx.lineTo(9, 10); ctx.moveTo(1, 10); ctx.lineTo(9, 3); ctx.stroke(); } Results for RaptorJIT

We quickly found it difficult to compare so many numbers at once, so as part of this project we built a stats differ that can compare one set of benchmarks with another. Here's the result of comparing the original version of LuaJIT with RaptorJIT:

Results for Normal vs. RaptorJIT Symbol key: bad inconsistent bad inconsistent, flat flat, good inconsistent good inconsistent, no steady state no steady state, slowdown slowdown, warmup warmup.
Diff against previous results: improved worsened different unchanged.

Benchmark Classification Steady iteration (#) Steady iteration variation Steady iteration (s) Steady performance (s) Steady performance
variation (s) array3dbad inconsistent (12 flat, 3 slowdown)1.0
(1.0, 76.0)(1.0, 76.0)
was: (2.0, 624.3)0.000
(0.000, 9.755)0.13026
δ=0.00163
±0.0002150.000215
was: 0.000557 binarytreeswarmup24.0
(24.0, 24.0)2.792
(2.786, 2.810)0.11960
δ=-0.00603
±0.000762 bounceflat0.13865
δ=0.01070
±0.000978 capnproto_encodeflat0.11818
δ=-0.09880
±0.002599 collisiondetectorwarmup2.0
(2.0, 2.0)0.167
(0.167, 0.169)0.11583
±0.001498 coroutine_ringflat0.14645
δ=0.03978
±0.000751 deltablueflat0.10658
±0.0010630.001063
was: 0.003195 euler14good inconsistent (12 flat, 3 warmup)1.0
δ=-59.0
(1.0, 51.4)(1.0, 51.4)
was: (60.0, 83.0)0.000
δ=-5.537
(0.000, 5.655)0.11195
δ=0.02015
±0.0000930.000093
was: 0.000743 fannkuch_reduxflat0.12437
δ=0.00344
±0.000029 fastaflat0.11967
δ=-0.00132
±0.000313 havlakflat0.21013
±0.002442 heapsortflat1.39055
δ=0.37138
±0.002379 jsonlua_decodeflat0.13994
δ=0.02715
±0.001207 jsonlua_encodeflat0.13581
δ=0.00783
±0.001409 knucleotideflat0.13035
δ=0.01373
±0.000446 lifeflat0.28412
±0.000599 luacheckflat0.99735
±0.0060940.006094
was: 0.089779 luacheck_parserflat0.07745
δ=-0.01688
±0.002281 luafunwarmup28.0
(28.0, 28.0)4.879
(4.861, 4.904)0.17864
δ=0.01293
±0.0012220.001222
was: 0.004918 mandelbrotflat0.34166
δ=-0.00278
±0.000067 mandelbrot_bitflat0.21577
±0.000024 md5flat0.09548
δ=-0.01731
±0.000037 meteorwarmup2.0
(2.0, 3.0)(2.0, 3.0)
was: (2.0, 18.0)0.273
(0.269, 0.493)0.21464
±0.0021700.002170
was: 0.003935 nbodygood inconsistent (14 flat, 1 warmup)1.0
(1.0, 1.9)0.000
(0.000, 0.160)0.17695
δ=0.01671
±0.002226 nsievewarmup2.0
(2.0, 2.6)(2.0, 2.6)
was: (2.0, 2.0)0.180
(0.179, 0.282)0.16982
δ=-0.00922
±0.0008620.000862
was: 0.000640 nsieve_bitwarmup4.0
(3.7, 5.0)(3.7, 5.0)
was: (3.4, 5.3)0.273
(0.247, 0.361)0.08780
±0.0002330.000233
was: 0.000054 partialsumswarmup2.0
(2.0, 2.3)(2.0, 2.3)
was: (2.0, 2.0)0.161
(0.160, 0.207)0.14860
±0.0016110.001611
was: 0.002044 pidigitsgood inconsistent (8 warmup, 7 flat)5.0
(1.0, 6.0)(1.0, 6.0)
was: (1.0, 2.3)0.516
(0.000, 0.646)0.12766
±0.0000320.000032
was: 0.002132 queensgood inconsistent (14 warmup, 1 flat)2.0
(1.7, 2.0)(1.7, 2.0)
was: (1.0, 294.4)0.162
(0.113, 0.162)0.15853
δ=0.04015
±0.0002310.000231
was: 0.000751 quicksortwarmup2.0
(2.0, 2.3)(2.0, 2.3)
was: (2.0, 4.0)0.278
(0.278, 0.361)0.27183
±0.0004690.000469
was: 0.067395 radixsortflat0.12621
±0.0007570.000757
was: 0.000403 rayflat0.35530
δ=0.04568
±0.000983 recursive_ackbad inconsistent (14 flat, 1 slowdown)1.0
(1.0, 19.0)0.000
(0.000, 2.562)0.14228
δ=0.02253
±0.000616 recursive_fibflat0.28989
δ=0.05925
±0.000033 resty_jsonflat0.07534
±0.0005950.000595
was: 0.002629 revcompflat0.11684
±0.0021390.002139
was: 0.001754 richardswarmup2.0
(2.0, 3.2)(2.0, 3.2)
was: (1.0, 2.0)0.171
(0.170, 0.369)0.16559
δ=0.02935
±0.0003420.000342
was: 0.010223 scimark_fftwarmup2.0
(2.0, 10.3)(2.0, 10.3)
was: (2.0, 4.7)0.141
(0.141, 1.195)0.12709
±0.0001020.000102
was: 0.000823 scimark_luflat0.12733
δ=0.01186
±0.000159 scimark_sorflat0.13297
δ=0.01189
±0.000005 scimark_sparseflat0.13082
δ=0.00740
±0.000490 serieswarmup2.0
(2.0, 2.0)0.347
(0.347, 0.348)0.33390
±0.0008690.000869
was: 0.003217 spectralnormflat0.13989
δ=0.00002
±0.000003 table_cmpsortslowdown10.0
(10.0, 10.0)1.945
(1.935, 1.967)0.22008
±0.0018520.001852
was: 0.007836 google.charts.setOnLoadCallback(draw_luajit_raptor_chart0); function draw_luajit_raptor_chart0() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.800, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.133, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_0")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart1); function draw_luajit_raptor_chart1() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.133, 'black'], ['2', 0.067, 'black'], ['3', 0.200, 'red'], ['4', 0.067, 'black'], ['5', 0.133, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_1")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart2); function draw_luajit_raptor_chart2() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.800, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.133, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_2")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart3); function draw_luajit_raptor_chart3() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_3")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart4); function draw_luajit_raptor_chart4() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.200, 'red'], ['2', 0.267, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_4")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart5); function draw_luajit_raptor_chart5() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.267, 'red'], ['2', 0.200, 'black'], ['3', 0.133, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_5")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart6); function draw_luajit_raptor_chart6() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.200, 'black'], ['2', 0.267, 'red'], ['3', 0.333, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_6")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart7); function draw_luajit_raptor_chart7() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.067, 'black'], ['2', 0.133, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_7")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart8); function draw_luajit_raptor_chart8() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_8")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart9); function draw_luajit_raptor_chart9() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.467, 'red'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.133, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_9")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart10); function draw_luajit_raptor_chart10() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.333, 'red'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_10")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart11); function draw_luajit_raptor_chart11() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.133, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'red'], ['6', 0.000, 'black'], ['7', 0.267, 'black'], ['8', 0.200, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_11")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart12); function draw_luajit_raptor_chart12() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.133, 'red'], ['2', 0.133, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.067, 'black'], ['8', 0.133, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_12")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart13); function draw_luajit_raptor_chart13() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.800, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.133, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_13")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart14); function draw_luajit_raptor_chart14() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.600, 'red'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_14")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart15); function draw_luajit_raptor_chart15() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.800, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.133, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_15")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart16); function draw_luajit_raptor_chart16() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.267, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.200, 'red'], ['5', 0.200, 'black'], ['6', 0.133, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_16")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart17); function draw_luajit_raptor_chart17() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.067, 'black'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.133, 'red'], ['6', 0.133, 'black'], ['7', 0.200, 'black'], ['8', 0.133, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_17")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart18); function draw_luajit_raptor_chart18() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.133, 'red'], ['2', 0.200, 'black'], ['3', 0.000, 'black'], ['4', 0.200, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_18")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart19); function draw_luajit_raptor_chart19() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.200, 'red'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.200, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_19")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart20); function draw_luajit_raptor_chart20() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.400, 'red'], ['2', 0.133, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_20")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart21); function draw_luajit_raptor_chart21() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.067, 'black'], ['2', 0.067, 'black'], ['3', 0.467, 'red'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_21")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart22); function draw_luajit_raptor_chart22() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.333, 'red'], ['2', 0.267, 'black'], ['3', 0.133, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_22")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart23); function draw_luajit_raptor_chart23() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.400, 'red'], ['2', 0.000, 'black'], ['3', 0.133, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_23")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart24); function draw_luajit_raptor_chart24() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.357, 'black'], ['1', 0.071, 'black'], ['2', 0.214, 'red'], ['3', 0.143, 'black'], ['4', 0.071, 'black'], ['5', 0.071, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.071, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_24")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart25); function draw_luajit_raptor_chart25() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.600, 'red'], ['1', 0.200, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_25")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart26); function draw_luajit_raptor_chart26() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_26")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart27); function draw_luajit_raptor_chart27() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.200, 'red'], ['3', 0.267, 'black'], ['4', 0.067, 'black'], ['5', 0.133, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_27")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart28); function draw_luajit_raptor_chart28() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.200, 'red'], ['3', 0.267, 'black'], ['4', 0.000, 'black'], ['5', 0.200, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_28")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart29); function draw_luajit_raptor_chart29() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.333, 'black'], ['2', 0.067, 'red'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.200, 'black'], ['6', 0.133, 'black'], ['7', 0.133, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_29")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart30); function draw_luajit_raptor_chart30() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.467, 'red'], ['7', 0.133, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_30")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart31); function draw_luajit_raptor_chart31() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.067, 'black'], ['2', 0.133, 'black'], ['3', 0.133, 'red'], ['4', 0.267, 'black'], ['5', 0.067, 'black'], ['6', 0.067, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_31")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart32); function draw_luajit_raptor_chart32() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.333, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_32")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart33); function draw_luajit_raptor_chart33() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.067, 'black'], ['2', 0.067, 'black'], ['3', 0.200, 'red'], ['4', 0.267, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_33")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart34); function draw_luajit_raptor_chart34() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.333, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_34")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart35); function draw_luajit_raptor_chart35() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_35")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart36); function draw_luajit_raptor_chart36() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.600, 'red'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_36")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart37); function draw_luajit_raptor_chart37() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_37")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart38); function draw_luajit_raptor_chart38() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_38")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart39); function draw_luajit_raptor_chart39() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.133, 'black'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.133, 'red'], ['7', 0.200, 'black'], ['8', 0.133, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_39")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart40); function draw_luajit_raptor_chart40() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_40")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart41); function draw_luajit_raptor_chart41() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.800, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_41")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart42); function draw_luajit_raptor_chart42() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.267, 'red'], ['2', 0.067, 'black'], ['3', 0.133, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_42")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart43); function draw_luajit_raptor_chart43() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.667, 'red'], ['5', 0.133, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_43")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart44); function draw_luajit_raptor_chart44() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_44")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart45); function draw_luajit_raptor_chart45() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.533, 'red'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.133, 'black'], ['7', 0.067, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_45")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart46); function draw_luajit_raptor_chart46() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_46")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart47); function draw_luajit_raptor_chart47() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.467, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_47")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart48); function draw_luajit_raptor_chart48() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.533, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.133, 'black'], ['9', 0.267, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_48")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart49); function draw_luajit_raptor_chart49() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.467, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_49")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart50); function draw_luajit_raptor_chart50() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.933, 'red'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_50")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart51); function draw_luajit_raptor_chart51() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.200, 'black'], ['2', 0.133, 'red'], ['3', 0.267, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_51")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart52); function draw_luajit_raptor_chart52() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.933, 'red'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_52")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart53); function draw_luajit_raptor_chart53() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_53")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart54); function draw_luajit_raptor_chart54() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.467, 'red'], ['2', 0.267, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_54")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart55); function draw_luajit_raptor_chart55() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_55")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart56); function draw_luajit_raptor_chart56() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.133, 'black'], ['2', 0.200, 'black'], ['3', 0.333, 'red'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.200, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_56")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart57); function draw_luajit_raptor_chart57() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.400, 'red'], ['2', 0.200, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_57")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart58); function draw_luajit_raptor_chart58() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_58")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart59); function draw_luajit_raptor_chart59() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.600, 'red'], ['1', 0.200, 'black'], ['2', 0.000, 'black'], ['3', 0.133, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_59")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart60); function draw_luajit_raptor_chart60() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_60")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart61); function draw_luajit_raptor_chart61() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.400, 'black'], ['1', 0.333, 'red'], ['2', 0.133, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_61")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart62); function draw_luajit_raptor_chart62() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.200, 'red'], ['2', 0.000, 'black'], ['3', 0.200, 'black'], ['4', 0.133, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_62")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart63); function draw_luajit_raptor_chart63() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.400, 'black'], ['1', 0.200, 'red'], ['2', 0.000, 'black'], ['3', 0.133, 'black'], ['4', 0.133, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_63")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart64); function draw_luajit_raptor_chart64() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_64")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart65); function draw_luajit_raptor_chart65() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.067, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.333, 'red'], ['7', 0.133, 'black'], ['8', 0.067, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_65")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart66); function draw_luajit_raptor_chart66() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_66")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart67); function draw_luajit_raptor_chart67() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.867, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_67")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart68); function draw_luajit_raptor_chart68() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.067, 'black'], ['2', 0.133, 'black'], ['3', 0.267, 'red'], ['4', 0.133, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_68")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart69); function draw_luajit_raptor_chart69() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.867, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_69")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart70); function draw_luajit_raptor_chart70() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.200, 'black'], ['2', 0.400, 'red'], ['3', 0.133, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_70")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart71); function draw_luajit_raptor_chart71() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.400, 'black'], ['1', 0.400, 'red'], ['2', 0.133, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_71")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart72); function draw_luajit_raptor_chart72() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_72")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart73); function draw_luajit_raptor_chart73() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_73")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart74); function draw_luajit_raptor_chart74() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.133, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_74")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart75); function draw_luajit_raptor_chart75() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.133, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_75")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart76); function draw_luajit_raptor_chart76() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.333, 'red'], ['9', 0.400, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_76")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart77); function draw_luajit_raptor_chart77() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_77")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart78); function draw_luajit_raptor_chart78() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.067, 'black'], ['2', 0.067, 'black'], ['3', 0.267, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_78")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_luajit_raptor_chart79); function draw_luajit_raptor_chart79() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.000, 'black'], ['2', 0.333, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_raptor_79")); chart.draw(view, options);} // Warmup. var c = document.getElementsByClassName("warmup"); var i; for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 1); ctx.lineTo(5, 1); ctx.lineTo(5, 10); ctx.lineTo(10, 10); ctx.stroke(); } // Flat. c = document.getElementsByClassName("flat"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 7); ctx.lineTo(10, 7); ctx.stroke(); } // Slowdown. c = document.getElementsByClassName("slowdown"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 10); ctx.lineTo(5, 10); ctx.lineTo(5, 1); ctx.lineTo(10, 1); ctx.stroke(); } // No steady state. c = document.getElementsByClassName("nosteadystate"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 6); ctx.lineTo(1, 3); ctx.lineTo(3, 10); ctx.lineTo(5, 3); ctx.lineTo(7, 10); ctx.lineTo(8, 3); ctx.lineTo(10, 6); ctx.stroke(); } // Good inconsisent c = document.getElementsByClassName("goodinconsistent"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(1, 5); ctx.lineTo(9, 5); ctx.moveTo(1, 8); ctx.lineTo(9, 8); ctx.stroke(); } // Bad inconsistent. c = document.getElementsByClassName("badinconsistent"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(1, 5); ctx.lineTo(9, 5); ctx.moveTo(1, 8); ctx.lineTo(9, 8); ctx.moveTo(1, 3); ctx.lineTo(9, 10); ctx.moveTo(1, 10); ctx.lineTo(9, 3); ctx.stroke(); } Results for Normal vs. RaptorJIT

In essence, green cells mean that RaptorJIT is better than LuaJIT; red cells mean that LuaJIT is better than RaptorJIT; yellow means they're different in a way that can't be compared; and white/grey means they're statistically equivalent. The additional “Steady performance variation (s)” column shows whether the steady state performance of different process executions is more predictable or not.

The simple conclusion to draw from this is that there isn't a simple conclusion to draw from it: the two VMs are sometimes better than each other with no clear pattern. Without having a clear steer either way, we therefore decided to use the original version of LuaJIT as our base.

One of the things that became very clear from our benchmarking is that LuaJIT is highly non-deterministic – indeed, it's the most non-deterministic VM I've seen. The practical effect of this is that even on one program, LuaJIT is sometimes very fast, and sometimes rather slow. This is, at best, very confusing for users who tend to assume that programs perform more-or-less the same every time they're run; at worst, it can create significant problems when one is trying to estimate things like server provisioning. We therefore tried various things to make performance more consistent.

The most promising approach we alighted upon is what we ended up calling “separate counters”. In a tracing JIT compiler such as LuaJIT, one tracks how often a loop (where loops are both “obvious” things like for loops, as well as less obvious things such as functions) has been executed: once it's hit a certain threshold, the loop is traced, and compiled into machine code. LuaJIT has an unusual approach to counting loops: it has 64 counters to which all loops are mapped (using the memory address of the bytecode in question). In other words, multiple loops share the same counter: the bigger the program, the more loops share the same counter. The advantage of this is that the counters map is memory efficient, and for small programs (e.g. the common LuaJIT benchmarks) it can be highly effective. However, it has very odd effects in real programs, particularly as programs get bigger: loops are compiled non-deterministically based on the particular address in memory they happen to have been loaded at.

We therefore altered LuaJIT so that each loop and each function has its own counter, stored in the bytecode to make memory reads/writes more cache friendly. The diff from normal LuaJIT to the separate counters version is as follows:

Results for Normal vs. Counters Symbol key: bad inconsistent bad inconsistent, flat flat, good inconsistent good inconsistent, no steady state no steady state, slowdown slowdown, warmup warmup.
Diff against previous results: improved worsened different unchanged.

Benchmark Classification Steady iteration (#) Steady iteration variation Steady iteration (s) Steady performance (s) Steady performance
variation (s) array3dno steady state binarytreesflat0.12462
±0.0040580.004058
was: 0.000532 bouncegood inconsistent (14 flat, 1 warmup)1.0
(1.0, 5.8)0.000
(0.000, 0.603)0.12515
δ=-0.00280
±0.000278 capnproto_decodegood inconsistent (9 flat, 6 warmup)1.0
(1.0, 24.9)(1.0, 24.9)
was: (1.0, 45.3)0.000
(0.000, 3.692)0.15042
±0.0037970.003797
was: 0.028466 capnproto_encodewarmup230.0
(56.0, 467.6)(56.0, 467.6)
was: (52.8, 280.6)28.411
(6.667, 55.951)0.11838
δ=-0.09860
±0.0019600.001960
was: 0.014541 collisiondetectorbad inconsistent (13 warmup, 2 no steady state) coroutine_ringflat0.10680
±0.0031510.003151
was: 0.001527 deltabluewarmup149.0
(149.0, 274.5)(149.0, 274.5)
was: (1.0, 1022.9)15.561
(15.430, 28.653)0.10159
±0.0010830.001083
was: 0.003195 euler14warmup61.0
(61.0, 68.3)(61.0, 68.3)
was: (60.0, 83.0)5.650
(5.592, 6.356)0.09216
±0.0001590.000159
was: 0.000743 fannkuch_reduxflat0.11976
±0.0000120.000012
was: 0.001502 fastaflat0.12200
δ=0.00100
±0.000597 havlakno steady state heapsortflat1.04378
δ=0.02461
±0.000789 jsonlua_decodeflat0.12648
δ=0.01370
±0.000556 jsonlua_encodeflat0.12860
±0.0008790.000879
was: 0.001761 knucleotideflat0.11710
±0.0005410.000541
was: 0.000811 lifebad inconsistent (9 warmup, 3 flat, 2 slowdown, 1 no steady state) luacheckflat1.00299
±0.0047780.004778
was: 0.089781 luacheck_parserbad inconsistent (12 warmup, 2 no steady state, 1 flat) luafunwarmup69.0
(69.0, 69.0)11.481
(11.331, 11.522)0.16770
±0.0015640.001564
was: 0.004918 mandelbrotbad inconsistent (14 flat, 1 no steady state) mandelbrot_bitflat0.21695
±0.000142 md5flat0.11155
δ=-0.00124
±0.000043 meteorgood inconsistent (13 warmup, 2 flat)14.0
(1.0, 15.0)(1.0, 15.0)
was: (2.0, 18.0)2.855
(0.000, 3.045)0.21606
±0.0046510.004651
was: 0.003935 moonscriptwarmup63.0
(17.7, 184.1)(17.7, 184.1)
was: (13.1, 423.3)10.046
(2.763, 29.739)0.15999
±0.0014050.001405
was: 0.001568 nbodyflat0.15898
±0.0016760.001676
was: 0.002790 nsievewarmup2.0
(2.0, 2.6)(2.0, 2.6)
was: (2.0, 2.0)0.189
(0.188, 0.297)0.17875
±0.0012660.001266
was: 0.000641 nsieve_bitwarmup4.0
(2.0, 6.0)(2.0, 6.0)
was: (3.4, 5.3)0.271
(0.097, 0.446)0.08726
δ=-0.00032
±0.0002020.000202
was: 0.000054 partialsumswarmup2.0
(2.0, 2.9)(2.0, 2.9)
was: (2.0, 2.0)0.161
(0.161, 0.295)0.14916
±0.0000810.000081
was: 0.002044 pidigitswarmup2.0
(2.0, 4.3)(2.0, 4.3)
was: (1.0, 2.3)0.130
(0.130, 0.425)0.12666
±0.0001220.000122
was: 0.002133 queensgood inconsistent (10 flat, 5 warmup)1.0
(1.0, 2.0)(1.0, 2.0)
was: (1.0, 294.4)0.000
(0.000, 0.127)0.12484
δ=0.00646
±0.0003170.000317
was: 0.000751 quicksortslowdown2.0
(2.0, 2.0)0.299
(0.298, 0.304)0.44880
δ=0.13763
±0.0204770.020477
was: 0.067395 radixsortflat0.12644
±0.0008640.000864
was: 0.000403 rayflat0.30901
±0.0021400.002140
was: 0.004022 recursive_ackflat0.11958
±0.0005100.000510
was: 0.000653 recursive_fibflat0.22864
±0.0002660.000266
was: 0.028968 resty_jsonbad inconsistent (12 flat, 2 warmup, 1 no steady state) revcompflat0.11550
±0.0025530.002553
was: 0.001753 richardsgood inconsistent (14 warmup, 1 flat)2.0
(1.7, 2.0)(1.7, 2.0)
was: (1.0, 2.0)0.150
(0.105, 0.150)0.14572
±0.0003240.000324
was: 0.010223 scimark_fftwarmup2.0
(2.0, 10.0)(2.0, 10.0)
was: (2.0, 4.7)0.140
(0.140, 1.153)0.12639
±0.0003430.000343
was: 0.000823 scimark_lugood inconsistent (11 flat, 4 warmup)1.0
(1.0, 45.3)0.000
(0.000, 5.122)0.11546
±0.0001320.000132
was: 0.000308 scimark_sorflat0.12105
±0.000148 scimark_sparseflat0.12315
±0.0007280.000728
was: 0.000585 serieswarmup2.0
(2.0, 2.0)0.347
(0.347, 0.348)0.33394
±0.0006450.000645
was: 0.003217 spectralnormflat0.13985
δ=-0.00003
±0.000007 table_cmpsortbad inconsistent (13 flat, 1 warmup, 1 slowdown)1.0
(1.0, 10.0)0.000
(0.000, 2.005)0.21828
±0.0032890.003289
was: 0.007836 google.charts.setOnLoadCallback(draw_chart_luajit_counters_0); function draw_chart_luajit_counters_0() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.800, 'red'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_0")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_1); function draw_chart_luajit_counters_1() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_1")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_2); function draw_chart_luajit_counters_2() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.067, 'black'], ['2', 0.133, 'black'], ['3', 0.267, 'red'], ['4', 0.133, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_2")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_3); function draw_chart_luajit_counters_3() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_3")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_4); function draw_chart_luajit_counters_4() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.600, 'red'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.267, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_4")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_5); function draw_chart_luajit_counters_5() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.267, 'black'], ['2', 0.533, 'red'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_5")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_6); function draw_chart_luajit_counters_6() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.600, 'red'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.200, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_6")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_7); function draw_chart_luajit_counters_7() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.267, 'black'], ['3', 0.133, 'red'], ['4', 0.067, 'black'], ['5', 0.200, 'black'], ['6', 0.000, 'black'], ['7', 0.133, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_7")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_8); function draw_chart_luajit_counters_8() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.200, 'black'], ['2', 0.533, 'red'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_8")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_9); function draw_chart_luajit_counters_9() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.267, 'black'], ['3', 0.133, 'red'], ['4', 0.067, 'black'], ['5', 0.200, 'black'], ['6', 0.000, 'black'], ['7', 0.133, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_9")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_10); function draw_chart_luajit_counters_10() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.333, 'red'], ['2', 0.200, 'black'], ['3', 0.200, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_10")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_11); function draw_chart_luajit_counters_11() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_11")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_12); function draw_chart_luajit_counters_12() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.267, 'black'], ['3', 0.200, 'red'], ['4', 0.133, 'black'], ['5', 0.133, 'black'], ['6', 0.067, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_12")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_13); function draw_chart_luajit_counters_13() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_13")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_14); function draw_chart_luajit_counters_14() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_14")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_15); function draw_chart_luajit_counters_15() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.133, 'red'], ['2', 0.133, 'black'], ['3', 0.200, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_15")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_16); function draw_chart_luajit_counters_16() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.600, 'red'], ['1', 0.200, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_16")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_17); function draw_chart_luajit_counters_17() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.067, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_17")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_18); function draw_chart_luajit_counters_18() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.400, 'red'], ['2', 0.133, 'black'], ['3', 0.133, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_18")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_19); function draw_chart_luajit_counters_19() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.133, 'red'], ['7', 0.000, 'black'], ['8', 0.133, 'black'], ['9', 0.333, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_19")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_20); function draw_chart_luajit_counters_20() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.133, 'black'], ['2', 0.200, 'red'], ['3', 0.067, 'black'], ['4', 0.133, 'black'], ['5', 0.133, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_20")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_21); function draw_chart_luajit_counters_21() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.200, 'red'], ['5', 0.067, 'black'], ['6', 0.067, 'black'], ['7', 0.067, 'black'], ['8', 0.200, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_21")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_22); function draw_chart_luajit_counters_22() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.067, 'black'], ['3', 0.133, 'red'], ['4', 0.133, 'black'], ['5', 0.067, 'black'], ['6', 0.067, 'black'], ['7', 0.200, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_22")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_23); function draw_chart_luajit_counters_23() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.200, 'red'], ['3', 0.133, 'black'], ['4', 0.333, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_23")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_24); function draw_chart_luajit_counters_24() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_24")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_25); function draw_chart_luajit_counters_25() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.133, 'black'], ['6', 0.133, 'black'], ['7', 0.333, 'red'], ['8', 0.133, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_25")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_26); function draw_chart_luajit_counters_26() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.200, 'black'], ['6', 0.133, 'red'], ['7', 0.267, 'black'], ['8', 0.133, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_26")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_27); function draw_chart_luajit_counters_27() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.400, 'black'], ['1', 0.267, 'red'], ['2', 0.133, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.067, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_27")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_28); function draw_chart_luajit_counters_28() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.200, 'black'], ['4', 0.267, 'red'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.133, 'black'], ['8', 0.067, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_28")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_29); function draw_chart_luajit_counters_29() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.200, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.133, 'red'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.533, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_29")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_30); function draw_chart_luajit_counters_30() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.133, 'black'], ['2', 0.600, 'red'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_30")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_31); function draw_chart_luajit_counters_31() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.200, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.133, 'red'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.533, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_31")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_32); function draw_chart_luajit_counters_32() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.133, 'black'], ['5', 0.133, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_32")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_33); function draw_chart_luajit_counters_33() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.067, 'black'], ['2', 0.133, 'black'], ['3', 0.200, 'red'], ['4', 0.200, 'black'], ['5', 0.067, 'black'], ['6', 0.133, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_33")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_34); function draw_chart_luajit_counters_34() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.000, 'black'], ['2', 0.067, 'black'], ['3', 0.067, 'black'], ['4', 0.133, 'black'], ['5', 0.133, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_34")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_35); function draw_chart_luajit_counters_35() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.200, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_35")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_36); function draw_chart_luajit_counters_36() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_36")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_37); function draw_chart_luajit_counters_37() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.200, 'black'], ['4', 0.267, 'red'], ['5', 0.067, 'black'], ['6', 0.200, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_37")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_38); function draw_chart_luajit_counters_38() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_38")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_39); function draw_chart_luajit_counters_39() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.667, 'red'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_39")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_40); function draw_chart_luajit_counters_40() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.400, 'black'], ['1', 0.200, 'red'], ['2', 0.133, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_40")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_41); function draw_chart_luajit_counters_41() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.400, 'red'], ['5', 0.267, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_41")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_42); function draw_chart_luajit_counters_42() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_42")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_43); function draw_chart_luajit_counters_43() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.067, 'black'], ['2', 0.133, 'black'], ['3', 0.267, 'red'], ['4', 0.133, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.133, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_43")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_44); function draw_chart_luajit_counters_44() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.933, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_44")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_45); function draw_chart_luajit_counters_45() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.867, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_45")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_46); function draw_chart_luajit_counters_46() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.600, 'red'], ['2', 0.000, 'black'], ['3', 0.133, 'black'], ['4', 0.133, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_46")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_47); function draw_chart_luajit_counters_47() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.867, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_47")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_48); function draw_chart_luajit_counters_48() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.333, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_48")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_49); function draw_chart_luajit_counters_49() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.200, 'black'], ['2', 0.133, 'red'], ['3', 0.000, 'black'], ['4', 0.133, 'black'], ['5', 0.067, 'black'], ['6', 0.067, 'black'], ['7', 0.067, 'black'], ['8', 0.067, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_49")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_50); function draw_chart_luajit_counters_50() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.333, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_50")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_51); function draw_chart_luajit_counters_51() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_51")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_52); function draw_chart_luajit_counters_52() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.200, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_52")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_53); function draw_chart_luajit_counters_53() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.400, 'black'], ['1', 0.200, 'red'], ['2', 0.133, 'black'], ['3', 0.133, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_53")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_54); function draw_chart_luajit_counters_54() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.133, 'black'], ['2', 0.333, 'red'], ['3', 0.067, 'black'], ['4', 0.200, 'black'], ['5', 0.067, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_54")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_55); function draw_chart_luajit_counters_55() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.067, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.067, 'red'], ['5', 0.133, 'black'], ['6', 0.067, 'black'], ['7', 0.267, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_55")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_56); function draw_chart_luajit_counters_56() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.200, 'black'], ['2', 0.200, 'red'], ['3', 0.067, 'black'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.067, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_56")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_57); function draw_chart_luajit_counters_57() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.133, 'black'], ['2', 0.267, 'red'], ['3', 0.133, 'black'], ['4', 0.000, 'black'], ['5', 0.200, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_57")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_58); function draw_chart_luajit_counters_58() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.467, 'red'], ['1', 0.267, 'black'], ['2', 0.000, 'black'], ['3', 0.133, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_58")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_59); function draw_chart_luajit_counters_59() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.933, 'red'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_59")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_60); function draw_chart_luajit_counters_60() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.200, 'black'], ['1', 0.133, 'black'], ['2', 0.067, 'black'], ['3', 0.067, 'red'], ['4', 0.067, 'black'], ['5', 0.067, 'black'], ['6', 0.133, 'black'], ['7', 0.000, 'black'], ['8', 0.133, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_60")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_61); function draw_chart_luajit_counters_61() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.067, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.933, 'red'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_61")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_62); function draw_chart_luajit_counters_62() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.867, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_62")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_63); function draw_chart_luajit_counters_63() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.333, 'black'], ['1', 0.200, 'red'], ['2', 0.267, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.067, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_63")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_64); function draw_chart_luajit_counters_64() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.867, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_64")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_65); function draw_chart_luajit_counters_65() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.133, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_65")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_66); function draw_chart_luajit_counters_66() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.133, 'black'], ['1', 0.067, 'black'], ['2', 0.133, 'black'], ['3', 0.067, 'black'], ['4', 0.133, 'red'], ['5', 0.067, 'black'], ['6', 0.133, 'black'], ['7', 0.067, 'black'], ['8', 0.133, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_66")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_67); function draw_chart_luajit_counters_67() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.133, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_67")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_68); function draw_chart_luajit_counters_68() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.667, 'red'], ['1', 0.200, 'black'], ['2', 0.000, 'black'], ['3', 0.067, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_68")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_69); function draw_chart_luajit_counters_69() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.733, 'red'], ['1', 0.133, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.067, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_69")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_70); function draw_chart_luajit_counters_70() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.000, 'black'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 1.000, 'red'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.000, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_70")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_71); function draw_chart_luajit_counters_71() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.333, 'red'], ['2', 0.200, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_71")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_72); function draw_chart_luajit_counters_72() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.267, 'red'], ['2', 0.067, 'black'], ['3', 0.200, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.067, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_72")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_73); function draw_chart_luajit_counters_73() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.267, 'black'], ['1', 0.133, 'black'], ['2', 0.133, 'red'], ['3', 0.067, 'black'], ['4', 0.333, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_73")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_74); function draw_chart_luajit_counters_74() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.867, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_74")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_75); function draw_chart_luajit_counters_75() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.533, 'red'], ['1', 0.200, 'black'], ['2', 0.133, 'black'], ['3', 0.000, 'black'], ['4', 0.067, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.067, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_75")); chart.draw(view, options);} google.charts.setOnLoadCallback(draw_chart_luajit_counters_76); function draw_chart_luajit_counters_76() { var data = google.visualization.arrayToDataTable([ ['bin', 'value', { role: 'style' } ], ['0', 0.867, 'red'], ['1', 0.000, 'black'], ['2', 0.000, 'black'], ['3', 0.000, 'black'], ['4', 0.000, 'black'], ['5', 0.000, 'black'], ['6', 0.000, 'black'], ['7', 0.000, 'black'], ['8', 0.000, 'black'], ['9', 0.133, 'black'], ]); var view = new google.visualization.DataView(data); var options = { width: 100, height: 70, bars: 'vertical', legend: { position: 'none' }, backgroundColor: 'transparent', hAxis: { title: '', gridlines: { count: 0 }, textPosition: 'none', }, vAxis: { title: '', viewWindowMode: 'explicit', viewWindow: { min: 0.0, max: 1.1, }, gridlines: { count: 0 }, textPosition: 'none', }, }; var chart = new google.visualization.ColumnChart(document.getElementById("bar_luajit_counters_76")); chart.draw(view, options);} // Warmup. var c = document.getElementsByClassName("warmup"); var i; for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 1); ctx.lineTo(5, 1); ctx.lineTo(5, 10); ctx.lineTo(10, 10); ctx.stroke(); } // Flat. c = document.getElementsByClassName("flat"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 7); ctx.lineTo(10, 7); ctx.stroke(); } // Slowdown. c = document.getElementsByClassName("slowdown"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 10); ctx.lineTo(5, 10); ctx.lineTo(5, 1); ctx.lineTo(10, 1); ctx.stroke(); } // No steady state. c = document.getElementsByClassName("nosteadystate"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(0, 6); ctx.lineTo(1, 3); ctx.lineTo(3, 10); ctx.lineTo(5, 3); ctx.lineTo(7, 10); ctx.lineTo(8, 3); ctx.lineTo(10, 6); ctx.stroke(); } // Good inconsisent c = document.getElementsByClassName("goodinconsistent"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(1, 5); ctx.lineTo(9, 5); ctx.moveTo(1, 8); ctx.lineTo(9, 8); ctx.stroke(); } // Bad inconsistent. c = document.getElementsByClassName("badinconsistent"); for (i = 0; i < c.length; i++) { var ctx = c[i].getContext("2d"); ctx.moveTo(1, 5); ctx.lineTo(9, 5); ctx.moveTo(1, 8); ctx.lineTo(9, 8); ctx.moveTo(1, 3); ctx.lineTo(9, 10); ctx.moveTo(1, 10); ctx.lineTo(9, 3); ctx.stroke(); } Results for Normal vs. Counters

In this case we’re particularly interested in the “steady performance variation (s)” column, which shows whether benchmarks have predictable steady state performance. The results are fairly clear: steady counters are, overall, a clear improvement. As you might expect, this is not a pure win, because it changes the order in which traces are made. This has several effects, including delaying some loops to be traced later than was previously the case, because counters do not hit the required threshold as quickly. This disadvantages some programs, particularly small deterministic benchmarks where loops are highly stable. In such cases, the earlier you trace the better. However, in my opinion, such programs are given undue weight when performance is considered. It’s no secret that some of the benchmarks regularly used to benchmark LuaJIT are highly optimised for LuaJIT as it stands; any changes to LuaJIT stand a good chance of degrading their performance. However, overall we feel that the overall gain in consistency, particularly for larger programs, is worth it. There's a pull request against the Lua Foundation's fork of LuaJIT which applies this idea to a mainstream fork of LuaJIT.

We then started looking at various programs that showed odd performance. One problem in particular showed up in more than one benchmark. Here's a standard example:

More consistent LuaJIT performanceCollisiondetector, Normal, Bencher9, Proc. exec. #12 (no steady state)

The problem – and it doesn't happen on every process execution, just to make it more fun – is that there are points where the benchmark slows down by over 10% for multiple in-process iterations (e.g. in this process execution, at in-process iterations 930-ish and 1050-ish). We tried over 25 separate ways to work out what was causing this — even building an instrumentation system to track what LuaJIT is doing — but in the end it turned out to be related to LuaJIT's Garbage Collector – sort of. When we moved from the 32-bit to 64-bit GC, the odd performance went away.

As such, we don’t think that the 64-bit GC “solves” the problem: however, it changes the way that pointers are encoded (doubling in size), which causes the code generator to emit a different style of code, such that the problem seems to go away. Nevertheless, this did make us reevaluate LuaJIT's GC. Tom then started work on implementing Mike Pall's suggestion for a new GC for LuaJIT (based partly on Tom's previous work and also that of Peter Cawley). He has enough implemented to run most small, and some large, programs, but it needs more work to finish it off, at which point evaluating it against the existing Lua GCs will be fascinating!

So, did we achieve everything we wanted to in 12 months? Inevitably the answer is yes and no. We did a lot more benchmarking than we expected; we've been able to make a lot of programs (particularly large programs) have more consistent performance; and we've got a fair way down the road of implementing a new GC. To whoever takes on further LuaJIT work – best of luck, and I look forward to seeing your results!

Acknowledgements: Sarah Mount implemented the stats differ; Edd Barrett implemented Krun and answered many questions on it.

Categories: Technology

OAuth Auth Server through Workers

CloudFlare - Tue, 11/12/2018 - 23:48
OAuth Auth Server through Workers

Let’s pretend I own a service and I want to grant other services access to my service on behalf of my users. The familiar OAuth 2.0 is the industry standard used by the likes of Google sign in, Facebook, etc. to communicate safely without inconveniencing users.

Implementing an OAuth Authentication server is conceptually simple but a pain in practice. We can leverage the power of Cloudflare Workers to simplify the implementation, reduce latency, and segregate our service logic from the authentication layer.

For those unfamiliar with OAuth, I highly recommend reading a more in depth article.

The steps of the OAuth 2.0 workflow are as follows:

  1. The consumer service redirects the user to a callback URL that was setup by the auth server. At this callback URL, the auth server asks the user to sign in and accept the consumer permissions requests.
  2. The auth server redirects the user to the consumer service with a code.
  3. The consumer service asks to exchange this code for an access token. The consumer service validates their identity by including their client secret in the callback URL.
  4. The auth server gives the consumer the access token.
  5. The consumer service can now use the access token to get resources on behalf of the user.

In the rest of this post, I will be walking through my implementation of an OAuth Authentication server using a Worker. For simplicity, I will make the assumption the user has already logged in and obtained a session token in the form of a JWT that I will refer to as “token” herein. My full implementation has a more thorough flow that includes initial user login and registration.

Setup

We must be able to reference valid user sessions, codes and login information. Because Workers do not maintain state between executions, we will store this information using Cloudflare Storage. We setup up three namespaces called: USERS, CODES, and TOKENS .

On your OAuth server domain, create two empty worker scripts called auth and token. Bind the three namespaces to the two workers scripts. Then configure the namespaces to the scripts so that your resources end up looking like:

OAuth Auth Server through Workers

To put and get items from storage using KV Storage syntax:

// @ts-ignore CODES.get(“user@ex.com”)

We include // @ts-ignore preceding all KV storage commands. We do not have type definitions for these variables locally, so Typescript would throw an error at compile time otherwise.

To set up a project using Typescript and the Cloudflare Previewer, follow this blog post. Webpack will allow us to import which we will need to use the JWT library jsonwebtoken.

import * as jwt from "jsonwebtoken";

Remember to run:

npm install jsonwebtoken && npm install @types/jsonwebtoken

Optionally, we can set up a file to specify endpoints and credentials.

import { hosts } from "./private"; export const credentials = {/* for demo purposes, ideally use KV to store secrets */ clients: [{ id: "victoriasclient", secret: "victoriassecret" }], storage: { secret: "somesecrettodecryptfromtheKV" } }; export const paths = { auth: { authorize: hosts.auth + "/authorize", login: hosts.auth + "/login", code: hosts.auth + "/code", }, token: { resource: hosts.token + "/resource", token: hosts.token + "/authorize", } } 1. Accept page after callback

The consumer service generates some callback URL that redirects the user to our authentication server. The authentication server then presents the user with a login or accept page to generate a code. The authentication server thus must listen on the authorize url endpoint and return giveLoginPageResponse.

addEventListener("fetch", (event: FetchEvent) => { const url = new URL(event.request.url); if (url.pathname.includes("/authorize")) return event.respondWith(giveLoginPageResponse(event.request)); } export async function giveLoginPageResponse(request: Request) { ...checks for cases where I am not necessarily logged in... let token = getTokenFromRequest(request) if (token) { //user already signed in return new Response(giveAcceptPage(request) }

Since the user already has a stored session, we can use a method giveAcceptPage. To display the accept page and return a redirect to generate the code.

export function giveAcceptPage(request: Request) { let req_url = new URL(request.url); let params = req_url.search let fetchCodeURL = paths.auth.code + params return `<!DOCTYPE html> <html> <body> <a href="${fetchCodeURL}"> Accept</button> </body> </html> `; } 2. Redirect back to consumer

At the endpoint for fetchCodeURL, the authentication server will redirect the user’s browser to the consumer’s page as specified by redirect_uri in the original URL params of the callback with the code.

addEventListener("fetch", (event: FetchEvent) => { ... if (url.pathname.includes("/code")) return event.respondWith(redirectCodeToConsumer(event.request)); } export async function redirectCodeToConsumer(request: Request) { let session = await verifyUser(request) if (session.msg == "403") return new Response(give403Page(), { status: 403 }) if (session.msg == "dne") return registerNewUser(session.email, session.pwd) let code = Math.random().toString(36).substring(2, 12) try { let req_url = new URL(request.url) let redirect_uri = new URL(encodeURI(req_url.searchParams.get("redirect_uri"))) let client_id = new URL(encodeURI(req_url.searchParams.get("client_id"))) // @ts-ignore await CODES.put(client_id + email, code) redirect_uri.searchParams.set("code", code); redirect_uri.searchParams.set("response_type", "code"); return Response.redirect(redirect_uri.href, 302); } catch (e) { // @ts-ignore await CODES.delete(email, code) return new Response( JSON.stringify(factoryIError({ message: "error with the URL passed in" + e})), { status: 500 }); } } 3. Code to Token Exchange

Now the consumer has the code. They can use this code to request a token. On our token worker, configure the endpoint to exchange the code for the consumer service to grant a token.

addEventListener("fetch", (event: FetchEvent) => { ... if (url.pathname.includes("/token")) return event.respondWith(giveToken(event.request));

Grab the code from the request and validate this code matches the code that is stored for this client. Once the code is verified, deliver the token by grabbing the existing token from the KV storage or by signing the user information to generate a new token.

export async function giveToken(request: Request) { let req_url = new URL(request.url); let code = req_url.searchParams.get("code"); let email = req_url.searchParams.get("email"); if (code){ if(!validClientSecret(request) return errorResponse() // @ts-ignore let storedCode = await CODES.get(email) if(code != storedCode) return new Response(give403Page(), { status:403}) let tokenJWT = jwt.sign(email, credentials.client.secret); ... return token 4. Give the token to the consumer

Continuing where step 3 left off from the giveToken method, respond to the consumer with this valid token.

... headers.append("set-cookie", "token=Bearer " + tokenJWT); // @ts-ignore await TOKENS.put(email, tokenJWT) var respBody = factoryTokenResponse({ "access_token": tokenJWT, "token_type": "bearer", "expires_in": 2592000, "refresh_token": token, "token": token }) } else { respBody.errors.push(factoryIError({ message: "there was no code sent to the authorize token url" })) } return new Response(JSON.stringify(respBody), { headers }); } 5. Accepting the token

At this point voila, your duty as an OAuth 2.0 Authentication server is complete! The consumer service that wishes to use your service has the token that you have not so magically generated.

The consumer server would send a request including the token:

GET /resource/some-goods Authorization: Bearer eyJhbGci..bGAqA

Authentication server would validate the token and give the goods:

export async function giveResource(request: Request) { var respBody: HookResponse = factoryHookResponse({}) let token = "" let decodedJWT = factoryJWTPayload() try { //validate request is who they claim token = getCookie(request.headers.get("cookie"), "token") if (!token) token = request.headers.get("Authorization").substring(7) decodedJWT = jwt.verify(token, credentials.storage.secret) // @ts-ignore let storedToken = await TOKENS.get(decodedJWT.sub) if (isExpired(storedToken)) throw new Error("token is expired") /* TODO instead of throwing error send to refresh */ if (storedToken != token) throw new Error("token does not match what is stored") } catch (e) { respBody.errors.push(factoryIError({ message: e.message, type: "oauth" })) return new Response(JSON.stringify(respBody), init) } respBody.body = getUsersPersonalBody(decodedJWT.sub) return new Response(JSON.stringify(respBody), init) }

The boundaries of serverless are pushed everyday, though if your app just needs to authorize users, you may be better off using Cloudflare Access. We've demonstrated that a full blown OAuth 2.0 authentication server implementation can be achieved with Cloudflare Workers and Storage.

Stay tuned for a follow-up blog post on an OAuth consumer implementation.

Categories: Technology

Beta: EasyApache 4 updated

CloudLinux - Tue, 11/12/2018 - 20:29

New updated EasyApache 4 packages are now available for download from our updates-testing repository.

Changelog:

ea-php51-php-5.1.6-23.cloudlinux.2

  • EA4D-116: updated SIGTERM cleanup patch.

ea-php52-php-5.2.17-26.cloudlinux.2

  • EA4D-116: updated SIGTERM cleanup patch.

ea-php53-php-5.3.29-28.cloudlinux.2

  • EA4D-116: updated SIGTERM cleanup patch.

ea-php54-php-5.4.45-56.cloudlinux.3

  • EA4D-116: updated SIGTERM cleanup patch.

ea-php55-php-5.5.38-39.cloudlinux.3

  • EA4D-116: updated SIGTERM cleanup patch.

ea-php56-php-5.6.39-1.cloudlinux

  • updated to version 5.6.39-1;
  • EA4D-116: updated SIGTERM cleanup patch.

ea-php70-php-7.0.33-1.cloudlinux

  • updated to version 7.0.33-1;
  • EA4D-116: updated SIGTERM cleanup patch.

ea-php71-php-7.1.25-1.cloudlinux

  • updated to version 7.1.25-1;
  • EA4D-116: updated SIGTERM cleanup patch.

ea-php72-php-7.2.13-1.cloudlinux

  • updated to version 7.2.13-1;
  • EA4D-116: updated SIGTERM cleanup patch.

ea-php56-5.6.39-1.cloudlinux

  • updated to version 5.6.39-1.

ea-php70-7.0.33-1.cloudlinux

  • updated to version 7.0.33-1.

ea-php71-7.1.25-1.cloudlinux

  • updated to version 7.1.25-1.

ea-php72-7.2.13-1.cloudlinux

  • updated to version 7.2.13-1.

Update command:

yum update ea-php* --enablerepo=cl-ea4-testing
Categories: Technology

Beta: Alt-Python27 updated

CloudLinux - Tue, 11/12/2018 - 20:07

New updated Alt-Python27 packages are now available for download from our updates-testing repository.

Changelog:

alt-python27-MySQL-mariadb103-1.2.5-1.cloudlinux.4

  • added support for MariaDB103.

alt-python27-MySQL-mysql8.0-1.2.5-1.cloudlinux.4

  • added support for MySQL80.

alt-python27-MySQL-meta-1-6

  • added requirements for mariadb103 and mysql8.0 bindings;
  • added triggers for mariadb103 and mysql8.0 packages.

Update command:

yum update alt-python27-MySQL* --enablerepo=cloudlinux-updates-testing
Categories: Technology

Beta: Alt-PHP updated

CloudLinux - Tue, 11/12/2018 - 16:07

New updated Alt-PHP packages are now available for download from our updates-testing repository.

Changelog:

alt-php44-mysql8.0-4.4.9-19

alt-php51-mysql8.0-5.1.6-22

alt-php52-mysql8.0-5.2.17-28

alt-php53-mysql8.0-5.3.29-18

alt-php54-mysql8.0-5.4.45-20

alt-php55-mysql8.0-5.5.38-12

alt-php56-mysql8.0-5.6.39-1

alt-php70-mysql8.0-7.0.33-1

alt-php71-mysql8.0-7.1.25-1

alt-php72-mysql8.0-7.2.13-1

alt-php73-mysql8.0-7.3.0-1

  • enabled MySQL 8.0 support.

alt-php44-mysql-meta-2-5

alt-php51-mysql-meta-2-5

alt-php52-mysql-meta-2-5

alt-php53-mysql-meta-2-5

alt-php54-mysql-meta-2-5

alt-php55-mysql-meta-2-5

alt-php56-mysql-meta-2-5

alt-php70-mysql-meta-2-5

alt-php71-mysql-meta-2-5

alt-php72-mysql-meta-2-5

alt-php73-mysql-meta-2-5

  • added support for MySQL 8.0.

Update command:

yum groupupdate alt-php --enablerepo=cloudlinux-updates-testing
Categories: Technology

CloudLinux 6 kernel updated

CloudLinux - Tue, 11/12/2018 - 15:54

CloudLinux 6 kernel version 2.6.32-954.3.5.lve1.4.59 is now available for download from our production repository.

Changelog:

  • CKSIX-205: CVE-2018-5391: revert "net: increase fragment memory usage limits";
  • CKSIX-205: CVE-2016-1583: eCryptFS: forbid opening files without mmap handler;
  • CKSIX-205: CVE-2016-1583: ecryptfs: protect data in ecryptfs_threadfn();
  • CKSIX-205: CVE-2016-8633: firewire: net: guard against rx buffer overflows.

To update the kernel, run:

yum install kernel-2.6.32-954.3.5.lve1.4.59.el6
Categories: Technology

Beta: MySQL 8.0 for MySQL Governor released

CloudLinux - Tue, 11/12/2018 - 15:27

A new MySQL 8.0.13-1 package for MySQL Governor is now available for download from our updates-testing repository.

Changelog:

governor-mysql 1.2-37

  • added support for mysql80, libmysqlclient.so.21;
  • MYSQLG-297, MYSQLG-301: old authentification procedure for mysql80;
  • MYSQLG-293: added logrotate config for governor-mysql;
  • MYSQLG-306: fixed an error logging from --dbupdate;
  • MYSQLG-300: CageFS force-update after MySQL Governor installation and delete procedure;
  • MYSQLG-302: investigated why db_governor fails with error "Can't init BAD list";
  • MYSQLG-326: wrong handling of SQL line while logging slow MySQL query.

To install MySQL 8.0 run:

# yum install governor-mysql alt-php-config --enablerepo=cloudlinux-updates-testing # yum groupupdate alt-php --enablerepo=cloudlinux-updates-testing # /usr/share/lve/dbgovernor/mysqlgovernor.py --mysql-version=mysql80 # /usr/share/lve/dbgovernor/mysqlgovernor.py --install-beta

Notes:

  • MySQL 8.0 is supported since MySQL Governor 1.2-37.
  • Do not upgrade to version 8.0 servers earlier than 5.7.
  • cPanel does not officially support MySQL 8.0, that is why we don’t recommend to use it on cPanel servers.
  • Use on your own risk for DirectAdmin and Plesk servers, because downgrade can corrupt your databases.
Categories: Technology

New ISPmanager Lite panel with ImunifyAV

CloudLinux - Tue, 11/12/2018 - 12:16

For ISPmanager panel users, Revisium Antivirus changes its name to ImunifyAV, keeping its reputation as a popular and effective malware and virus scanner.

Today, ISPsystem release a new version of their ISPmanager Lite hosting panel. This version comes pre-installed with ImunifyAV, the new name for Revisium Antivirus. With it, you can scan an unlimited number of websites and users per server, do automatic malware cleanup and create schedules for scanning. You can also get email alerts about any website infections.

You can find ImunifyAV in the Tools menu:

 

If a user doesn't have an antivirus solution already configured, ImunifyAV becomes the default for that panel. Otherwise, a system administrator needs to install it from the Modules menu:

 

ImunifyAV+, the premium virus and malware scanner with one-click cleanup, is installed by default, and can be used free for up to 30 days. After that, the free ImunifyAV scanner becomes the default, and automated cleanup is disabled. You can continue with the full features of ImunifyAV+ by logging into your ISPsystem account and subscribing.

ImunifyAV is the latest breed of software designed for intelligent website security.

Learn more about ImunifyAV for ISPmanager here and read the documentation here.

Categories: Technology

Criu-lve updated

CloudLinux - Tue, 11/12/2018 - 11:51

The new updated сriu-lve version 3.9-2 for CloudLinux 7 is now available for download from our production repository.

Changelog:

criu-lve 3.9-2

  • MODLS-564: removed errors that were logged by criu in Apache error_log.
  • MODLS-575: fixed a bug when restored lsphp masters spawn children with PIDs lower than last_pid.

To install run the command:

# yum clean all # yum install criu-lve

Start criu service:

# systemctl enable criu # systemctl start criu

To update run the command:

# yum clean all # yum update criu-lve

Restart criu service:

# systemctl restart criu # systemctl daemon-reload
Categories: Technology

Imunify360 3.8.6 Beta is here

CloudLinux - Tue, 11/12/2018 - 11:24

We are pleased to announce that a new, updated Imunify360 Beta version 3.8.6 is now available. This latest version embodies further improvements of the product as well as fixes.

Should you encounter any problems with the product, or have any questions, comments, or suggestions, please contact our support team at cloudlinux.zendesk.com: the Imunify360 department. We’d be more than happy to help.

The major fixes and improvements are listed as follows. Please find the full changelog below.

Fixes

  • Fixed cleanup procedure for the files that had been updated after scanning.
  • Fixed IP address management: now IP address from the list with expired TTL could be added to another list.
  • Fixed a bug that ignores Gray List cleanup that could result in infinite IP address graylisting.

Improvements

  • User logs and mail files are skipped to reduce the number of false positives during user account scanning.
  • Added a localized version of description in Plesk marketplace (supported in Plesk 17.8 or greater).
How to upgrade

To upgrade Imunify360 on CentOS/CloudLinux systems, run the command:

yum update imunify360-firewall --enablerepo=imunify360-testing

To upgrade Imunify360 on Ubuntu systems, run the command:

apt-get update && apt-get install --only-upgrade imunify360-firewall How to install Beta

To install the new Imunify360 Beta version 3.8.6, please follow the instructions in the documentation.

Changelog:
  • DEF-6242: fixed an issue when FTP scanner did not always correctly switch on;
  • DEF-6721: do not throw "is already in BLACK list" error if TTL is negative;
  • DEF-6809: fixed whitelisting on cPanel login;
  • DEF-6827: fixed cleanup behavior on changed files;
  • DEF-6906: fixed an issue with adding to Black List IPs from the Ignore List ignored;
  • DEF-6318: the log directory is added to Ignore List;
  • DEF-6822: accepted translations for Plesk extension description.
Categories: Technology

The truth about Black Friday and Cyber Monday

CloudFlare - Tue, 11/12/2018 - 10:50
The truth about Black Friday and Cyber Monday

At Cloudflare we handle a lot of traffic on behalf of our customers. Something we all see and hear a lot about at this time of year are Black Friday (23 November this year) and Cyber Monday (26 November) - but just how important are these days on the Internet?

The truth about Black Friday and Cyber MondayBlack Friday by Per-Olof Forsberg, license: CC BY 2.0

To try and answer this question, we took a look at anonymised samples of HTTP requests crossing our network. First of all, let’s look at total page views from across our global network from the last few weeks and see if we can spot Black Friday and Cyber Monday:

The truth about Black Friday and Cyber MondayAll page views

So this is total page views by day (UTC) from November 19 (a week before Cyber Monday) until Monday December 3. Other than follow-the-sun fluctuations in a repeating daily pattern, each whole day is pretty similar in shape and size compared to the last. Black Friday and Cyber Monday aren’t visible in overall traffic patterns.

Get specific

We have a very diverse set of customers across 12 million domain names and not all of them are selling products or doing so directly online. To identify those websites that are, I used metadata from the wonderful HTTP Archive project to export a list of domains using Cloudflare that were also running ecommerce software.

Here are the page views for these ecommerce sites over the same time period:

The truth about Black Friday and Cyber MondayEcommerce page views

So we can see clearly that our ecommerce customers are seeing a big increase in page views on November 23 and 26. Black Friday and Cyber Monday are most certainly a thing. This year Black Friday was quite a bit busier than Cyber Monday - around 22% busier in terms of page views. If we compare the page views of each day to the week prior, we can see the changes clearly:

The truth about Black Friday and Cyber Monday% page view change vs previous week

The uplift starts on Wednesday but really kicks in during Thanksgiving with an increase of more than 100% on Black Friday.

Browsing vs Buying

So we’ve established that these shopping days are important in terms of visitor activity. More pages are being viewed on these days - but is anyone buying anything?

We’re dealing with trillions of requests across a really large data set of different websites without any specific knowledge of what a purchase transaction would look like for each - so to approximate this I took a crude approach, which is to look for successful checkout interactions in the data. If you imagine a typical ecommerce application makes a purchase with a HTTP request like “POST /store/checkout HTTP/1.1” we can look for requests similar to this to understand the activity.

The truth about Black Friday and Cyber Monday% of checkout interactions vs prior week

We can see here that Black Friday has an almost 200% increase in checkout interactions compared to the previous Friday.

Using this raw number of checkout interactions to compare with the page views we have something approximating a conversion %. This is not a true conversion figure - calculating a true conversion figure would require data that identifies individuals and detailed action tracking for each website. What we have is the total number of page views (HTTP requests that return HTML successfully) compared to the total number of POST requests to a checkout. This gives us a baseline to compare changes in “conversion” over these big November shopping days:

The truth about Black Friday and Cyber Monday% of checkout interactions / page views vs prior week

Each bar on this chart represents the % change in checkout interactions as a proportion of page views compared to the same day the previous week. We can see this increased by 45% on Black Friday compared to the Friday before (boring old beige Friday November 16). The following Saturday was booming at 60% - because we’re dealing with time in UTC, a UTC Saturday actually includes Black Friday traffic for some parts of the world, the same can be said of Tuesday which contains overlap from Cyber Monday - we’ll break this down a bit later.

On Cyber Monday, the increase actually beats Black Friday, meaning page views lead to cart interactions 57% more often than the prior Monday (boring old vanilla Monday November 19), albeit from a lower number of transactions.

What devices are people buying on?

What we see here is just how much more browsing people do on mobiles today vs desktop, with mobile winning most days:

The truth about Black Friday and Cyber MondayPage Views by Device Type

When it comes to checkout interactions though, we can see the situation is switched with visitors more likely to interact with the checkout on a desktop overall, but even more so on Black Friday (14% more likely) and Cyber Monday (20% more likely).

The truth about Black Friday and Cyber MondayCheckout Interaction as % of Page Views

Let’s look at a specific region to understand more, starting with the US:

The truth about Black Friday and Cyber MondayUSA Page Views (PST)

We can see a more normal weekday pattern on the prior Thursday & Friday (15 & 16 Nov) whereby desktop page views eclipse mobile during the daytime while people are at their desks. In the evenings and weekends, mobile takes over. What we see from the 21st onward is evidence of people taking time off work and doing more with their mobile devices. Even on Thanksgiving, there is still a big rise in activity as people start gearing up for Friday’s deals or finding ways to avoid political discussion with relatives at home!

On Cyber Monday, traffic earlier in the day is lower as people return to work, however we are seeing heavy use of desktop devices. As the working day ends, mobile once again dominates. Things begin to settle back into a more regular pattern from Tuesday November 27 onwards.

Let's take a look at checkout interaction over the Black Friday to Cyber Monday weekend by device type.

The truth about Black Friday and Cyber MondayUSA Checkout Interaction % (PST)

Despite all of that mobile browsing activity, desktop devices are more commonly used for checkout actions. People seem to browse more on mobile, committing to buy more often with desktop, it may also just be that mobile users have more distractions both on the device and in the real world and are therefore less likely to complete a purchase. From personal experience, I also think the poor mobile optimisation of some sites’ checkout flows make desktop preferrable - and when customers are incentivised with discounts & deals, they are more likely to switch devices to complete a transaction if they hit an issue.

Is Black Friday / Cyber Monday international?

It might be obvious if you’re reading this from the UK, but despite the fact that Thanksgiving is not a holiday here, retailers have very much picked up the mantle from US retailers and seized the opportunity to drive sales over this weekend.

The truth about Black Friday and Cyber MondayUK Page Views (UTC)

Page views to ecommerce websites on Cloudflare look very similar in shape to the US on Black Friday. However, mobile is more dominant in the UK, even during working hours. It’s worth noting one big difference here - Cyber Monday in the UK was only 22% up in terms of page views compared to the prior Monday - in the US the increase was more than 4x that.

The truth about Black Friday and Cyber MondayUK Checkout Interaction as % of Page Views

When it comes to checkout, it also looks like UK visitors to ecommerce sites commit more with their mobile, but desktop is still more likely to lead to more conversion.

Taking Germany as another example, here’s how page views look:

The truth about Black Friday and Cyber MondayGermany Page Views (CET)

Desktop use during typical working hours is much more pronounced in Germany. Black Friday and Cyber Monday show higher page views than a normal Friday / Monday but the difference is much smaller than regions such as the US & UK.

Conclusions

Black Friday is spreading internationally despite these still being normal working days for the rest of the world. Cyber Monday is also increasing ecommerce activity internationally but tends to be quieter than Black Friday. Overall, mobile browsing eclipses desktop, but those desktop page views tend to lead to checkout more often.

Retailers should continue to invest in making their mobile & desktop ecommerce experiences fast & resilient to seize on these key days.

Categories: Technology

A new look on your Cloudflare dashboard

CloudFlare - Tue, 11/12/2018 - 02:10
A new look on your Cloudflare dashboard

Building a great customer experience is a top priority here at Cloudflare. Over the last week, we have been  slowly rolling out an improvement to our customer dashboard - specifically the zone overview page. We are now ready to share the new dashboard with everyone.

A new look on your Cloudflare dashboardThe new Cloudflare dashboard

Many of the changes you’ll notice first were driven directly by customer feedback. We’ve heard time and time again that site owners would like better visibility of their key analytics, and for it to be easier to apply certain common settings changes. This new dashboard provides both, with a snapshot of several of your key analytics, and a new toolkit area for easy access to key functions. This page has also been redesigned from top to bottom for responsiveness across various devices and screen widths.

Even more interesting is all the work under-the-hood that went into making this release and how it sets the stage for improvements to our customer experience as we look ahead to 2019. This is one of the first pieces of production Product work shipped using our new prototyping framework. We will soon be sharing details of the design systems work that underlies the new experience on your Cloudflare dashboard.

In the meanwhile, take a look at the new overview page, and give us some feedback!

Categories: Technology

Pages

Subscribe to oakleys.org.uk aggregator - Technology
Additional Terms