<commit_before><!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>

    <script src="https://code.jquery.com/jquery-3.2.1.min.js"
            integrity="<KEY>
            crossorigin="anonymous"></script>

    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet"
          href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/css/bootstrap-select.min.css">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/js/bootstrap-select.min.js"></script>

    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet"
          href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
          integrity="<KEY>"
          crossorigin="anonymous">

    <!-- Optional theme -->
    <link rel="stylesheet"
          href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css"
          integrity="<KEY>"
          crossorigin="anonymous">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
            integrity="<KEY>"
            crossorigin="anonymous"></script>

    <script src='../general/js/utils.js'></script>
    <script src='../general/js/path_data.js'></script>
    <script src='../general/js/map_data.js'></script>
    <script src='../general/js/odometry.js'></script>
    <script src='../general/js/measurement.js'></script>
    <script src='../general/js/particle.js'></script>
    <script src='../general/js/particle_filter.js'></script>
    <script src='../general/js/robot.js'></script>
    <script src='../general/js/view.js'></script>
    <script src="../general/js/robot_demo.js"></script>
    <script>
		var mclDemo;
		function init()
		{
			const path = vanillaPath;
			const x = path[0].x;
			const y = path[0].y;
			const dir = atan2(path[1].y - path[0].y, path[1].x - path[0].x);
			const filter = new ParticleFilter(
				getParticleCount(),
				new OdometryModel(
					getValue('a1')/100.0,
					getValue('a2')/100.0,
					getValue('a3')/100.0,
					getValue('a4')/100.0),
				new BeamModel(
					getValue('sensorNoise'),
                    getValue('sensorRadius'),
                    getMap()),
				new RobotState(x, y, dir),
				getValue('pRatio'));
			filter.particles.forEach(function(p){p.x=x; p.y=y; p.dir=dir;});
			smoothenPath(path);
			robot = new Robot(filter, path, 19, getValue('sensorRadius'), getValue('goByOneStep'));

			mclDemo = new RobotDemo('canvas', 'minicanvas', getMap(), robot , 10);
		}

		function selectPath(event)
		{
			var selectedOption = event.target.selectedOptions[0];
			if (selectedOption.id === 'addPath')
			{
				mclDemo.startRecordingPath();
			} else
			{
				var selectedPath = selectedOption.value;
				clearCanvas(mclDemo.largeCanvas);
				mclDemo.lctx.drawMap(mclDemo.map);
				mclDemo.lctx.strokeStyle = 'green';
				mclDemo.lctx.strokePath(mclDemo.paths[selectedPath]);
				clearCanvas(mclDemo.scanvas);
				mclDemo.sctx.drawMap(mclDemo.map);
				mclDemo.sctx.strokeStyle = 'green';
				mclDemo.sctx.strokePath(mclDemo.paths[selectedPath]);
			}
		}<commit_msg>do not lock particle in MCL<commit_after><!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>

    <script src="https://code.jquery.com/jquery-3.2.1.min.js"
            integrity="<KEY>
            crossorigin="anonymous"></script>

    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet"
          href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/css/bootstrap-select.min.css">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.2/js/bootstrap-select.min.js"></script>

    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet"
          href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
          integrity="<KEY>"
          crossorigin="anonymous">

    <!-- Optional theme -->
    <link rel="stylesheet"
          href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css"
          integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp"
          crossorigin="anonymous">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
            integrity="<KEY>"
            crossorigin="anonymous"></script>

    <script src='../general/js/utils.js'></script>
    <script src='../general/js/path_data.js'></script>
    <script src='../general/js/map_data.js'></script>
    <script src='../general/js/odometry.js'></script>
    <script src='../general/js/measurement.js'></script>
    <script src='../general/js/particle.js'></script>
    <script src='../general/js/particle_filter.js'></script>
    <script src='../general/js/robot.js'></script>
    <script src='../general/js/view.js'></script>
    <script src="../general/js/robot_demo.js"></script>
    <script>
		var mclDemo;
		function init()
		{
			const path = vanillaPath;
			const x = path[0].x;
			const y = path[0].y;
			const dir = atan2(path[1].y - path[0].y, path[1].x - path[0].x);
			const filter = new ParticleFilter(
				getParticleCount(),
				new OdometryModel(
					getValue('a1')/100.0,
					getValue('a2')/100.0,
					getValue('a3')/100.0,
					getValue('a4')/100.0),
				new BeamModel(
					getValue('sensorNoise'),
                    getValue('sensorRadius'),
                    getMap()),
				new RobotState(x, y, dir),
				getValue('pRatio'));
			smoothenPath(path);
			robot = new Robot(filter, path, 19, getValue('sensorRadius'), getValue('goByOneStep'));

			mclDemo = new RobotDemo('canvas', 'minicanvas', getMap(), robot , 10);
		}

		function selectPath(event)
		{
			var selectedOption = event.target.selectedOptions[0];
			if (selectedOption.id === 'addPath')
			{
				mclDemo.startRecordingPath();
			} else
			{
				var selectedPath = selectedOption.value;
				clearCanvas(mclDemo.largeCanvas);
				mclDemo.lctx.drawMap(mclDemo.map);
				mclDemo.lctx.strokeStyle = 'green';
				mclDemo.lctx.strokePath(mclDemo.paths[selectedPath]);
				clearCanvas(mclDemo.scanvas);
				mclDemo.sctx.drawMap(mclDemo.map);
				mclDemo.sctx.strokeStyle = 'green';
				mclDemo.sctx.strokePath(mclDemo.paths[selectedPath]);
			}
		}
{'fraction_non_alphanumeric': 0.17954332186424773, 'fraction_numerical': 0.017985611510791366, 'mean_word_length': 2.9745183343691735, 'pattern_counts': {'":': 0, '<': 88, '<?xml version=': 0, '>': 88, 'https://': 12, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7354168', 'n_tokens_mistral': 2488, 'n_tokens_neox': 2162, 'n_words': 308}