<commit_before>package arrgo

import (
	"math"
	//"arrgo/internal"
	"github.com/ledao/arrgo/internal"
)

func (a *Arrf) AddC(b float64) *Arrf {
	ta := a.Copy()
	asm.AddC(b, ta.data)
	return ta
}

func (a *Arrf) Add(b *Arrf) *Arrf {
	if a.SameShapeTo(b) {
		var ta = a.Copy()
		asm.Add(ta.data, b.data)
		return ta
	}
	var ta, tb, err = Boardcast(a, b)
	if err != nil {
		panic(err)
	}
	return ta.Add(tb)
}

func (a *Arrf) SubC(b float64) *Arrf {
	ta := a.Copy()
	asm.SubtrC(b, ta.data)
	return ta
}
<commit_msg>添加一些注释<commit_after>package arrgo

import (
	"math"
	//"arrgo/internal"
	"github.com/ledao/arrgo/internal"
)

//多维数组和标量相加，结果为新的多维数组，不修改原数组。
func (a *Arrf) AddC(b float64) *Arrf {
	ta := a.Copy()
	asm.AddC(b, ta.data)
	return ta
}

//两个多维数组相加，结果为新的多维数组，不修改原数组。
//加法过程中间会发生广播，对矩阵运算有极大帮助。
//fixme : by ledao 广播机制会进行额外的运算，对于简单的场景最好有判断，避免广播。
func (a *Arrf) Add(b *Arrf) *Arrf {
	if a.SameShapeTo(b) {
		var ta = a.Copy()
		asm.Add(ta.data, b.data)
		return ta
	}
	var ta, tb, err = Boardcast(a, b)
	if err != nil {
		panic(err)
	}
	return ta.Add(tb)
}

//多维数组和标量相减，结果为新的多维数组，不修改原数组。
func (a *Arrf) SubC(b float64) *Arrf {
	ta := a.Copy()
	asm.SubtrC(b, ta.data)
	return ta
}

//两个多维数组相减，结果为新的多维数组，不修改原数组。
//减法过程中间会发生广播，对矩阵运算有极大帮助。
//fixme : by ledao 广播机制会进行额外的运算，对于简单的场景最好有判断，避免广播。
{'fraction_non_alphanumeric': 0.17560217560217561, 'fraction_numerical': 0.006216006216006216, 'mean_word_length': 3.717948717948718, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, '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': '7267679', 'n_tokens_mistral': 756, 'n_tokens_neox': 806, 'n_words': 128}