mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Add the X10 language (http://x10-lang.org/).
This commit is contained in:
		
							
								
								
									
										45
									
								
								samples/X10/Histogram.x10
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								samples/X10/Histogram.x10
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | ||||
| /* | ||||
|  *  This file is part of the X10 project (http://x10-lang.org). | ||||
|  * | ||||
|  *  This file is licensed to You under the Eclipse Public License (EPL); | ||||
|  *  You may not use this file except in compliance with the License. | ||||
|  *  You may obtain a copy of the License at | ||||
|  *      http://www.opensource.org/licenses/eclipse-1.0.php | ||||
|  * | ||||
|  *  (C) Copyright IBM Corporation 2006-2014. | ||||
|  */ | ||||
|  | ||||
| public class Histogram { | ||||
|     public static def compute(data:Rail[Int], numBins:Int) { | ||||
|         val bins = new Rail[Int](numBins); | ||||
|         finish for (i in data.range) async { | ||||
|            val b = data(i) % numBins; | ||||
|            atomic bins(b)++; | ||||
|         } | ||||
|         return bins; | ||||
|     } | ||||
|  | ||||
|     public static def run(N:Int, S:Int):Boolean { | ||||
|         val a = new Rail[Int](N, (i:long)=> i as int); | ||||
|         val b = compute(a, S); | ||||
|         val v = b(0); | ||||
|         var ok:Boolean = true; | ||||
|         for (x in b.range) ok &= (b(x)==v); | ||||
|         return ok; | ||||
|     } | ||||
|  | ||||
|     public static def main(args:Rail[String]) { | ||||
|         if (args.size != 2L) { | ||||
|             Console.OUT.println("Usage: Histogram SizeOfArray NumberOfBins"); | ||||
|             return; | ||||
|         } | ||||
|         val N = Int.parse(args(0)); | ||||
|         val S = Int.parse(args(1)); | ||||
|         val ok = run(N,S); | ||||
|         if (ok) { | ||||
|             Console.OUT.println("Test ok."); | ||||
|         } else { | ||||
|             Console.OUT.println("Test failed."); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user